VYSOKÁ ŠKOLA BÁŇSKÁ - TECHNICKÁ UNIVERZITA OSTRAVA







Technologie počítačových sítí

RADIUS







Autor : Tomáš Huňka (hun012)

Datum : 10.01.2005


možnost stáhnutí celého projektu


OBSAH:
Použité pojmy
1. Úvod
1.1 WEP
1.2 IEEE 802.1x a EAP
1.3 TLS
2. RADIUS
2.1 Protokol RADIUS
2.2 Funkce RADIUS protokolu
2.3 Formát RADIUS paketu
3. Protokol RADIUS Accounting
4. FreeRADIUS/openSSL/WinXP nastavení
4.1 Instalace OpenSSL a FreeRADIUS serveru
4.2 Certifikáty a jejich výroba
4.3 Konfigurace RADIUS serveru pro TLS
4.4 Vytvoření spouštěče pro RADIUS server
4.5 Nastavení AP
4.6 Test TLS
5. Literatura


Použité pojmy

uživatel - počítač koncového uživatele (suplikant)
klient - RADIUS klient neboli přístupový směrovač (NAS), fyzicky AP nebo switch
server - RADIUS server
session - každá služba poskytovaná přístupovým serverem uživateli zřídí session, se začátkem session definovaným jako časový okamžik, kdy je služba poprvé poskytována a konec session je definován jako časový okamžik, kdy služba končí.
tiché zahození - zahození paketu bez dalšího zpracování


1. Úvod

Kolik správců sítí dovolilo úplnému cizinci vstoupit do svých síťových rozvodů a zapojit notebook do firemní sítě? A přesně to se nyní děje firmám ve vyspělých státech celého světa. Vetřelci se připojují k sítím bezdrátovými kartami IEEE 802.11b, což je v podstatě totéž, jako se připojit k pevné kabeláži.


1.1 WEP

Standard 802.11b zahrnuje opatření pro šifrování nazvané WEP (Wired Equivalent Privacy - ochrana soukromí odpovídající pevnému spojení). Podle výrobce a modelu jsou v nabídce dvě úrovně WEP šifrování. Jedna, využívající 40bitový šifrovací klíč a 24 bitový inicializační vektor (IV), se nazývá 64 bitové šifrování a obecně se považuje za nedostatečné. Druhé, je 128 bitové šifrování, užívá 104 bitový klíč plus 24 bitový inicializační vektor IV. Pro šifrování a dešifrování se používá totožný algoritmus i totožný statický klíč.
Poznámka: Bezpečnost sítě s WEP je možno narušit jak mechanicky (krádeží jednoho z koncových zařízení s příslušnou WiFi kartou a konfigurací OS), tak odposlechem. Jen na základě odposlechu lze klíče totiž snadno zlomit s pomocí přenosného počítače, karty pro 802.11 a veřejně dostupného softwaru (např. AirSnort, WEPcrack).


1.2 IEEE 802.1x a EAP

802.1x (Port-Based Network Access Control) je obecný bezpečnostní rámec pro všechny typy LAN, zahrnující autentizaci uživatelů, integritu zpráv (šifrování) a distribuci klíčů. Ověřování se u WLAN realizuje na úrovni virtuálních portů přístupového bodu WLAN. 802.1x má za cíl blokovat přístup k segmentu lokální sítě pro neoprávněné uživatele.

802.1x je založený na protokolu Extensible Authentication Protocol (EAPOL, RFC 2284 - EAP over LANs) byl původně vyvinut pro PPP LCP (Point-to-Point Protocol Link Control Protocol). Jedná se o mechanizmus přenosu EAP paketů prostřednictvím spojové vrstvy LAN (typu 802): zprávy EAP se zapouzdřují do rámců 802.1x. Většina podnikových sítí požaduje pro bezpečný přístup zajistit více než jednoduché jméno a heslo. Tyto podmínky splňuje ověřovací protokol nazývaný EAP.

EAP umožňuje snadnou práci s hesly, tokeny i PKI certifikáty. Nezajišťuje ověřování jako takové, ale transportní mechanismus pro ověřovací systémy.

Přednosti 802.1x:
802.1x používá k šifrování dat pro každou autentizovanou stanici dynamické šífrování klíče. Tyto klíče jsou známy pouze dané stanici, mají omezenou životnost a využívají se k šifrování rámců na danou stanici, dokud se stanice neodhlásí nebo neodpojí.



