Instalacja i konfiguracja serwera RADIUS Maja GreckaWolniewicz UCI

  • Slides: 59
Download presentation
Instalacja i konfiguracja serwera RADIUS Maja Górecka-Wolniewicz UCI, UMK Seminarium eduroam – UMK, 16

Instalacja i konfiguracja serwera RADIUS Maja Górecka-Wolniewicz UCI, UMK Seminarium eduroam – UMK, 16 -17. 03. 2006

Implementacje serwera RADIUS • Free. RADIUS – większość informacji dotyczy tej implemetnacji • Internet

Implementacje serwera RADIUS • Free. RADIUS – większość informacji dotyczy tej implemetnacji • Internet Authentication Service – produkt Microsoft, integralna część serwera Windows 2000 i 2003 • RADIATOR • Implementacje CISCO, Funk Software, Lucent Technologies Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 2

Projekt Free. RADIUS • Oprogramowanie open source • Jedna z bardziej popularnych implementacji niekomercyjnych,

Projekt Free. RADIUS • Oprogramowanie open source • Jedna z bardziej popularnych implementacji niekomercyjnych, powszechnie wykorzystywana w projekcie eduroam, zalecana w polskim projekcie http: //www. freeradius. org – duże możliwości (różnorodność modułów) – elastyczność w konfiguracji • Lista użytkowników, archiwum http: //www. mail-archive. com/freeradius-users@lists. freeradius. org • Aktualna wersja oprogramowania – 1. 1. 0 Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 3

Wymagane oprogramowanie • Open. SSL – nie jest potrzebny, gdy serwer pełni wyłącznie funkcję

Wymagane oprogramowanie • Open. SSL – nie jest potrzebny, gdy serwer pełni wyłącznie funkcję proxy • Open. LDAP – jeśli korzystamy z usługi LDAP do uwierzytelniania/autoryzacji • Oprogramowanie dodatkowe, zgodnie z potrzebami, np. My. SQL, Postgres etc. Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 4

Obsługa wyrażeń regułowych w realmach • Domyślnie free. RADIUS pozwala na dopasowywanie wartości realm

Obsługa wyrażeń regułowych w realmach • Domyślnie free. RADIUS pozwala na dopasowywanie wartości realm na podstawie porównania: wartość taka sama, różna • Patch Enable regular expressions matching in realms http: //projects. nuschkys. net/patches – pozwala na podanie w polu wartości wyrażenia regułowego, do którego ma zostać dopasowany realm • Zastosowanie patcha (w katalogu dystrybucji) patch -p 1 < rozpakowany_plik_z_poprawką Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 5

Kompilacja cd freeradius-1. 1. 0. /configure –prefix=/opt/freeradius • gdy własna instalacja LDAP --with-rlm-ldap-lib=/opt/ldap/lib --with-rlm-ldap-include=/opt/ldap/include

Kompilacja cd freeradius-1. 1. 0. /configure –prefix=/opt/freeradius • gdy własna instalacja LDAP --with-rlm-ldap-lib=/opt/ldap/lib --with-rlm-ldap-include=/opt/ldap/include • gdy własna instalacja Open. SSL --with-ssl-lib=/opt/ssl/lib --with-ssl-include=/opt/ssl/include • inne: --with-experimental-modules --without-rlm-perl --without-rlm-sql Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 6

Kompilacja, instalacja make install • Uwagi: – jeśli używamy własnej instalacji Open. SSL-a warto

Kompilacja, instalacja make install • Uwagi: – jeśli używamy własnej instalacji Open. SSL-a warto sprawdzić, czy programy i biblioteki są dolinkowane do właściwych bibliotek Open. SSL; dla uniknięcia problemów zaleca się ustawienie zmiennych otoczeniowych CPPFLAGS i LDFLAGS przed configure, np. : CPPFLAGS=-I/opt/ldap/include -I/opt/ssl/include LDFLAGS=-L/opt/ldap/lib -L/opt/ssl/lib -Xlinker -R/opt/ldap/lib: /opt/ssl/lib Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 7

Założenia konfiguracyje • Serwer instytucji (poziom 3 w hierarchii eduroam) – wymagana możliwość kontaktowania

Założenia konfiguracyje • Serwer instytucji (poziom 3 w hierarchii eduroam) – wymagana możliwość kontaktowania się z serwerem ogólnopolskim, ew. z serwerami poziomu 4 – uwierzytelnianie i autoryzacja użytkowników lokalnych (danej instytucji, w zdefiniowanym przez instytucję zakresie) • Serwery poziomu 4 i powyżej – realizują funkcjonalność uwierzytelniania i autoryzacji dla określonego realmu – kontaktują się z serwerem instytucji w celu obsługi użytkowników spoza lokalnych realmów Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 8

Konfiguracja • Pliki konfiguracyjne: katalog etc/raddb instalacji pakietu freeradius – – – radius. conf

Konfiguracja • Pliki konfiguracyjne: katalog etc/raddb instalacji pakietu freeradius – – – radius. conf clients. conf proxy. conf users huntgroups Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 9

