Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWiktor Andrukiewicz Został zmieniony 11 lat temu
1
Instalacja i konfiguracja serwera RADIUS
Maja Górecka-Wolniewicz UCI, UMK Tomasz Wolniewicz UCI UMK
2
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
3
Projekt FreeRADIUS Oprogramowanie open source
Jedna z bardziej popularnych implementacji niekomercyjnych, powszechnie wykorzystywana w projekcie eduroam, zalecana w polskim projekcie duże możliwości (różnorodność modułów) elastyczność w konfiguracji Lista użytkowników, archiwum Aktualna wersja oprogramowania – 1.1.0
4
Wymagane oprogramowanie
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.
5
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 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ą
6
Kompilacja gdy własna instalacja LDAP gdy własna instalacja OpenSSL
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
7
Kompilacja, instalacja
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
8
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
9
Konfiguracja Pliki konfiguracyjne: katalog etc/raddb instalacji pakietu freeradius radius.conf clients.conf proxy.conf users huntgroups
10
clients.conf ###############################
# Definicje AP-ów i innych urządzeń #client <nazwa | adres-IP | podsieć> { #<atrybut> = <wartość> #} client { 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
11
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 ( )
12
huntgroups Definicja grup urządzeń NAS Postać definicji
aptest NAS-IP-Address == aptest NAS-IP-Address == lub (bardziej złożona) aptest NAS-IP-Address == , NAS-Port-Id == 0-3 User-Name = user1, User-Name = user2 Dopasowanie następuje podczas przeglądania pliku users, Kryterium dopasowania Hundgroup-Name == “XXX”
13
proxy.conf Konfiguracja realmów # realm lokalny realm umk.pl {
type = radius authhost = LOCAL accthost = LOCAL } # realm zdalny realm uci.umk.pl { authhost = :1812 accthost = :1813 secret = a2s3d4f5g6 nostrip
14
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
15
proxy.conf regex nostrip
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
16
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
17
users Domyślna nazwa pliku autoryzacji Inne zastosowania modułu files
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)
18
users Zastosowania modułu files Domyślne nazwy plików
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,
19
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”
20
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
21
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
22
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 forma atrybut < wartość na liście sprawdzanych elementów sprawdza, czy wartość atrybutu w zleceniu jest mniejsza od podanej
23
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!) forma atrybut !~ wyrażenie na liście sprawdzanych elementów sprawdza, czy wartość atrybutu nie dopasowuje się do wyrażenia (wartość znakowa!)
24
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)
25
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 := Reject DEFAULT Realm = “a.z”, Client-IP-Address == ,\ 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” FreeRadius-Proxied-To == , \ Autz-Type := gosc, ldapgosc-Ldap-Group == “z_PL”
26
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 == , \ Auth-Type := Reject zapobiega przesłaniu zlecenia dot. realmu polska do serwera krajowego, ponieważ stamtąd nadeszło zlecenie
27
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)
28
radius.conf Sekcja modules Sekcja instantiate
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
29
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”
30
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})))
31
Moduł ms_chap Niezbędny, gdy dostarczamy metodę PEAP (uwierzytelnianie MS-CHAP i MS-CHAPv2) Konfiguracja w sekcji mschap authtype = MS-CHAP use-mppe = yes require_encription = yes require_strong = yes
32
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 = ...
33
Moduł attr_rewrite Działanie cd. Zastosowanie
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
34
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 { new_attribute = no searchfor = replacewith = “” max_matches = 1
35
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)
36
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
37
Moduł perl Definicja Implementacja
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)
38
Sekcja authorize Ustalenie sposobu autoryzacji authorize { preprocess
copy.user-name strip.user-name Autz-Type pracownik { ldapstaff } Autz-Type student { ldapstud eap files
39
Sekcja authenicate Realizacja uwierzytelnienia authenticate { eap
Auth-Type pracownik { ldapstaff } Auth-Type student { ldapstud Auth-Type MS-CHAP { mschap
40
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 != , \ NAS-IP-Address != Tunnel-Private-Group-Id := 40 Tunnel-Medium-Type = 6 Tunnel-Type = VLAN
41
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 = yes check_cert_cn = %{User-Name} check_crl = yes
42
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)
43
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 xpextensions plik xpextensions: [xpserver_ext] extendedKeyUsage =
44
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!)
45
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)
46
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:
47
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
48
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
49
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
50
FreeRADIUS - współpraca z Active Directory
FreeRADIUS Tutorial for AD Integration, Ch. Schwartz Definiujemy moduł ldap, np ldap AD { ... identity = DN_użytkownika z prawem_odczytu password = “hasło_użytkownika” start_tls = no access_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)
51
FreeRADIUS - 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/krb5.conf – należy dodać domenę Windows AD.UMK.PL { kdc = default_domain = AD.UMK.PL }
52
FreeRADIUS - współpraca z Active Directory
Samba plik smb.conf w sekcji [global] workgroup = AD.UMK.PL security = ads ... password server = // serwer AD realm = AD.UMK.PL [homes] browsable = no writable = yes restart samby
53
FreeRADIUS - 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 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}
54
FreeRADIUS - 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 peap { default_eap_type = mschapv2 } Klient w suplikancie wybieramy metodę PEAP, odznaczamy automatyczne przekazywanie danych zalogowanego użytkownika, jako username wpisujemy pole domeny puste
55
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ł
56
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
57
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).
58
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
59
Serwer RADIUS instytucji dołą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, Serwer instytucji MUSI wskazywać serwery krajowe radius1.eduroam.pl i radius2.eduroam.pl do obsługi realmów innych niż lokalne
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.