Obecný postup autentizace podle 802.1x: Poznámka: 802.1x není dostatečně odolný vůči minimálně dvěma způsobům útoku (hijacking a man-in-the-middle), které díky jednostranné autentizaci umožní útočníkovi snadno podvrhnout přístupový bod.


1.3 TLS

TLS zajišťuje komunikacím v prostředí Internetu soukromí a umožňuje aplikacím uživatel/server předejít odposlechu, falšování nebo padělání zpráv. Protokol TLS je založen na specifikaci protokolu SSL 3.0 publikované firmou Netscape.

EAP-TLS (Transport Level Security) - je nová modifikace protokolu EAP. Mechanismus ověřování je založen na použití certifikátů, umožňuje vzájemné ověření klienta a sítě. Klíče jsou generovány dynamicky. Tato verze byla zvolena jako základní pro implementaci ve Windows (2000 a XP). EAP-TLS je popsán v RFC2716.

TLS tunel je při navazování spojení vytvořen RADIUS klientem mezi uživatelem a RADIUS serverem. Mezi uživatelem a RADIUS klientem je prováděno WEP šifrování. Tato ověřovací metoda (TLS) vytváří "sdílené tajemství" jako vedlejší efekt ověřování.



A jak to celé funguje ?

Uživatel se připojí k RADIUS klientu (virtuálnímu portu AP). Tento port je ve stavu "zavřeno" a je povolen pouze autentizační protokol EAP. Speciální program (suplikant), běžící na straně uživatele, zahájí ověření přes EAP protokol. Suplikant vyšle na RADIUS klienta (přístupový server s podporou 802.1x a RADIUS) žádost o autentizaci. RADIUS klient zprostředkuje ověření uživatele vůči RADIUS serveru (pomocí protokolu EAP-TLS RADIUS server autentikuje uživatele a dynamicky generuje WEP klíče). Pokud toto ověření suplikantu proběhne vpořádku, vytváří RADIUS klient TLS tunel mezi uživatelem a autorizačním RADIUS serverem pro povolení připojení uživatele do sítě. O výsledku (přístup povolen/zamítnut) informuje RADIUS server zprávou ACCESS(Reject/Accept) RADIUS klienta a ten v závislosti na odpovědi zakáže/povolí provoz na daném portu.


2. RADIUS (Remote Authentication Dial In User Service)

RADIUS protokol je protokol sloužící pro přenos autentizačních, autorizačních, konfiguračních a evidenčních informací mezi přístupovým serverem (RADIUS klient) a společným autentizačním serverem (RADIUS server). Umožňuje centrální správu uživatelských účtů. Úplná specifikace tohoto protokolu je popsána v dokumentech RFC 2138 a RFC 2139.

Různé implementace: 2.1 Protokol RADIUS

Jedná se o protokol klient/server. RADIUS server autentizuje a autorizuje vzdálené uživatele pro přístup do systému. RADIUS server také rozhoduje o zpřístupňení služby (například připojení do sítě). RADIUS klient je zodpovědný za odesílání uživatelských informací určenému RADIUS serveru a zpracování odpovědí, které RADIUS server vrátí. Oficiálně přidělené číslo portu pro RADIUS je 1812.
Mezi nejdůležitější rysy patří jeho vysoká síťová bezpečnost. Transakce mezi klientem a RADIUS serverem je autentizována pomocí sdíleného tajemství, které není nikdy posíláno přes síť. Navíc všechna uživatelská jména jsou přes sít zasílána šifrované (šifrování se sdíleným heslem symetrickým algoritmem), a tím je eliminována možnost vysledování nechráněného hesla na síti.

Jako tlumočník mezi uživatelem "toužícím" po přístupu do sítě a RADIUS serverem slouží RADIUS klient (přístupový server, fyzicky Access Point nebo switch). RADIUS server zpracovává požadavek ve 2 krocích - ověření a autorizace. Ověřením zkontroluje identitu uživatele, tedy porovná údaje ve své databázi se zaslanými údaji. Po úspěšném ověření dojde k autorizaci, která rozhoduje, jaké služby budou uživateli zpřístupněny. RADIUS server může také působit jako prostředník (proxy klient) pro jiné RADIUS servery nebo i ostatní typy autentizačních serverů.


2.2 Funkce RADIUS protokolu

Pokud je klient nakonfigurován k použití RADIUS protokolu, každý z uživatelů musí klientovi předat své autentizační údaje. To může být například provedeno pomocí příkazové řádky na přístupovém serveru (očekáváno od uživatele přihlašovací jméno a heslo) nebo například přes 802.1x.

