Top Banner
Tomasz Wolniewicz UCI UMK Seminarium eduroam – UMK, 16-17.03.2006 Maja Górecka-Wolniewicz UCI, UMK Instalacja i konfiguracja serwera RADIUS
59

Instalacja i konfiguracja serwera RADIUS

Jan 17, 2016

Download

Documents

vern

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 Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Instalacja i konfiguracja serwera RADIUS

Tomasz Wolniewicz UCI UMK

Seminarium eduroam – UMK, 16-17.03.2006

Maja Górecka-WolniewiczUCI, UMK

Instalacja i konfiguracja serwera RADIUS

Page 2: 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

Page 3: Instalacja i konfiguracja serwera RADIUS

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

Page 4: Instalacja i konfiguracja serwera RADIUS

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

Page 5: Instalacja i konfiguracja serwera RADIUS

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ą

Page 6: Instalacja i konfiguracja serwera RADIUS

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

Page 7: Instalacja i konfiguracja serwera RADIUS

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

Page 8: Instalacja i konfiguracja serwera RADIUS

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

Page 9: Instalacja i konfiguracja serwera RADIUS

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

Page 10: Instalacja i konfiguracja serwera RADIUS

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

Page 11: Instalacja i konfiguracja serwera RADIUS

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)

Page 12: Instalacja i konfiguracja serwera RADIUS

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”

Page 13: Instalacja i konfiguracja serwera RADIUS

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}

Page 14: Instalacja i konfiguracja serwera RADIUS

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

Page 15: Instalacja i konfiguracja serwera RADIUS

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

Page 16: Instalacja i konfiguracja serwera RADIUS

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

Page 17: Instalacja i konfiguracja serwera RADIUS

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)

Page 18: Instalacja i konfiguracja serwera RADIUS

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,

Page 19: Instalacja i konfiguracja serwera RADIUS

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”

Page 20: Instalacja i konfiguracja serwera RADIUS

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

Page 21: Instalacja i konfiguracja serwera RADIUS

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

Page 22: Instalacja i konfiguracja serwera RADIUS

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

Page 23: Instalacja i konfiguracja serwera RADIUS

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

Page 24: Instalacja i konfiguracja serwera RADIUS

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

Page 25: Instalacja i konfiguracja serwera RADIUS

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

Page 26: Instalacja i konfiguracja serwera RADIUS

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

Page 27: Instalacja i konfiguracja serwera RADIUS

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)

Page 28: Instalacja i konfiguracja serwera RADIUS

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

Page 29: Instalacja i konfiguracja serwera RADIUS

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”

Page 30: Instalacja i konfiguracja serwera RADIUS

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

Page 31: Instalacja i konfiguracja serwera RADIUS

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

Page 32: Instalacja i konfiguracja serwera RADIUS

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

Page 33: Instalacja i konfiguracja serwera RADIUS

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

Page 34: Instalacja i konfiguracja serwera RADIUS

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}

Page 35: Instalacja i konfiguracja serwera RADIUS

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)

Page 36: Instalacja i konfiguracja serwera RADIUS

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

Page 37: Instalacja i konfiguracja serwera RADIUS

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)

Page 38: Instalacja i konfiguracja serwera RADIUS

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}

Page 39: Instalacja i konfiguracja serwera RADIUS

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 }

}

Page 40: Instalacja i konfiguracja serwera RADIUS

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

Page 41: Instalacja i konfiguracja serwera RADIUS

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}

Page 42: Instalacja i konfiguracja serwera RADIUS

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)

Page 43: Instalacja i konfiguracja serwera RADIUS

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

Page 44: Instalacja i konfiguracja serwera RADIUS

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

Page 45: Instalacja i konfiguracja serwera RADIUS

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)

Page 46: Instalacja i konfiguracja serwera RADIUS

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

Page 47: Instalacja i konfiguracja serwera RADIUS

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

Page 48: Instalacja i konfiguracja serwera RADIUS

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

Page 49: Instalacja i konfiguracja serwera RADIUS

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

Page 50: Instalacja i konfiguracja serwera RADIUS

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)

Page 51: Instalacja i konfiguracja serwera RADIUS

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}

Page 52: Instalacja i konfiguracja serwera RADIUS

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

Page 53: Instalacja i konfiguracja serwera RADIUS

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}

Page 54: Instalacja i konfiguracja serwera RADIUS

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

Page 55: Instalacja i konfiguracja serwera RADIUS

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ł

Page 56: Instalacja i konfiguracja serwera RADIUS

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

Page 57: Instalacja i konfiguracja serwera RADIUS

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

Page 58: Instalacja i konfiguracja serwera RADIUS

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

Page 59: Instalacja i konfiguracja serwera RADIUS

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