instalacja i konfiguracja serwera radius
Download
Skip this Video
Download Presentation
Instalacja i konfiguracja serwera RADIUS

Loading in 2 Seconds...

play fullscreen
1 / 59

Instalacja i konfiguracja serwera RADIUS - PowerPoint PPT Presentation


  • 107 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Instalacja i konfiguracja serwera RADIUS' - vern


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
instalacja i konfiguracja serwera radius
Instalacja i konfiguracja serwera RADIUS

Maja Górecka-Wolniewicz

UCI, UMK

Tomasz Wolniewicz UCI UMK

implementacje serwera radius
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
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/[email protected]
  • Aktualna wersja oprogramowania – 1.1.0
wymagane oprogramowanie
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
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
Kompilacja
  • cd freeradius-1.1.0
  • ./configure –prefix=/opt/freeradius
  • gdy własna instalacja LDAP
    • --with-rlm-ldap-lib=/opt/ldap/lib
    • --with-rlm-ldap-include=/opt/ldap/include
  • gdy własna instalacja 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
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
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
Konfiguracja
  • Pliki konfiguracyjne: katalog etc/raddb instalacji pakietu freeradius
    • radius.conf
    • clients.conf
    • proxy.conf
    • users
    • huntgroups
clients conf
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
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
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
proxy.conf
  • Konfiguracja realmów

# realm lokalny

realm umk.pl {

type = radius

authhost = LOCAL

accthost = LOCAL

}

# realm zdalny

realm uci.umk.pl {

type = radius

authhost = 10.1.1.1:1812

accthost = 10.1.1.1:1813

secret = a2s3d4f5g6

nostrip

}

proxy conf1
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 conf2
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
proxy conf3
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
users
  • Domyślna nazwa pliku autoryzacji
    • można wskazać inną nazwę: deklaracja nazwy w pliku radiusd.conf, sekcja files, określenie userfile=...
  • Inne zastosowania modułu files
    • rozliczenie (preacct)
    • obsługa użytkowników przed realizacją funkcji proxy (pre-proxy)
    • modyfikacja UMK (a podstawie informacji na liście freeradius)
  • Format pliku
    • zestaw dyrektyw konfiguracyjnych używanych przez moduł files w celu podjęcia decyzji o sposobie autoryzacji i uwierzytelnienia użytkownika
    • postać wpisu

nazwa <lista_sprawdzanych_elementów (check items)>

TAB <lista_elementów_odpowiedzi (reply items)>

nazwa – nazwa użytkownika lub słowo DEFAULT (dowolny użytkownik)

users1
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,
users2
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”
users3
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
    • formaatrybut := wartość
      • na liście sprawdzanych elementów oznacza “zawsze dopasowany”
      • zastępuje wartość atrybutu konfiguracyjnego
      • zastępuje wartość atrybutu konfiguracyjnego na liście odpowiedzi
users4
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
    • formaatrybut == 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
    • formaatrybut != 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
users5
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
    • formaatrybut >= 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
users6
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
    • formaatrybut =~ 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
users7
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
users8
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”

Tunnel-Private-Group-Id := 40

Tunnel-Medium-Type = 6

Tunnel-Type = VLAN

users9
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
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 conf1
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
modu ldap
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 ldap1
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
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ł 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 rewrite1
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
modu mod rewrite
Moduł mod_rewrite
  • Przykład

# obcięcie nazwy przed wyszukaniem użytkownika w

# bazie

attr_rewrite copy.user-name {

attribute = Stripped-User-Name

new_attribute = yes

searchin = packet

searchfor = “”

replacewith = “%{User-Name}”

}

attr_rewrite strip.user-name {

attribute = Stripped-User-Name

new_attribute = no

searchin = packet

searchfor = “@.*$”

replacewith = “”

max_matches = 1

}

modu attr filter
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 filter1
Moduł attr_filter
  • Przykład
    • na serwerze jednostki włączamy attr_filter w sekcji post_proxy, plik attr ma postać:

polska

Tunnel-Private-Group-Id := 42

Tunnel-Type := VLAN

Tunnel-Medium-Type := 6

Tunnel-Private-Group-Id !* ANY

Tunnel-Type !* ANY

Tunnel-Medium-Type !* ANY

DEFAULT

cel: wycięcie VLAN-ów ustawionych na obcym serwerze

    • na serwerze PL

DEFAULT

Tunnel-Private-Group-Id !* ANY

Tunnel-Type !* ANY

Tunnel-Medium-Type !* ANY

modu perl
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)
sekcja authorize
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
Sekcja authenicate
  • Realizacja uwierzytelnienia

authenticate {

eap

Auth-Type pracownik {

ldapstaff

}

Auth-Type student {

ldapstud

}

Auth-Type MS-CHAP {

mschap

}

}

sekcja post auth
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
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 conf1
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
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
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
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
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
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
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 directory1
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 - współpracaz 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 directory1
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ę Windows

AD.UMK.PL {

kdc = 192.168.3.33

default_domain = AD.UMK.PL

}

freeradius wsp praca z active directory2
FreeRADIUS - współpracaz 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

      • w sekcji

[homes]

browsable = no

writable = yes

    • restart samby
freeradius wsp praca z active directory3
FreeRADIUS - współpracaz 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 directory4
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
freeradius modyfikacje r de
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
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 ias1
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) orazatrybut

CSP (Cryptographic Service Provider).

internet authentication server ias2
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
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
ad