Klient informace od uživatele obdrží jednou a provede autentizaci pomoci RADIUS protokolu. To udělá tak, že klient vytvoří Access-Request (požadavek o přístup) , obsahující atributy uživatelské jméno, uživatelské heslo a ID portu, přes který je uživatel připojen. Pokud uživatel nějaké heslo zadal, je toto heslo ukryto metodou založenou na RSA Message Digest algoritmu MD5.

Požadavek Access-Request je odeslán RADIUS serveru přes síť. Jestliže se nevrátí od RADIUS serveru žádná odezva v určeném čase, požadavek je opakovaně odeslán znovu. Klient může také přeposlat požadavek alternativnímu serveru nebo serverům v případě, že primární server je vypnut nebo nedostupný. Alternativní server může být použit po určitém počtu pokusů, kdy primární server selhal.

RADIUS server příjme požadavek a ověří odesílajícího klienta. Požadavek od klienta, pro kterého RADIUS server nemá sdílené tajemství, by měl být tiše zahozen. Jestliže je totožnost klienta správná, RADIUS server se podívá do databáze uživatelů a vyhledá jméno uživatele, jež je obsaženo v požadavku. Uživatelský záznam v databázi (soubor users RADIUS serveru) obsahuje seznam parametrů (například uživatelova IP-adresa nebo IP-adresa RADIUS klienta, přes který se uživatel snaží přistupovat) a které musí souhlasit s údaji pro umožnění přístupu uživateli. Pro umožnění přístupu uživateli se ověřuje heslo, které může také specifikovat RADIUS klienta nebo port přístupového serveru, přes který je uživateli umožněn přístup.

Jestliže některá z podmínek není splněna, RADIUS server odešle Access-Reject (zamítnutí přístupu), odezvu indikující, že tento uživatelský požadavek je neplatný. Pokud je toto požadováno, server může vložit textovou zprávu do odpovědi Access-Reject, která smí být zobrazena pomocí klienta uživateli. Žádné další atributy nejsou v odpovědi Access-Reject povoleny.

Celý průběh komunikace mezi uživatelem, klientem a serverem je znázorněn na obrázcích. Obrázek 1 je případ, kdy nejsou splněny všechny podmínky nutné pro autentizaci a tudíž dochází k zamítnutí požadavku. Accept-reject

Jestliže jsou všechny podmínky splněny, seznam konfiguračních hodnot pro uživatele je umístěn do Access-Accept odpovědi. Tyto hodnoty obsahují typ služby například: IP adresu, masku sítě, login uživatele a všechny hodnoty, které je potřeba předat požadované službě.

Obrázek 2 je případ, kdy byly splněny všechny nutné podmínky pro autentizaci a uživateli byl povolen přístup k poskytované službě.
Accept-access


2.3 Formát RADIUS paketu

Jak RADIUS paket vypadá? RADIUS paket je zabalen do datové části UDP segmentu, kde cílový port je nastaven na hodnotu 1812. Při generování odpovědi požadavku dojde k přehození cílového a zdrojového portu. Struktura RADIUS paketu je zobrazena na obrázku 3.

Radius paket

Kód (8 bitů) identifikuje typ RADIUS paketu. Pokud je paket přijat s neplatnou hodnotou v poli Kód, pak je tento paket tiše zahozen. Pole Kód může obsahovat následující hodnoty:
  1. Access-Request - paket je odeslán RADIUS serveru a zprostředkovává informace použité pro rozhodování, zda-li má být uživateli umožněn přístup přes daný přístupový server (RADIUS klienta). Klient musí RADIUS paket odeslat s hodnotou 1 v poli Kód. Paket Access-Request musí obsahovat atributy User-Name, User-Password. Dále pak může obsahovat atributy NAS-IP Address,NAS-Identifier,NAS-Port,NAS-Port-Type.
  2. Access-Accept - paket je odesílán RADIUS serverem a poskytuje specifické konfigurační informace potřebné pro službu, která je poskytována uživateli.
  3. Access-Reject - při odmítnutí požadavku RADIUS server odesílá Access-Reject. Tento paket může obsahovat zprávou, která je zobrazena uživateli o zamítnutí přístupu.
  4. Accounting-Request
  5. Accounting-Response
  6. Access-Challenge
Identifikátor (8 bitů) pomáhá při správném párování odpovídajících požadavků a odpovědí.