clients. conf ################ # Definicje AP-ów i innych urządzeń ################ #client <nazwa | adres-IP

clients. conf ################ # Definicje AP-ów i innych urządzeń ################ #client <nazwa | adres-IP | podsieć> { #<atrybut> = <wartość> #} client 192. 168. 1. 120 { secret = tajny_klucz_RADIUS-AP shorname = campus 1 dev 120 } w atrybutach można dodać nastype = <słownikowa_wartość> nastype mówi, jakiej metody użyć w skrypcie checkrad do sprawdzenia jednoczesnego zalogowania użytkownika Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 10

client. conf - uwagi • Należy dbać o unikatowość kluczy • Klucz tajny powinnny

client. conf - uwagi • Należy dbać o unikatowość kluczy • Klucz tajny powinnny mieć min. 16 znaków • Zaleca się różnicowanie kluczy wspólnych, nie powinno definiować się podsieci AP-ów z jednym hasłem wspólnym • Klientami są również serwery RADIUS – te, z którymi dany serwer kontaktuje się należy zdefiniować w pliku clients. conf i ustalić wspólny klucz do komunikacji • W testach przydaje się klient loopback (127. 0. 0. 1) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 11

huntgroups • Definicja grup urządzeń NAS • Postać definicji aptest NAS-IP-Address == 192. 168.

huntgroups • Definicja grup urządzeń NAS • Postać definicji aptest NAS-IP-Address == 192. 168. 1. 200 aptest NAS-IP-Address == 192. 168. 1. 201 lub (bardziej złożona) aptest NAS-IP-Address == 192. 168. 1. 201, NAS-Port-Id == 0 -3 User-Name = user 1, User-Name = user 2 • Dopasowanie następuje podczas przeglądania pliku users, – Kryterium dopasowania Hundgroup-Name == “XXX” Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 12

proxy. conf • Konfiguracja realmów # realm lokalny realm umk. pl { type =

proxy. conf • Konfiguracja realmów # realm lokalny realm umk. pl { type = radius authhost = LOCAL accthost = LOCAL } # realm zdalny realm uci. umk. pl { type = radius authhost = 10. 1. 1. 1: 1812 accthost = 10. 1. 1. 1: 1813 secret = a 2 s 3 d 4 f 5 g 6 nostrip } Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 13

proxy. conf • Definicja alternatywnych serwerów – ten sam realm można definiować więcej niż

proxy. conf • Definicja alternatywnych serwerów – ten sam realm można definiować więcej niż raz – w ten sposób określana jest obsługa w przypadku niedostępności serwera lub obsługa tzw. load balancing, tj. równomiernego rozłożenia zleceń do serwerów – ldflag • brak równoważny ldflag = fail_over – definicje realmów przeglądane są w kolejności ich deklaracji, pierwszy aktywny serwer obsługuje realm • ldflag = round_robin – wszystkie aktywne realmy dla danej nazwy biorą udział w procesie wyboru docelowego serwera – podejście zalecane np. na serwerze krajowym Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 14

proxy. conf – regex • dyrektywa oznacza, że nazwa domeny zostaje dopasowana do wskazanego

proxy. conf – regex • dyrektywa oznacza, że nazwa domeny zostaje dopasowana do wskazanego wyrażenia regułowego, np. realm resztapolski { regex “. *. pl”. . . } – nostrip • domyślnie nazwa użytkownika jest obcinana przed wysłaniem do docelowego serwera • dodanie nostrip dla realmów lokalnych i zdalnych jest istotne w celu prawidłowego obrazu w danych rozliczeniowych Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 15

proxy. conf • Sekcja proxy_server – kontrola działania serwera w komunikacji proxy • synchronous:

proxy. conf • Sekcja proxy_server – kontrola działania serwera w komunikacji proxy • synchronous: jeśli ma być aktywna funkcjonalność failover, to synchronous = no; wartość yes oznacza, że zlecenia będą automatycznie ponownie wysyłane, gdy NAS ponowi wysłanie • retry_delay (5) – czas (w sekundach) oczekiwania na odpowiedź, przed ponownym przesłaniem zlecenia proxy • retry_count (3) – ile razy ponawiać wysłanie zlecenia proxy przed odpowiedzią reject • dead_time (120) – ile sekund odczekać przed sprawdzeniem, czy serwer proxy stał się dostępny • default_fallback – obsługuj alternatywnie wg dyrektywy DEFAULT (gdy yes) • post_proxy_authorize – sprawdź sekcję autoryzacji po powrocie z proxy Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 16

users • Domyślna nazwa pliku autoryzacji – można wskazać inną nazwę: deklaracja nazwy w

users • Domyślna nazwa pliku autoryzacji – można wskazać inną nazwę: deklaracja nazwy w pliku radiusd. conf, sekcja files, określenie userfile=. . . • Inne zastosowania modułu files – rozliczenie (preacct) – obsługa użytkowników przed realizacją funkcji proxy (pre-proxy) – modyfikacja UMK (a podstawie informacji na liście freeradius) • Format pliku – zestaw dyrektyw konfiguracyjnych używanych przez moduł files w celu podjęcia decyzji o sposobie autoryzacji i uwierzytelnienia użytkownika – postać wpisu nazwa <lista_sprawdzanych_elementów (check items)> TAB <lista_elementów_odpowiedzi (reply items)> nazwa – nazwa użytkownika lub słowo DEFAULT (dowolny użytkownik) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 17

