instalacja i konfiguracja serwera radius
DESCRIPTION
Instalacja i konfiguracja serwera RADIUS. Maja Górecka-Wolniewicz UCI, UMK. Implementacje serwera RADIUS. FreeRADIUS większość informacji dotyczy tej implemetnacji Internet Authentication Service produkt Microsoft, integralna część serwera Windows 2000 i 2003 RADIATOR - PowerPoint PPT PresentationTRANSCRIPT
Tomasz Wolniewicz UCI UMK
Seminarium eduroam – UMK, 16-17.03.2006
Maja Górecka-WolniewiczUCI, UMK
Instalacja i konfiguracja serwera RADIUS
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK2
Implementacje serwera RADIUS
• FreeRADIUS– 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 UMK3
• 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/[email protected]
• Aktualna wersja oprogramowania – 1.1.0
Projekt FreeRADIUS
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK4
• OpenSSL – nie jest potrzebny, gdy serwer pełni wyłącznie funkcję proxy
• OpenLDAP – jeśli korzystamy z usługi LDAP do uwierzytelniania/autoryzacji
• Oprogramowanie dodatkowe, zgodnie z potrzebami, np. MySQL, Postgres etc.
Wymagane oprogramowanie
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK5
Obsługa wyrażeń regułowych w realmach
• Domyślnie freeRADIUS 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 -p1 < rozpakowany_plik_z_poprawką
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK6
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 OpenSSL--with-ssl-lib=/opt/ssl/lib
--with-ssl-include=/opt/ssl/include
• inne:--with-experimental-modules
--without-rlm-perl --without-rlm-sql
Kompilacja
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK7
make
make install
• Uwagi:– jeśli używamy własnej instalacji OpenSSL-a warto
sprawdzić, czy programy i biblioteki są dolinkowane do właściwych bibliotek OpenSSL; 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
Kompilacja, instalacja
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK8
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 UMK9
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 UMK10
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 = campus1dev120 }
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 UMK11
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 UMK12
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-3User-Name = user1,
User-Name = user2
• 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 UMK13
proxy.conf
• Konfiguracja realmów# realm lokalnyrealm 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 = a2s3d4f5g6 nostrip}
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK14
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 UMK15
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 UMK16
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 UMK17
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ć wpisunazwa <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 UMK18
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 UMK19
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 UMK20
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 • zastępuje wartość atrybutu konfiguracyjnego na liście
odpowiedzi
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK21
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 UMK22
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 UMK23
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 UMK24
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 UMK25
users• Przykłady ( \ oznacza, że c.d. MUSI być w tej samym
wierszu)
user1 User-Password == “user1pass”user2 Auth-Type := Reject
Reply-Message = “Zablokwane konto”DEFAULT Realm == NULL, Auth-Type := RejectDEFAULT Realm = “a.z”, Client-IP-Address == 10.1.1.1,\
Auth-Type := RejectDEFAULT Real == ”b.z” Hundgroup-Name ==”XXX”
Tunnel-Private-Group-Id := 40Tunnel-Medium-Type = 6Tunnel-Type = VLAN
DEFAULT Real == ”c.z” FreeRadius-Proxied-To == 127.0.0.1, \
Autz-Type := gosc, ldapgosc-Ldap-Group == “z_PL”Tunnel-Private-Group-Id := 40Tunnel-Medium-Type = 6Tunnel-Type = VLAN
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK26
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 UMK27
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 freeRADIUS-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 UMK28
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 UMK29
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 UMK30
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 OLStaff1 { tu_deklaracje_serwera_głównego } ldap OLStaff2 { 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=groupOfNames)(member=%{Ldap-UserDn})) (&(objectclass=groupOfUniqueNames)
(member=%{Ldap-UserDn})))
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK31
Moduł ms_chap
• Niezbędny, gdy dostarczamy metodę PEAP (uwierzytelnianie MS-CHAP i MS-CHAPv2)
• Konfiguracja w sekcji mschapauthtype = MS-CHAP
use-mppe = yes
require_encription = yes
require_strong = yes
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK32
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 UMK33
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 UMK34
Moduł mod_rewrite
• Przykład # obcięcie nazwy przed wyszukaniem użytkownika w
# bazieattr_rewrite copy.user-name { attribute = Stripped-User-Namenew_attribute = yessearchin = packetsearchfor = “”replacewith = “%{User-Name}”}attr_rewrite strip.user-name { attribute = Stripped-User-Namenew_attribute = nosearchin = packetsearchfor = “@.*$”replacewith = “”max_matches = 1}
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK35
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 UMK36
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 !* ANYDEFAULT
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 UMK37
Moduł perl
• Definicja– sekcja perl zawiera wskazanie skryptu Perl
module = “/opt/FreeRADIUS/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 UMK38
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 UMK39
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 UMK40
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ątrzlub• 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 = yesDEFAULT 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 UMK41
eap.conf
• Zawiera definicję modułu eap– ustala default_eap_type (peap, ttls, tls), typ EAP-a – definicja wspieranych typów eap:
md5 {}peap { default_eap_type = mschapv2}tls { # certyfikat CA, certyfikat serwera, # klucz prywatny # jeśli jest obsługa CRL check_crl = yescheck_cert_cn = %{User-Name}check_crl = yes}
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK42
eap.conf
– definicja wspieranych typów eap cd.:
ttls { default_eap_type = md5 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 UMK43
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 commonName 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 xpextensionsplik xpextensions:[xpserver_ext]extendedKeyUsage = 1.3.6.1.5.5.7.3.1
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK44
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 UMK45
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-LDAPv3, klasa radiusProfile umożliwia
dodanie we wpisie użytkownika informacji o VLAN-ie za pomocą atrybutów RadiusTunnelType, radiusTunnelMediumType, radiusTunnelPrivateGroupID
– w pliku users, przy obsłudze posze\czegó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 UMK46
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/pdf00102.pdf
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK47
Integracja FreeRADIUS-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
radiusProfile oraz atrybutów dialupAccess, radiusGroupName, radiusTunnel*
– rozbudowujemy wpis użytkownika w celu dodania nowych atrybutów
• uwaga: możliwość zastosowania atrybutów klasy radiusProfile przy opisie kont użytkowników ustala własność klasy radiusProfile w ramach zakładki Relationship – jako 'possible superior' należy dodać user
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK48
Active Directory
• W celu aktualizacji schematu:– administrator lub użytkownik modyfikujący musi być w
grupie (Member Of) Schema Admins– Run... regsvr32 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_MACHINE\SYSTEM\CurrentControlSet\
Services\NTDS\Parameters• 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 UMK49
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ładyldifde -d 'cn=users,dc=ad,dc=umk,dc=pl' -f u.ldif
w pliku u.ldif zostanie zapisany zrzut poddrzewa cn=usersldifde -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 UMK50
FreeRADIUS - współpracaz Active Directory
• FreeRADIUS Tutorial for AD Integration, Ch. Schwartzhttp://homepages.lu/charlesschwartz/radius/
freeRadius_AD_tutorial.pdf
• Definiujemy moduł ldap, npldap AD {...identity = DN_użytkownika z prawem_odczytupassword = “hasło_użytkownika”start_tls = noaccess_attr = “dialupAccess”...}– 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 UMK51
FreeRADIUS - współpracaz 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/krb5.conf – należy dodać domenę WindowsAD.UMK.PL {kdc = 192.168.3.33default_domain = AD.UMK.PL}
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK52
FreeRADIUS - współpracaz Active Directory
• Samba– plik smb.conf
• w sekcji [global]
workgroup = AD.UMK.PLsecurity = ads...password server = 192.168.3.33 // serwer ADrealm = AD.UMK.PL
• w sekcji [homes]
browsable = nowritable = yes
– restart samby
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK53
FreeRADIUS - współpracaz Active Directory
• Rejestracja serwera w domenie Windowsnet join -U administrator
• Uruchomić winbindd• Próba uwierzytelnienia przez NTLM
ntlm_auth –request-nt-key –domain=AD.UMK.PL -username=mgw
• Dostosowanie konfiguracji serwera FreeRADIUS:– 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 UMK54
FreeRADIUS - współpracaz Active Directory
• Plik eap.conf– default_eap_type = peap– w sekcji tls – deklaracja certyfikatów, PEAP korzysta z
zaszyfrowanego tunelu– odkomentować sekcję peap
peap {default_eap_type = mschapv2}
• Klient– w suplikancie wybieramy metodę PEAP, odznaczamy
automatyczne przekazywanie danych zalogowanego użytkownika, jako username wpisujemy [email protected], pole domeny puste
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK55
FreeRADIUS – 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, groupOfNames
– 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 UMK56
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, MS-CHAPv2
• wybrać Protected EAP (PEAP), Configure
Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI UMK57
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 keyUsage, subjectKeyIdentifier, authorityKeyIdentifier, crlDistributionPoints, extendedKeyUsage, subjectAltName, 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 UMK58
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 UMK59
Serwer RADIUS instytucjidołączony do eduroam
• SSID eduroam wdrożony• Działający serwer RADIUS, np. FreeRADIUS 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 radius1.eduroam.pl i radius2.eduroam.pl do obsługi realmów innych niż lokalne