Délka (16 bitů) určuje velikost RADIUS paketu obsahující pole kód, identifikátor, délku, authenticator a atributy. Jestliže je paket menší, než je určeno v poli délka, může to znamenat chybu a paket může být tiše zahozen. Minimální délka je 20B, maximální délka je 4096B.

Authenticator (128 bitů - ve specifikaci 4 řady po 32bitech) jeho hodnota je použita při autentizaci odpovědi z RADIUS serveru a dále je použita při šifrování posílaného hesla. RADIUS atributy nesou specifické autentizační, autorizační, informační a konfigurační detaily pro požadavky a odpovědi. Konec seznamu atributů je určen délkou RADIUS paketu. Na následujícím obrázku je vidět struktura atributu.

struktura atributu

Typ (8 bitů) přípustné hodnoty, které toto pole může obsahovat jsou vypsány níže společně s názvem daného atributu. RADIUS server i klient ignoruje atributy, které obsahují neznámý typ. Typ je dán atributem.

Délka (8 bitů) označuje velikost atributu zahrnující políčka typ, délka a hodnota.

Hodnota má proměnnou velikost a obsahuje informace, které jsou specifické pro tento atribut. Políčko hodnota musí obsahovat jeden z následujících typů:
Tabulka 1: Atributy RADIUS protokolu
  1. User-Name
  2. User-Password
  3. CHAP-Password
  4. NAS-IP-Address
  5. NAS-Port
  6. Service-Type
  7. Framed-Protocol
  8. Framed-IP-Address
  9. Framed-IP-Netmask
  10. Framed-Routing
  11. Filter-Id
  12. Framed-MTU
  13. Framed-Compression
  14. Login-IP-Host
  15. Login-Service
  16. Login-TCP-Port
  17. (unassigned)
  18. Reply-Message
  19. Callback-Number
  20. Callback-Id
  21. (unassigned)
  22. Framed-Route
  23. Framed-IPX-Network
  24. State
  25. Class
  26. Vendor-Specific
  27. Session-Timeout
  28. Idle-Timeout
  29. Termination-Action
  30. Called-Station-Id
  31. Calling-Station-Id
  32. NAS-Identifier
  33. Proxy-State
  34. Login-LAT-Service
  35. Login-LAT-Node
  36. Login-LAT-Group
  37. Framed-AppleTalk-Link
  38. Framed-AppleTalk-Netw.
  39. Framed-AppleTalk-Zone
40-59 rozšíření o nové typy atributu pro RADIUS Acounting
  1. Acct-Status-Type
  2. Acct-Delay-Time
  3. Acct-Input-Octets
  4. Acct-Output-Octets
  5. Acct-Session-Id
  6. Acct-Authentic
  7. Acct-Session-Time
  8. Acct-Input-Packets
  9. Acct-Output-Packets
  10. Acct-Terminate-Cause
  11. Acct-Multi-Session-Id
51-59 Acct-Link-Count
  1. CHAP-Challenge
  2. NAS-Port-Type
  3. Port-Limit
  4. Login-LAT-Port



3. Protokol RADIUS Accounting

Tento protokol je rozšířením standardního RADIUS protokolu. Jeho rozšíření spočívá v možnosti zasílání účtovacích informací z přístupového serveru RADIUS accounting serveru. Tato technologie je především určena pro společnosti, které poskytují internet koncovým uživatelům, protože RADIUS accounting poskytuje informace a vyžití poskytovaných služeb. Z těchto informací se pak snadno dají například vystavit faktury jednotlivým uživatelům.

Průběh:
K používání RADIUS Accounting protokolu musí být nakonfigurován Klient. Na začátku poskytování služby koncovému uživateli vygeneruje klient Accounting Start paket, popisující typ poskytované služby a uživatele, kterému je služba poskytovaná. Tento paket odešle RADIUS Accounting serveru, který jako odpověď pošle potvrzení o přijetí paketu.

Při ukončení poskytovaní dané služby klient vygeneruje Accounting Stop paket, popisující typ poskytované služby a volitelný typ statistik, jako doba trvání služby, přijaté a odeslané pakety nebo přijaté a odeslané bajty. Tento paket je odeslán RADIUS Accounting serveru, ten po přijetí paketu odešle zpět potvrzení o přijetí.

Formát RADIUS Accounting paketu je navíc rozšířen o dvě přípustné hodnoty v poli Kód a to:

4. FreeRADIUS/openSSL/WinXP nastavení