users • Zastosowania modułu files – rozliczenie (preacct) – obsługa użytkowników przed realizacją funkcji

users • Zastosowania modułu files – rozliczenie (preacct) – obsługa użytkowników przed realizacją funkcji proxy (pre-proxy) – modyfikacja UMK (a podstawie informacji na liście freeradius) w celu dodania możliwości analizy pliku użytkowników po poprawnym uwierzytelnieniu, w fazie post-auth • Domyślne nazwy plików usersfile = ${confdir}/users acctusersfile = ${confdir}/acct_users preproxy_usersfile = ${confdir}/preproxy_users – można wskazać inną nazwę: deklaracja nazwy w pliku radiusd. con sekcja files, Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 18

users • Format pliku – uwagi – wszystkie elementy sprawdzane MUSZĄ być umieszczone w

users • Format pliku – uwagi – wszystkie elementy sprawdzane MUSZĄ być umieszczone w jednym wierszu, za nazwą użytkownika, separatorem elementów sprawdzanych jest przecinek – w pierwszym wierszu, w ramach listy elementów sprawdzanych MOŻNA wskazać element konfiguracyjny, np. Auth-Type i/lub Autz -Type – elementy odpowiedzi MOGĄ być umieszczane w wielu wierszach, w tym przypadku poprzedni wiersz (zawierający elemen odpowiedzi) musi kończyć się przecinkiem – przetwarzanie pliku users jest realizowane sekwencyjnie od początku pliku – po dopasowaniu użytkownika i elementów sprawdzanych ustalane są elementy odpowiedzi (wg deklaracji) – domyślnie po dopasowaniu przetwarzanie users kończy się – element specjalny: Fall-Through = Yes oznacza “przetwarzaj dalej” Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 19

users • Definicja atrybut – wartość – forma atrybut = wartość • NIE MOŻE

users • Definicja atrybut – wartość – forma atrybut = wartość • NIE MOŻE wystąpić na liście sprawdzanych elementów • MOŻE wystąpić jako element konfiguracyjny (Auth-Type) – ustala wartość atrybutu, tylko gdy nie była ustalona • na liście odpowiedzi oznacza dodanie wartości danego atrybutu, ale tylko, gdy atrybut nie ma dotychczas wartości – forma atrybut : = wartość • na liście sprawdzanych elementów oznacza “zawsze dopasowany” • zastępuje wartość atrybutu konfiguracyjnego na liście odpowiedzi Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 20

users • Definicja atrybut – wartość – forma atrybut += wartość • na liście

users • Definicja atrybut – wartość – forma atrybut += wartość • na liście sprawdzanych elementów oznacza “zawsze dopasowany” • na liście konfiguracji i odpowiedzi oznacza dodanie wartości danego atrybutu – forma atrybut == wartość • na liście sprawdzanych elementów sprawdza, czy atrybut istnieje w zleceniu i czy wartość jest równa podanej • NIE MOŻE wystąpić na liście odpowiedzi – forma atrybut != wartość • na liście sprawdzanych elementów sprawdza, czy atrybut istnieje w zleceniu i wartość jest różna od podanej • NIE MOŻE wystąpić na liście odpowiedzi Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 21

users • Definicja atrybut – wartość – forma atrybut > wartość • na liście

users • Definicja atrybut – wartość – forma atrybut > wartość • na liście sprawdzanych elementów sprawdza, czy wartość atrybutu w zleceniu jest większa od podanej • NIE MOŻE wystąpić na liście odpowiedzi – forma atrybut >= wartość • na liście sprawdzanych elementów sprawdza, czy wartość atrybutu w zleceniu jest większa lub równa podanej • NIE MOŻE wystąpić na liście odpowiedzi – forma atrybut < wartość • na liście sprawdzanych elementów sprawdza, czy wartość atrybutu w zleceniu jest mniejsza od podanej • NIE MOŻE wystąpić na liście odpowiedzi Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 22

users • Definicja atrybut – wartość – forma atrybut <= wartość • na liście

users • Definicja atrybut – wartość – forma atrybut <= wartość • na liście sprawdzanych elementów sprawdza, czy wartość atrybutu w zleceniu jest mniejsza lub równa podanej • NIE MOŻE wystąpić na liście odpowiedzi – forma atrybut =~ wyrażenie • na liście sprawdzanych elementów sprawdza, czy wartość atrybutu dopasowuje się do wyrażenia (wartość znakowa!) • NIE MOŻE wystąpić na liście odpowiedzi – forma atrybut !~ wyrażenie • na liście sprawdzanych elementów sprawdza, czy wartość atrybutu nie dopasowuje się do wyrażenia (wartość znakowa!) • NIE MOŻE wystąpić na liście odpowiedzi Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 23

