Instalacja i konfiguracja serwera RADIUS

Slides:



Advertisements
Podobne prezentacje
Procedura instalacji systemu Windows XP
Advertisements

Graficzny klient SVN graficzny klient SVN integrujący się z powłoką systemu dostępny tylko dla systemu Windows - do pobrania z
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Ewa Skrenty Uczelniane Centrum Informatyczne UMK
Zastosowanie LDAP w obsłudze katalogów bibliotecznych
Usługi sieciowe Wykład 6 Apache2- debian
Usługi sieciowe Wykład 5 DHCP- debian
Co to jest DNS i jak działa?
Prezentacja na temat: Porównanie Windows XP i Windows 7
LDAP, Toruń Indeksowanie ogólnopolskich zasobów LDAP Maja Górecka-Wolniewicz, UCI UMK Zadanie 26.
Sieci komputerowe Usługi sieciowe Piotr Górczyński 27/09/2002.
Przypisywanie adresów TCP/IP
Kamil Smitkiewicz Bezpieczeństwo w PHP.
ADAM Active Directory w trybie aplikacyjnym
Dodawanie i usuwanie oprogramowania
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE PODSTAWOWE.
Jarosław Kurek WZIM SGGW
Usługi sieciowe Wykład 5 DHCP- debian Jarosław Kurek WZIM SGGW 1.
Obsługa serwera zdalnego przez klienta FTP
Tunelowanie.
Definicja (ang. Domain Name System, system nazw domenowych)
Usługa Windows Server Update Services (WSUS)
Artur Szmigiel Paweł Zarębski Kl. III i
Systemy zarządzania treścią CMS
SAMBA JAKO SERWER PLIKÓW
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Rozwój eduroam Tomasz Wolniewicz UCI UMK.
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Formalne aspekty eduroam Tomasz Wolniewicz UCI UMK.
Oprogramowanie klienckie
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Implementacja eduroam Tomasz Wolniewicz UCI UMK.
Przegląd zagadnień Struktura sieci systemu Windows 2003
Budowa, przeglądanie i modyfikacja
Usługi katalogowe LDAP.
Uwierzytelnianie i autoryzacja System Użytkowników Wirtualnych Michał Jankowski Paweł Wolniewicz
Forum internetowe, przykład skryptu, Funkcjonalność.
KONFIGURACJA KOMPUTERA
Konfiguracja kont w programie Adobe Dreamweaver
LDAP i RADIUS Jakub Olszewski.
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Lokalne serwery www Serwer WWW - ang. Web server jest to oprogramowanie zainstalowane na serwerze podłączonym do sieci Internet. Używające technologii.
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Tomasz Wolniewicz UCI UMK Projekt eduroam.
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Tomasz Piontek Uczelniane Centrum Informatyczne UMK Konfiguracja urządzenia dla eduroam.
Prezentacja i szkolenie
Sieci komputerowe.
Rozdział 1: Wprowadzenie do systemu Windows 2000 i podstaw sieci
Rejestr systemu Windows
Sieć oparta o serwer Ubuntu 12.10
Linux w sieci Konfigurowanie interfejsu sieciowego.
Konfiguracja sieci TCP/IP - Windows for Workgroup 3.11
Integracja iStore z programem Subiekt GT
Administracja systemami operacyjnymi Wiosna 2014
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Tomasz Wolniewicz UCI UMK Czego wymagać od access-pointów.
Seminarium eduroam – UMK, Tomasz Wolniewicz UCI UMK Tomasz Piontek Uczelniane Centrum Informatyczne UMK Konfiguracja urządzenia dla eduroam.
Zintegrowany sterownik przycisków. Informacje podstawowe Każdy przycisk jest podłączony do sterownika za pośrednictwem dwóch przewodów, oraz dwóch linii.
Jednym z podstawowych celów tworzenia sieci komputerowych jest współdzielenie zasobów, takich jak pliki lub drukarki. Każdy z takich zasobów musi być udostępniony,
Toruń 28/ Usługodawcy dostępni poprzez PIONIER.Id mogą pochodzić z dwóch źródeł: – bezpośrednio z PIONIER.Id – z eduGAIN za pośrednictwem PIONIER-id.
Toruń 28/ Shibboleth SP działa z poziomu serwera HTTP, jest niezależny od języka programowania, pozwala zintegrować dowolną aplikację ze środowiskiem.
Clustering Technologia klastrowa - architektura łącząca serwery i urządzenia pamięci masowych w celu zwiększenia niezawodności, bezpieczeństwa i wydajności.
Konfiguracja VPN Serwera – Windows 7
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Prezentacja przykładowych rozwiązań realizujących autoryzację w serwisie WWW w oparciu o bazę LDAP Jerzy Szymański.
Instalacja klucza HASP.
Grzegorz Chodak Wykład
Sponsorzy: Media:. Sponsorzy: Media: MBUM 9/11/2017 Mikrotik Beer User Meeting Integracja uwierzytelniania tunelu L2TP/IPsec z Microsoft Active Directory.
PODSTAWOWE ZARZĄDZANIE KOMPUTERAMI Z SYSTEMEM WINDOWS
AudaPad / AudaShare AudaShare PRO (2.8)
Sieci komputerowe Usługi sieciowe 27/09/2002.
Wskaż wybrany krok lub kliknij Enter aby dowiedzieć się więcej.
Poczta elektroniczna "electronic mail") A.Ś.
Zapis prezentacji:

Instalacja i konfiguracja serwera RADIUS Maja Górecka-Wolniewicz UCI, UMK Tomasz 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 Implementacje CISCO, Funk Software, Lucent Technologies

Projekt FreeRADIUS 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

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.

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ą

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

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

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

Konfiguracja Pliki konfiguracyjne: katalog etc/raddb instalacji pakietu freeradius radius.conf clients.conf proxy.conf users huntgroups

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

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)

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 = user1, User-Name = user2 Dopasowanie następuje podczas przeglądania pliku users, Kryterium dopasowania Hundgroup-Name == “XXX”

proxy.conf Konfiguracja realmów # realm lokalny realm umk.pl { type = radius authhost = LOCAL accthost = LOCAL } # realm zdalny realm uci.umk.pl { authhost = 10.1.1.1:1812 accthost = 10.1.1.1:1813 secret = a2s3d4f5g6 nostrip

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

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

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

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)

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,

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”

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

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

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

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!)

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)

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 == 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” FreeRadius-Proxied-To == 127.0.0.1, \ Autz-Type := gosc, ldapgosc-Ldap-Group == “z_PL”

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

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)

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

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”

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})))

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

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 = ...

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

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

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)

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

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)

Sekcja authorize Ustalenie sposobu autoryzacji authorize { preprocess copy.user-name strip.user-name Autz-Type pracownik { ldapstaff } Autz-Type student { ldapstud eap files

Sekcja authenicate Realizacja uwierzytelnienia authenticate { eap Auth-Type pracownik { ldapstaff } Auth-Type student { ldapstud Auth-Type MS-CHAP { mschap

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

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

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)

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 = 1.3.6.1.5.5.7.3.1

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!)

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)

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

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

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

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

FreeRADIUS - współpraca z Active Directory FreeRADIUS Tutorial for AD Integration, Ch. Schwartz http://homepages.lu/charlesschwartz/radius/freeRadius_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 = “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)

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 = 192.168.3.33 default_domain = AD.UMK.PL }

FreeRADIUS - współpraca z Active Directory Samba plik smb.conf w sekcji [global] workgroup = AD.UMK.PL security = ads ... password server = 192.168.3.33 // serwer AD realm = AD.UMK.PL [homes] browsable = no writable = yes restart samby

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}

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 user@ad.umk.pl, pole domeny puste

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ł

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

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).

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

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,1813.1814 Serwer instytucji MUSI wskazywać serwery krajowe radius1.eduroam.pl i radius2.eduroam.pl do obsługi realmów innych niż lokalne