V této části budu popisovat jak vytvořit: FreeRADIUS server pro TLS a EAP autentizaci, OPENSSL fungující s RADIUS serverem pro EAP-TLS, jak nakonfigurovat Windows XP klienta. Server bude konfigurován pro domácí nebo testovací síť.

www.missl.cs.umd.edu/wireless/eaptls - postup nastavení autentikace spolupracující s OpenSSL využívaný modulem EAP-TLS pro FreeRADIUS. FreeRADIUS vyžaduje "stabilní - STABLE" (poslední oficiální) verzi SSL. EAP-TLS modul vyžaduje poslední tzv. "snapshot" verzi. Téměř všechny kroky jsou prováděny pod Linuxem (verze jádra podporující práci s dynamickým WEP/WPA). V návodu je používán uživatel s jménem user, který má domovský adresář /home/user/.


4.1 Instalace OpenSSL a FreeRADIUS serveru

Následující část se bude týkat OpenSSL

  1. Stáhněte si poslední verzi OpenSSL-0.9.7-stable snapshot z adresy openSSL stable snapshot nebo přímo z toho odkazu openssl-0.9.7-stable-SNAP-20050113.tar.gz do svého domovského adresáře a pokračujte následujícími kroky.


  2. Pod linuxem vytvoříme adresářovou strukturu /usr/src/802/openssl nebo pomocí příkazu:
    mkdir -p /usr/src/802/openssl


  3. Pomocí následujících příkazů dekomprimujeme soubor openssl-0.9.7-stable-SNAP-20050113.tar.gz
    do adresáře /usr/src/802/openssl a to pomocí příkazů:

    zkopírování souboru do ciloveho adresáře..
    cp /home/user/openssl-0.9.7-stable-SNAP-20050113.tar.gz \
    openssl-0.9.7-stable-SNAP-20050113.tar.gz

    dekomprimace souboru a následný přesun do adresáře.. gunzip openssl-0.9.7-stable-SNAP-20050113.tar.gz
    tar xvf openssl-0.9.7-stable-SNAP-20050113.tar
    cd openssl-0.9.7-stable-SNAP-20050113


  4. Provedeme konfiguraci OpenSSL (kam bude nastaven vystup openSSL):
    ./config shared --prefix=/usr/local/openssl


  5. Přeložení openSSL:
    make


  6. Nainstalování openSSL:
    make install


Po provedení konfigurace, přeložení a nainstalování OpenSSLu se vytvoří adresář openssl umístěn v adresáři /usr/local/.

Následující část se bude týkat FreeRADIUS serveru

  1. Stáhněte si poslední verzi FreeRADIUS snapshot z adresy freeRADIUS snapshot
    nebo přímo z tohoto odkazu: freeradius-snapshot-20050113.tar.gz do svého domovského adresáře.


  2. Pod linuxem vytvoříme adresářovou strukturu /usr/src/802/openssl nebo pomocí příkazu:
    mkdir -p /usr/src/802/radius


  3. Pomocí následujících příkazů dekomprimujeme soubor freeradius-snapshot-20050113.tar.gz
    do adresáře /usr/src/802/radius a to pomocí příkazů:
    kopirovani souboru do adresáře..
    cp /home/user/freeradius-snapshot-20050113.tar.gz \
    freeradius-snapshot-20050113.tar.gz

    dekomprimace souboru a následný přesun do adresáře..
    gunzip freeradius-snapshot-20050113.tar.gz
    tar xvf freeradius-snapshot-20050113.tar
    cd freeradius-snapshot-20050113


  4. Provedeme konfiguraci RADIUS serveru s integrováním openSSL, knihoven potřebných pro openSSL,a nastavení výstupu freeRADIUS serveru:
    ./configure --with-openssl-includes=/usr/local/openssl/include \
    --with-openssl-libraries=/usr/local/openssl/lib \
    --prefix=/usr/local/radius


  5. Přeložení:
    make


  6. Nainstalování freeRADIUS serveru:
    make install


Po provedení konfigurace, přeložení a nainstalování FreeRADIUS serveru se vytvoří adresář radius umístěn v adresáři /usr/local/ v kterém budeme další části upravovat konfigurační soubory. Vytvořte log soubor (pro uložení chybových výpisů) v adresáři /usr/src/802/openssl/openssl-0.9.7-stable-SNAP-20050113/

make > mymake.log 2>&1


4.2 Certifikáty a jejich výroba