users • Definicja atrybut – wartość – forma atrybut =* wartość • na liście

users • Definicja atrybut – wartość – forma atrybut =* wartość • na liście sprawdzanych elementów sprawdza, czy zlecenie zawiera dany atrybut (wartość jest nieistotna) • NIE MOŻE wystąpić na liście odpowiedzi – forma atrybut !* wartość • na liście sprawdzanych elementów sprawdza, czy w zleceniu nie ma danego atrybutu (wartość jest nieistotna) • NIE MOŻE wystąpić na liście odpowiedzi Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 24

users • Przykłady (  oznacza, że c. d. MUSI być w tej samym

users • Przykłady ( oznacza, że c. d. MUSI być w tej samym wierszu) user 1 User-Password == “user 1 pass” user 2 Auth-Type : = Reject Reply-Message = “Zablokwane konto” DEFAULT Realm == NULL, Auth-Type : = Reject DEFAULT Realm = “a. z”, Client-IP-Address == 10. 1. 1. 1, Auth-Type : = Reject DEFAULT Real == ”b. z” Hundgroup-Name ==”XXX” Tunnel-Private-Group-Id : = 40 Tunnel-Medium-Type = 6 Tunnel-Type = VLAN DEFAULT Real == ”c. z” Free. Radius-Proxied-To == 127. 0. 0. 1, Autz-Type : = gosc, ldapgosc-Ldap-Group == “z_PL” Tunnel-Private-Group-Id : = 40 Tunnel-Medium-Type = 6 Tunnel-Type = VLAN Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 25

users • Zalecenia – w Access-Accept powinna zostać wysłana prawdziwa nazwa użytkownika DEFAULT Realm

users • Zalecenia – w Access-Accept powinna zostać wysłana prawdziwa nazwa użytkownika DEFAULT Realm = “d. z”, . . . User-Name = `%{User-Name}` • nazwa użytkownika zostanie wpisana w logach, np. tych, które powstają po pomyślnym uwierzytelnieniu użytkownika – wpisy w users muszą uwzględniać uniknięcie zapętlenia serwera, np. DEFAULT Realm = “pl”, Client-IP-Address == 158. 75. 1. 25, Auth-Type : = Reject zapobiega przesłaniu zlecenia dot. realmu polska do serwera krajowego, ponieważ stamtąd nadeszło zlecenie Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 26

radius. conf • Ustalenie ścieżek wiodących, lokalizacji konfiguracji, logów itp. • Użytkownik / grupa

radius. conf • Ustalenie ścieżek wiodących, lokalizacji konfiguracji, logów itp. • Użytkownik / grupa – zalecane ustawienie użytkownika różnego od root – w przypadku integracji free. RADIUS-a z Active Directory, freeradius musi współpracować z programem winbind i z tego powodu MUSI pracować z prawami root • Sekcja listen – ustala ipaddr (adres IP / nazwa / *), port (0 – domyślny), type (auth / acct) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 27

radius. conf • Sekcja modules – definicja modułów używanych przez serwer w postaci nazwa

radius. conf • Sekcja modules – definicja modułów używanych przez serwer w postaci nazwa [ wystąpienie ] { element_konfiguracji = wartość } – przykładowe moduły: pap, chap, pam, unix, mschap, ldap, sql, realm, preprocess, files, detail, exec, perl, eap, attr_rewrite, attr_filter • Sekcja instantiate – ustala kolejność ładowania modułów – moduły wymienione w niej są ładowane przed tymi, które są zdefiniowane w następnych sekcjach: authorize, authenticate, preacct, accounting, session, post-auth, pre-proxy i post-proxy Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 28

Moduł ldap • Jeśli jest potrzeba zdefiniowania kilku modułów, kolejne definicje rozróżniamy nazwami wystąpienia

Moduł ldap • Jeśli jest potrzeba zdefiniowania kilku modułów, kolejne definicje rozróżniamy nazwami wystąpienia modułu, np. : ldap AD { } ldap OLStaff { } – zdefiniowane nazwy mogą być następnie używane w sekcjach authorize, authenticate – w pliku users, jeśli używamy sprawdzenia grupy LDAP w elemencie sprawdzenia należy podać np. : AD-Ldap-Group == “XXX” albo OLStaff-Ldap-Group == “XXX” Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 29

Moduł ldap • Zaleca się korzystanie z bezpiecznych połączeń (start_tls=yes) oraz nie anonimowych przeszukiwań

Moduł ldap • Zaleca się korzystanie z bezpiecznych połączeń (start_tls=yes) oraz nie anonimowych przeszukiwań • Jeśli dysponujemy serwerem repliki, to należy zadeklarować jego użycie dla danego poddrzewa poprzez utworzenie drugiego wystąpienia modułu, np. ldap OLStaff 1 { tu_deklaracje_serwera_głównego } ldap OLStaff 2 { tu_deklaracje_serwera_repliki } • Parametry groupmembership_filter, groupmembership_attribute – groupmembership_filter = NULL – poprawka w kodzie w celu skasowania domyślnego sprawdzenia (UMK), realizowanego na podstawie filtra: (|(&(objectclass=group. Of. Names)(member=%{Ldap-User. Dn})) (&(objectclass=group. Of. Unique. Names) (member=%{Ldap-User. Dn}))) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 30

Moduł ms_chap • Niezbędny, gdy dostarczamy metodę PEAP (uwierzytelnianie MS-CHAP i MS-CHAPv 2) •

Moduł ms_chap • Niezbędny, gdy dostarczamy metodę PEAP (uwierzytelnianie MS-CHAP i MS-CHAPv 2) • Konfiguracja w sekcji mschap authtype = MS-CHAP use-mppe = yes require_encription = yes require_strong = yes Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 31

Moduł attr_rewrite • Moduł ważny w procesie autoryzacji oraz rozliczania – umożliwia dokonanie zmian

Moduł attr_rewrite • Moduł ważny w procesie autoryzacji oraz rozliczania – umożliwia dokonanie zmian w pakiecie • Wystąpienia modułu są wyróżniane nazwą, np. attr_rewrite copy. user-name { } attr_rewrite strip. user-name { } • Działanie: – zmiany dotyczą określonego atrybutu attribute =. . – przeszukiwany jest pakiet, odpowiedź, konfiguracja searchin = packet | reply | config – poszukiwana jest wartość zgodna z zadanym wyrażeniem regułowym searchfor =. . . Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 32

Moduł attr_rewrite • Działanie cd. – dopasowany napis jest zastępowany zawartością określoną jako replacewith

Moduł attr_rewrite • Działanie cd. – dopasowany napis jest zastępowany zawartością określoną jako replacewith – można dopisać nowy atrybut (new_attribute=yes) – można napis zatępujący dopisać do oryginalnego (append=yes) – można zadeklarować max. liczbę dopasowań (max_matches) – można ignorować wielkość liter (ignore_case=yes) • Zastosowanie – zdefiniowane wystąpienie modułu dodajemy wg potrzeby, w sekcjach pre-proxy, post-proxy, authorize Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 33

Moduł mod_rewrite • Przykład # obcięcie nazwy przed wyszukaniem użytkownika w # bazie attr_rewrite

Moduł mod_rewrite • Przykład # obcięcie nazwy przed wyszukaniem użytkownika w # bazie attr_rewrite copy. user-name { attribute = Stripped-User-Name new_attribute = yes searchin = packet searchfor = “” replacewith = “%{User-Name}” } attr_rewrite strip. user-name { attribute = Stripped-User-Name new_attribute = no searchin = packet searchfor = “@. *$” replacewith = “” max_matches = 1 } Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 34

Moduł attr_filter • Moduł przeznaczony do filtrowania atrybutów – realizowany np. po odbiorze odpowiedzi

Moduł attr_filter • Moduł przeznaczony do filtrowania atrybutów – realizowany np. po odbiorze odpowiedzi z serwera proxy • Definicja – sekcja attr_filter, element konfiguracji attrsfile wskazuje plik z deklaracją działania filtru (domyślnie plik o nazwie attrs) – domyślnie: “usuń wszystkie atrybuty oprócz ustawionych w pliku” – poprawka kodu (UMK) – wprowadzenie el. konfiguracji default_copy = yes (domyślnie kopiuj wszystkie) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 35

Moduł attr_filter • Przykład – na serwerze jednostki włączamy attr_filter w sekcji post_proxy, plik

Moduł attr_filter • Przykład – na serwerze jednostki włączamy attr_filter w sekcji post_proxy, plik attr ma postać: polska Tunnel-Private-Group-Id : = 42 Tunnel-Type : = VLAN Tunnel-Medium-Type : = 6 Tunnel-Private-Group-Id !* ANY Tunnel-Type !* ANY Tunnel-Medium-Type !* ANY DEFAULT cel: wycięcie VLAN-ów ustawionych na obcym serwerze – na serwerze PL DEFAULT Tunnel-Private-Group-Id !* ANY Tunnel-Type !* ANY Tunnel-Medium-Type !* ANY Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 36

Moduł perl • Definicja – sekcja perl zawiera wskazanie skryptu Perl module = “/opt/Free.

Moduł perl • Definicja – sekcja perl zawiera wskazanie skryptu Perl module = “/opt/Free. RADIUS/perl/vlans. pl” – elementy konfiguracyjne func_post_auth, func_pre_proxy, func_post_proxy itd. podają nazwy funkcji Perl zdefiniowanych dla odpowiednich sekcji – przykład w skrypcie example. pl (“dokumentacja” modułu) – na serwerze UMK zdefiniowano funkcję post_auth, której zadaniem jest wycięcie atrybutów “Tunnel-*”, jeśli klientem jest serwer krajowy • Implementacja – poprawka w kodzie w sekcji przepisywania atrybutów (UMK) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 37

Sekcja authorize • Ustalenie sposobu autoryzacji authorize { preprocess copy. user-name strip. user-name Autz-Type

Sekcja authorize • Ustalenie sposobu autoryzacji authorize { preprocess copy. user-name strip. user-name Autz-Type pracownik { ldapstaff } Autz-Type student { ldapstud } eap files } Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 38

Sekcja authenicate • Realizacja uwierzytelnienia authenticate { eap Auth-Type pracownik { ldapstaff } Auth-Type

Sekcja authenicate • Realizacja uwierzytelnienia authenticate { eap Auth-Type pracownik { ldapstaff } Auth-Type student { ldapstud } Auth-Type MS-CHAP { mschap } } Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 39

Sekcja post-auth • Wywołanie modułu perl w celu usunięcia ustawionych wcześniej VLANów w przypadku,

Sekcja post-auth • Wywołanie modułu perl w celu usunięcia ustawionych wcześniej VLANów w przypadku, gdy Access-Accept z naszego serwera jest kierowany na zewnątrz sieci – NAS-IP-Address zgodny z adresami serwerów krajowych oznacza, że zlecenie dostępu przyszło z zewnątrz lub • Modyfikacja kodu modułu rlm_files w celu umożliwienia wywołania w sekcji post-auth modułu files DEFAULT Real == ”c. z” Autz-Type : = gosc, ldapgosc-Ldap-Group == “z_PL” Fall-Through = yes DEFAULT Real == „c. z”, Response-Packet-Type == Access-Accept, NAS-IP-Address != 158. 75. 1. 25, NAS-IP-Address != 150. 254. 173. 30 Tunnel-Private-Group-Id : = 40 Tunnel-Medium-Type = 6 Tunnel-Type = VLAN Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 40

eap. conf • Zawiera definicję modułu eap – ustala default_eap_type (peap, ttls, tls), typ

eap. conf • Zawiera definicję modułu eap – ustala default_eap_type (peap, ttls, tls), typ EAP-a – definicja wspieranych typów eap: md 5 { } peap { default_eap_type = mschapv 2 } tls { # certyfikat CA, certyfikat serwera, # klucz prywatny # jeśli jest obsługa CRL check_crl = yes check_cert_cn = %{User-Name} check_crl = yes } Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 41

eap. conf – definicja wspieranych typów eap cd. : ttls { default_eap_type = md

eap. conf – definicja wspieranych typów eap cd. : ttls { default_eap_type = md 5 copy_request_to_tunnel = yes use_tunneled_reply = yes } • copy_request_to_tunnel = yes - atrybuty nie zdefiniowane w tunelu, a obecne poza tunelem są kopiowane • use_tunneled_reply = yes - powoduje, że atrybuty wysyłane w odpowiedzi nie wiążą się z użytkownikiem widzianym na zewnątrz tunelu (outer identity), lecz tym, który został określony wewnątrz tunelu (inner identity) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 42

Certyfikat dla serwera • W pliku eap. conf wskazujemy certyfikat serwera, klucz prywatny serwera

Certyfikat dla serwera • W pliku eap. conf wskazujemy certyfikat serwera, klucz prywatny serwera oraz certyfikat urzędu certyfikacyjego, który poświadczył certyfikat serwera • W zleceniu certyfikacji common. Name to pełna kwalifikowana nazwa serwera • Urząd wystawiający certyfikat MUSI w certyfikacie serwera dodać rozszerzenie TLS Web Server Authentication openssl ca -out s. crt -in s. csr -extensions xpserver_ext -exfiles xpextensions plik xpextensions: [xpserver_ext] extended. Key. Usage = 1. 3. 6. 1. 5. 5. 7. 3. 1 Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 43

Uruchomienie radiusd • Jeśli konfiguracja nie jest w domyślnym katalogu etc/raddb – radiusd -d

Uruchomienie radiusd • Jeśli konfiguracja nie jest w domyślnym katalogu etc/raddb – radiusd -d katalog_konfiguracji – opcja -X – debugging (uwaga: są widoczne hasła!) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 44

Ustalanie VLAN-ów • W pakiecie Access-Accept mogą zostać wysłane atrybuty służące do ustalenia docelowego

Ustalanie VLAN-ów • W pakiecie Access-Accept mogą zostać wysłane atrybuty służące do ustalenia docelowego numeru VLAN, w którym użytkownik otrzyma adres – schemat RADIUS-LDAPv 3, klasa radius. Profile umożliwia dodanie we wpisie użytkownika informacji o VLAN-ie za pomocą atrybutów Radius. Tunnel. Type, radius. Tunnel. Medium. Type, radius. Tunnel. Private. Group. ID – w pliku users, przy obsłudze poszeczególnych realmów, można dodać ustawienie atrybutów serii Tunnel-* – uwaga: operator : = zamienia dotychczasowe ustawienia dla atrybutu • Serwer RADIUS NIE MOŻE przekazywać na zewnątrz ustawień VLAN (attr_filter, perl) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 45

Obsługa rozliczania • Przykładowe rozwiązanie – wykorzystanie bazy SQL • Plik konfiguracyjny sql. conf

Obsługa rozliczania • Przykładowe rozwiązanie – wykorzystanie bazy SQL • Plik konfiguracyjny sql. conf – zawiera deklaracje dotyczące modułu sql – deklaracja drivera, serwera, użytkownika i hasła do współpracy z bazą, nazwy bazy – definicje: accounting_start_query, accounting_update_query, accounting_stop_query • Zainicjowanie bazy danych i tablicy np. accounting – w tablicy umieszczamy pola, których dotyczą definicje accounting_start_query, accounting_update_query, accounting_stop_query • W sekcji accounting dopisujemy wywołanie modułu sql • Szczegółowa instrukcja: http: //www. terena. nl. mail-archives/mobility/pdf 00102. pdf Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 46

Integracja Free. RADIUS-a z Active Directory • Założenia – korzystamy z Active Directory (Windows

Integracja Free. RADIUS-a z Active Directory • Założenia – korzystamy z Active Directory (Windows Server 2000 / 2003) jako bazy użytkowników – użytkownicy mają zdefiniowany tryb 'allow access' (zakładka Dial-In we własnościach konta) – rozszerzamy schemat poprzez dopisanie klasy radius. Profile oraz atrybutów dialup. Access, radius. Group. Name, radius. Tunnel* – rozbudowujemy wpis użytkownika w celu dodania nowych atrybutów • uwaga: możliwość zastosowania atrybutów klasy radius. Profile przy opisie kont użytkowników ustala własność klasy radius. Profile w ramach zakładki Relationship – jako 'possible superior' należy dodać user Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 47

Active Directory • W celu aktualizacji schematu: – administrator lub użytkownik modyfikujący musi być

Active Directory • W celu aktualizacji schematu: – administrator lub użytkownik modyfikujący musi być w grupie (Member Of) Schema Admins – Run. . . regsvr 32 scmmgmt. dll – otworzyć konsolę (mmc) i dodać przystawkę “Active Directory Schema” – aby była możliwość zapisu aktualizacji niezbędna jest zmiana w rejestrze: • dojść do HKEY_LOCAL_MACHINESYSTEMCurrent. Control. Set ServicesNTDSParameters • Edit, New, DWORD Value, Value Name: Schema Update Allowed Data Type: REG_DWORD, Base: Binary, Value Data: 1 Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 48

Active Directory • Konta użytkowników znajdują się w gałęzi cn=Users – korzeń drzewa to

Active Directory • Konta użytkowników znajdują się w gałęzi cn=Users – korzeń drzewa to dc=a, dc=b, dc=c, jeśli Active Directory jest kontrolerem domeny a. b. c – program ldifde pozwala importować i eksportować dane • domyślny tryb to eksport – przykłady ldifde -d 'cn=users, dc=ad, dc=umk, dc=pl' -f u. ldif w pliku u. ldif zostanie zapisany zrzut poddrzewa cn=users ldifde -f user. ldif -i import danych wg pliku user. ldif (wsad w postaci standardu LDIF, DN entry, definicja operacji (changetype: add/modify/ delete), atrybuty Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 49

Free. RADIUS - współpraca z Active Directory • Free. RADIUS Tutorial for AD Integration,

Free. RADIUS - współpraca z Active Directory • Free. RADIUS Tutorial for AD Integration, Ch. Schwartz http: //homepages. lu/charlesschwartz/radius/free. Radius_AD_tutorial. pdf • Definiujemy moduł ldap, np ldap AD {. . . identity = DN_użytkownika z prawem_odczytu password = “hasło_użytkownika” start_tls = no access_attr = “dialup. Access”. . . } – w sekcji authorize umieszczany odpowiedni Autz-Type, podobnie w authenticate Auth-Type (by wskazać móc wskazać w users obsługę dla danego realmu) Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 50

Free. RADIUS - współpraca z Active Directory • Stosowany typ uwierzytelnienia – PEAP •

Free. RADIUS - współpraca z Active Directory • Stosowany typ uwierzytelnienia – PEAP • Ustawienia po stronie serwera – serwer musi należeć do domeny Windows – korzystamy z serwera Samba i narzędzi: • winbind: demon umożliwiający połączenie ze środowiskiem Windows • ntlm_auth: program korzystający z winbind do realizacji zlecenia NTLM – plik /etc/krb 5. conf – należy dodać domenę Windows AD. UMK. PL { kdc = 192. 168. 3. 33 default_domain = AD. UMK. PL } Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 51

Free. RADIUS - współpraca z Active Directory • Samba – plik smb. conf •

Free. RADIUS - współpraca z Active Directory • Samba – plik smb. conf • w sekcji [global] workgroup = AD. UMK. PL security = ads. . . password server = 192. 168. 3. 33 realm = AD. UMK. PL • w sekcji [homes] browsable = no writable = yes – restart samby Seminarium eduroam – UMK, 16 -17. 03. 2006 // serwer AD Maja Górecka-Wolniewicz UCI UMK 52

Free. RADIUS - współpraca z Active Directory • Rejestracja serwera w domenie Windows net

Free. RADIUS - współpraca z Active Directory • Rejestracja serwera w domenie Windows net join -U administrator • Uruchomić winbindd • Próba uwierzytelnienia przez NTLM ntlm_auth –request-nt-key –domain=AD. UMK. PL -username=mgw • Dostosowanie konfiguracji serwera Free. RADIUS: – w sekcji mschap musi być authtype = MS-CHAP, odkomentowane definicje with_ntdomain_hack = yes oraz ntlm_auth = “/usr/bin/ntlm_auth –request-nt-key --domain=AD. UMK. PL –username=%{Stripped-User-Name} --challenge=%{mschap: Challenge} --nt-response=%{mschap: NT-Response} Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 53

Free. RADIUS - współpraca z Active Directory • Plik eap. conf – default_eap_type =

Free. RADIUS - współpraca z Active Directory • Plik eap. conf – default_eap_type = peap – w sekcji tls – deklaracja certyfikatów, PEAP korzysta z zaszyfrowanego tunelu – odkomentować sekcję peap { default_eap_type = mschapv 2 } • Klient – w suplikancie wybieramy metodę PEAP, odznaczamy automatyczne przekazywanie danych zalogowanego użytkownika, jako username wpisujemy user@ad. umk. pl, pole domeny puste Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 54

Free. RADIUS – modyfikacje źródeł • Patch dot. wyrażeń regułowych w realmach • Własne

Free. RADIUS – modyfikacje źródeł • Patch dot. wyrażeń regułowych w realmach • Własne poprawki UMK – moduł ldap: dodanie możliwości deklaracji groupmembership=NULL – w celu uniknięcia domyślnych przeszukiwań bazy pod kątem atrybutów member, group. Of. Names – moduł attr_filter: dodanie deklaracji default_copy, gdy default_copy=yes, domyślnie są przepisywane atrybuty w pakiecie (jeśli nie pojawią się na liście w pliku attrs) – moduł files: dodanie możliwości wywołania modułu w sekcji post-auth (w celu przypisania na tym etapie VLAN-ów) – logowanie: • main/auth. c – wypisywanie czasu zalogowania przy debugu • lib/print. c, moduł ldap – ukrycie haseł Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 55

Internet Authentication Server IAS • Usługa IAS – rejestracja IAS w Active Directory (prawy

Internet Authentication Server IAS • Usługa IAS – rejestracja IAS w Active Directory (prawy przycisk, Register Service in Active Directory) – Clients – definicja klienta, nazwa skrócona, adres IP, client 'RADIUS standard', ustalić shared secret między klientem a serwerem IAS – Remote Access Policy - domyślna 'Allow access if dial-in permission is enabled' • właściwości danej polityki, zaznaczyć 'Grant remote access permission', następnie 'Edit profile' • zakładka Authentication – zaznaczyć EAP, MS-CHAP, MSCHAPv 2 • wybrać Protected EAP (PEAP), Configure Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 56

Internet Authentication Server IAS • Certyfikat serwera: – można zainstalować Certification Service, utworzyć enterprose

Internet Authentication Server IAS • Certyfikat serwera: – można zainstalować Certification Service, utworzyć enterprose root CA i wygenerować certyfikat serwera • certyfikat root CA musi zostać wyeksportowany i dodany do magazynu zaufanych urzędów certyfikacji każdego klienta – można wygenerować certyfikat serwera w środowisku instytucjonalnego PKI, ale certyfikat musi spełniać następujące wymagania: • dodajemy następujące rozszerzenia key. Usage, subject. Key. Identifier, authority. Key. Identifier, crl. Distribution. Points, extended. Key. Usage, subject. Alt. Name, Certificate Template (o wartości Domain Controller) oraz atrybut CSP (Cryptographic Service Provider). Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 57

Internet Authentication Server IAS • Ustalanie VLAN-ów – w ramach definicji Remote Access Policy,

Internet Authentication Server IAS • Ustalanie VLAN-ów – w ramach definicji Remote Access Policy, edycja profilu, zakładka Advanced • można dodać atrybuty wysyłane w odpowiedzi, m. in. atrybuty serii Tunnel-* • Serwer IAS domyślnie obsługuje użytkowników na podstawie danych w gałęzi cn=Users kontrolera domeny Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 58

Serwer RADIUS instytucji dołączony do eduroam • SSID eduroam wdrożony • Działający serwer RADIUS,

Serwer RADIUS instytucji dołączony do eduroam • SSID eduroam wdrożony • Działający serwer RADIUS, np. Free. RADIUS obsługujący daną instytucję – w proxy. conf obsługa realmów danej instytucji • Serwer krajowy MUSI zawierać informację o nowej instytucji (w celu realizacji funkcjonalności) – musi zostać dodany wpis dot. obsługi realmu/realmów danej instytucji – nowy serwer instytucji musi zostać dodany do klientów (razem z ustalonym kluczem wspólnym) – udrożnienie portów UDP 1812, 1813. 1814 • Serwer instytucji MUSI wskazywać serwery krajowe radius 1. eduroam. pl i radius 2. eduroam. pl do obsługi realmów innych niż lokalne Seminarium eduroam – UMK, 16 -17. 03. 2006 Maja Górecka-Wolniewicz UCI UMK 59