Certifikáty serveru a klienta jsou potřeba pro EAP-TLS. Certifikáty můžete získat od "místní" certifikační autority (CA). Pokud nemáte k dispozici žádnou CA, můžete použít OpenSSL pro generování "sebou-podepsaných" certifikátů. OpenSSL spolupracuje s FreeRADIUS zdrojovými kódy a obsahuje také pomocné skripty pro generování "sebou-podepsaných" certifikátů. CA.all je skript, který generuje certifikáty založené na předdefinovaných informacích.

Skript CA.all si své nastavení načítá ze souboru openssl.cnf adresáře /usr/local/openssl/ssl/.
CA.all je umístěn v adresáři
/usr/src/802/radius/freeradius-snapshot-20050113/scripts.

Nyní si nakonfigurujeme část souboru openssl.cnf
zde si můžete tento soubor stáhnout: openssl.cnf
...
# req_extensions = v3_req # The extensions to add to a certificate request

[ req_distinguished_name ]
countryName			= Country Name (2 letter code)
# název země (2 znaky)

countryName_default		= CZ
# standartně nastaveno na "CZ"

countryName_min			= 2
countryName_max			= 2

stateOrProvinceName		= State or Province Name (full name)
stateOrProvinceName_default	= CzechRepublic
# okres nebo provincie

localityName			= Locality Name (eg, city)
localityName_default		= Ostrava
# jméno města (standartně nastaven na "Ostrava")

0.organizationName		= Organization Name (eg, company)
0.organizationName_default	= Test
# jméno organizace nebo firmy (standartně na "Test")

organizationalUnitName		= Organizational Unit Name (eg, section)
#organizationalUnitName_default	= Engeneering

commonName			= Common Name (eg, user name)
# jména pro: (1.root, 2.RADIUS client(AP), 3.RADIUS sever)
# (Lukas, John, kob416b.vsb.cz)

commonName_max			= 64
# maximální délka jména

commonName_default 		= Lukas
# jméno našeho AP

emailAddress			= Email Address
emailAddress_max		= 40
# emailová adresa

# SET-ex3			= SET extension number 3

[ req_attributes ]
challengePassword		= A challenge password
challengePassword_min		= 4
challengePassword_max		= 20
challengePassword_default	= whatever

unstructuredName = An optional company name
...
Dříve než spustíme generování pomocí CA.all, provedeme drobné úpravy. CA.all je skript, sloužící ke generování privátního klíče a z něj generování CA - certifikační autority, která je následně použita k vytvoření certifikátů pro uživatele a server.

Pokud používáte standardní heslo "whatever", můžete jej případně změnit. Toto heslo zadáváte při instalování certifikátů na uživatelský PC. Dále potřebujeme ověřit správnost cesty scripts k openssl. Změna není nutná, pokud není potřeba. Dále je zde potřeba změnit jeden řádek, jinak nastane chyba. Spočívá ve změně řádku 33 souboru CA.all .

Řádek: echo "newreq.pem" | /usr/local/ssl/misc/CA.pl -newca
zaměníme za řádek: echo "newreq.pem" | /usr/local/openssl/ssl/misc/CA.pl -newca


Poté ve stejném adresáři jako CA.all jej spustíme příkazem: ./CA.all

Skript se nás zeptá na tyto informace třikrát.
  1. Poprvé produkujeme certifikáty s označením root (pro RADIUS klienta), nic nemusíme zadávat, protože jsou nastaveny defaultní hodnoty. Výstupem jsou soubory: root.pem, root.p12,root.der.

  2. Při druhém průběhu produkujeme certifikáty pro uživatele. Zde už musíme změnit commonName na uživatelské jméno (v mém případě to bylo John). Výstupem budou soubory se jmény: certl-clt.pem,cert-clt.p12,cert-clt.der.
  3. Nenechte se zmást pojmenováním cert-clt. V tomto generování je cert-clt míněn certifikát pro uživatele.

  4. Při třetím průběhu produkujeme certifikát pro server. Zde musíme změnit commonName na jméno serveru(v mém případě to bylo kolb416d.vsb.cz). Výstupem budou soubory se jmény: cert-srv.pem,cert-srv.p12,cert-srv.der.


Pro TLS a EAP, ve Windows XP jsou potřeba následující certifikáty: root.der, cert-clt.p12.
Soubor "root.der" je instalován uživatelem, pro ověření autentikačního serveru.
Instalace je velmi jednoduchá: Například si jej zkopírujete na disketu a na cílovém počítači jej spustíte. Automaticky jste pak tázáni, zda chcete certifikát uložit. Vše stačí jen potvrdit a zadat správné heslo(v našem případě "secret").

Pro TLS a EAP, RADIUS server potřebuje následující certifikáty: root.pem, cert-srv.pem.
Soubory "root.p12" a "cakey.pem" obsahují privátní klíče pro podepsání jiných certifikátů a měly by být drženy v bezpečí.

Možnost dodatečné ochrany certifikátů heslem nebo uložením certifikátů na smart kartě (mikroprocesorové čipové karty, viz. obrázek).

smart karta

4.3 Konfigurace RADIUS serveru pro TLS

Změníme zde soubory: clients.conf, users, radiusd.conf, eap.conf
Jejich umístění: /usr/local/radius/etc/raddb

Soubor: clients.conf
Popis: v tomto souboru jsou popsány pokyny ke konfigurace klienta (AP), a přidáme následující řádky:

client 10.0.0.1/24{
         secret = secret
         shortname = Lukas
         nastype = other
}
# adresa našeho AP(NAS) zařízení
# secret - pro úspěšné navázání spojení se serverem
# shortname - název našeho AP zařízení (NAS)
# nastype - pokud je vybrána možnost "other" - jedná se o zařízení jiného
než preddefinovaneho typu.

Soubor: users
Popis: v tomto souboru jsou popsány profily uživatelů. Pokud chceme jen zadat jméno, můžeme to udělat dle následujícího příkladu.

John

# jméno usera, který se bude snažit připojit do síťe

jinak: případ, kdy doplníme přesnější informace, není povinné!

John    Auth-Type := local, User-Password== "heslo"
           Client-IP-Address = 10.0.0.1
           Framed-IP-Address = 158.196.220.249

# User-Password - uživatelovo heslo
# Framed-IP-Address je zřejmě skutečné IP usera
# Client-IP-Address je IP našeho AP(RADIUS klienta) přes který se user snaží připojit

Soubor: radiusd.conf
Popis: v tomto souboru je popsána základní konfigurace RADIUS serveru. Kde nastavujeme ip adresu, kde "naslouchá" a odesílá odpovědi server (ip adresa stanice kde je RADIUS server).
bind_address = 10.0.0.5

Soubor: eap.conf
Popis: v tomto souboru je popsána základní konfigurace RADIUS serveru.
V tomto souboru zaměníme default_eap_type z md5 na tls.
eap {   default_eap_type = tls
Dále v souboru eap.conf povolíme následující volby, další nastavení neměníme, pouze změníme heslo pro privátní klíč:

tls {
            private_key_password = secret
            private_key_file = ${raddbdir}/certs/cert-srv.pem
certificate_file = ${raddbdir}/certs/cert-srv.pem
CA_file = ${raddbdir}/certs/demoCA/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random

fragment_size = 1024
include_length = yes
check_crl = yes
check_cert_cn = %{User-Name}
}
A nyní nakopírujeme příslušně certifikáty dle nastavených cest výše popsaných. Tzn. že certifikáty pro RADIUS server nakopírujeme do adresáře /usr/local/radius/etc/raddb/cert.

Dále v téže adresáři vytvoříme indexové soubory s datumy. Soubory dh a random vytvoříme pomocí příkazů:
date > dh
date > random

To je vše ze změn v konfiguračních souborech.


4.4 Vytvoření spouštěče pro Radius

Vytvořím si skript pro spuštění RADIUS serveru s nastavením. Do tohoto souboru vložte následující text.

----------------------------------------------------------------------
#!/bin/sh -x

LD_LIBRARY_PATH=/usr/local/openssl/lib
LD_PRELOAD=/usr/local/openssl/lib/libcrypto.so

export LD_LIBRARY_PATH LD_PRELOAD

/usr/local/radius/sbin/radiusd $@
----------------------------------------------------------------------
Tento skript uložíme do adresáře /usr/local/radius/sbin jako run-radius a nastavíme jej spustitelným pomocí příkazu:
chmod u=rwx run-radius

Server je nyní kompletní.


4.5 Nastavení AP

AP konfigurace musí být změněna dle následujících hodnot. Uvedl jsem dvě vzorové konfigurace RADIUS serveru. V záložce 802.1x vyplníme následující informace. Nastavení níže uvedené platí pro AP ZyXEL B-1000v2, které jsem v mém projektu nepoužíval, ale pro doplnění jsem ho zde uvedl.
Wireless Port Control = Authentication Required
ReAuthentication Timer = 1800 seconds
Idle Timeout = 3600 seconds
Authentication Database = RADIUS only
Dynamic WEP Key Exchange = 128-bit WEP

At the RADIUS tab for authentication:

Active = Yes
Server IP = 192.168.1.10
Port Number = 1812
Shared Secret = secret
#sdilene tajemnstvi mezi klientem a RADIUS serverem

Nastavení AP Avaya dle mého projektu

volba Status -informace o nastavení AP
status

Nutnost rebootu (restartování) po každé změně pro jednotlivé záložky, jinak jsou vztahy námi utvořené neprovedeny. Potřeba tuto zásadu dodržovat!!! V záložce Commands/Reboot potvrdit tlačítkem Reboot.
reboot

Nejdříve, než nastavíme samotný RADIUS, musíme aktivovat podporu VLAN. Nastavení této podpory pro VLAN v záložce Configure/VLAN/Security Profile, kde povolíme 802.1x.
zabezpeceni

Pokud vybereme volbu edit položky 802.1x z předchozího obrázku, objeví se nám detailnější nastavení pro 802.1x. Zde nastavíme délku šifrovacího klíče 128bits pro WEP. Klíče jsou dodávány dynamicky.


Zde máme záložku Configure/VLAN/Wireless , kde nastavíme bezpečnostní mody.
bezpecnostni mody

Nyní můžeme začít přímo konfigurovat RADIUS. Vybereme záložku Configure/RADIUS Profiles/EAP Authentication a vybereme volbu edit pro úpravu toho profilu. Pro vytvoření nového profilu by jsme zadali Add.


Hlavní nastavení RADIUS serveru. Nastavujeme zde dobu platnosti při neaktivitě(Accounting inactivity timer), maximálně však 60 minut, minimálně 5 minut. IP address/Server name - nastavíme IP adresu RADIUS serveru. Hodnota portu je nastavená jako default. Shared secret - "sdílené tajemství", se používá pro autentizaci transakcí mezi klientem a RADIUS serverem (v našem případě "secret"). A nyní nastavíme server jako enable pro jeho funkčnost.


Nyní by mělo být AP nastaveno pro fungovaní RADIUS serveru.


4.6 Test TLS

Pro otestování serveru vypneme počítač s klientem (winXP) a spustíme RADIUS server, a to příkazem z adresáře /usr/local/radius/sbin/:
./run-radius -X -A

Na AP Avaya v záložce monitoring/RADIUS/EAP Authentication pro zobrazování stavu komunikace.

Stav po úspěšném spuštění RADIUS serveru, před autentizací uživatele
Poté by jste měli vidět proměnné hodnoty a příslušné hodnoty, které by se měly měnit dle předchozí kapitoly o průběhu komunikace. Pokud se tato komunikace podaří, uživatel se přihlásí. Jakmile se server autentikuje uživateli, můžete začít surfovat. Na monitoringu zařízení AP Avaya se budou zobrazovat měnící se údaje téměř všech hodnot (24), znamená to správné přihlášení uživatele do sítě.

V případě, že při monitorování (výpisu fungování) uvidíte nulové hodnoty, podívejte se, zda nedošlo k nějaké chybě v nastavení. Na obrázku je tento chybný případ zobrazen.




kuriozita: Program fake-ap poslouží tam, kde chcete warchalkerům(osoba jež se chce dostat do vaší bezdrátové sítě) poplést hlavu a simulovat tisíce falešných AP - tím znemožníte připojení, protože warchalker nebude vědět na co se vlastně připojit.

warchalker's


5. Literatura

Internetové zdroje:
http://www.missl.cs.umd.edu/wireless/eaptls/
http://www.atlantis.cz
http://www.pooh.cz/clanky/warchalking/warchalking.asp
http://www.lupa.cz/clanek.php3?show=2238
http://text.dslreports.com/forum/remark,9286052~mode=text~days=10
http://www.gnu.org/software/radius/manual/html_mono/radius.html
http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/
http://linux-universe.com/HOWTO/8021X-HOWTO/index.html
http://www.svetsiti.cz/view.asp?rubrika=Tutorialy&temaID=171&clanekID=177


Další zajímavé odkazy:
http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO
http://www.petricek.cz/prednasky/Wireless-security.pdf

Poděkování za spolupráci:
Ing. Petr Grygárek, Ph.D.

Ing. Ivan Doležal (CVS VŠB)
Při tvorbě těchto certifikátů se vyskytly jisté nejasnosti, které jsem při později konzultaci s Ing. Ivanem Doležalem odstranil. Dále jsem dostal důležité doporučení pro další práci na tomto projektu.