Traadita võrgu turvamine FreeRADIUS’ega
Teooria
Mis on RADIUS?
Radius on Remote Authentication Dial-In User Service, mida kaustatakse lõppkasutaja autoriseerimiseks ja autentimiseks. Täpsemalt lugemist saab http://www.ietf.org/rfc/rfc2865.txt . RADIUS võimaldab autoriseerida ja autentida kasutajaid, kes ühenduvad LAN võrku ning keelata ligipääs juhul, kui kasutaja ei läbi kontrolli. FreeRADIUS ( http://freeradius.org/ ) on RADIUSE vabavaraline realisatsioon.
FreeRADIUSE üldine tööpõhimõte :
1.Uus kasutaja ühendub AccessPoindiga (AP) ning küsib ligipääsu LAN'i. AP küsib lõppkasutajalt ta identiteeti. Ainuke lubatud ühendusprotokoll enne identifitseerimist on Extensible Authentication Protocol ( EAP).
2.Peale identifitseerimist algab autentikeerimine. Kasutatakse EAP protokolli. AP kapseldab EAP paketid RADIUS formaati ja saadab nad edasi RADIUS serverile. Autentikeerimisprotsessi ajal AP vahendab pakette lõppkasutaja ja RADIUS serveri vahel.
3.Peale õnnestunud autentikeerimist lastakse lõppkasutaja LAN kohtvõrgule ligi.
Mis on EAP?
Extensible Authentication Protocol on autentikeerimiseks optimiseeritud transpordiprotokoll. EAP toetab mitut erinevat autentikeerimimismeetodit. http://www.ietf.org/rfc/rfc3748.txt
Milliseid autentikeerimismehhanisme EAP toetab?
Täieliku nimekirja võib leida siit http://www.iana.org/assignments/eap-numbers/eap-numbers.xml
Antud laboris kasutame me EAP-TLS realisatsiooni. EAP-TLS tekitab TLS sessiooni AP ja RADIUS serveri vahele. Nii server kui kliendid vajavad kehtivat sertifikaati. Täpsema standardi kirjelduse võib leida aadressilt http://www.ietf.org/rfc/rfc2716.txt .
Mis on labori eesmärgiks?
Labori eesmärgiks on läbi viia praktiline FreeRadiuse konfigureerimine ning vajalike sertifikaatide seadistamine. Kasutatakse EAP-TLS autentikeerimismehhanismi. Labori võib jagada neljaks osaks :
- Kuidas paigaldada vajalikud tarkvarapaketid RADIUS serverile.
- Kuidas tekitada vajalikud sertifikaadid.
- Kuidas seadistada FreeRADIUS ja Wireless Access Poindid.
- Kuidas ühenduda sertifikaatide abil Wireless Access Poindidga
Mis on sertifikaadid?
Krüptograafias on sertifikaat elektrooniline dokument, mis kasutab digitaalallkirja, et siduda avalik võti kellegi identiteediga.
Täpsem inglise keelne seletus on leitav siit :
http://en.wikipedia.org/wiki/Public_key_certificate
FreeRADIUS serveri installatsioon
Paigaldamiseks Fedora Core all kirjutage pakettide nimekirja uuendamiseks käsureale :
$ yum upgrade
Peale antud operatsiooni sooritamist paigaldage FreeRADIUSE server. Seda saab teha järgneva käsu vahendusel :
$ yum install freeradius
Antud käsk tekitab kataloogi nimega /etc/raddb kuhu paigutab FreeRADIUS'ega seotud failid, kaasa arvatud FreeRADIUS'e konfiguratsiooni.
Sertifikaatide tekitamine
Et sertifikaate teha peame esmalt installeerima open-ssl'i perli skriptid käsuga :
$ yum install openssl-perl
Teeme kataloogi /home/serdid käsuga:
$ mkdir -p /home/serdid
siis lähme sinna kataloogi käsuga:
$ cd /home/serdid
Sertifikaadid teeme lihtsuse mõttes modifitseeritud scriptiga mille tegemise juhised on antud dokumendi viimases peatükis nimega „Sertifikaat“.
Keda huvitab sertifikaatidega seotud teooria võib leida inglise keelse kirjelduse aadressilt http://en.wikipedia.org/wiki/Public_key_certificate
Vastavalt sektsioonis „Sertifikaat“ olevatele juhenditele tehke fail nimega cert.sh ja kopeerige see kataloogi /home/serdid Siia paneks lingi hoopis?
$ cp cert.sh /home/serdid
Sertifikaadi failide kirjeldus :
- cacert.pem, the root CA sertifikaat
- cakey.pem, the root CA private key fail, pass phrase on “whatever”
- cacert.der, the root CA sertifikaat binaaris Windowsi jaoks
- client_cert.pem, kliendi sertifikaat
- client_key.pem, kliendi privataatvõti, salasõna (pass phrase) Teie valikul
- server_cert.pem, serveri sertifikaat
- server_key.pem, serveri privaatvõti salasõna (pass phrase) on “whatever”
- client_cert.p12 PKCS#12 versioon kliendi sertifikaadist
Algatuseks teeme selfsigned CA sertifikaadi. Selleks käivitame antud scripti järgmise võtmega :
$ ./cert.sh ca
Common name võib panna näiteks Cacert. Antud käsk tekitab meile cakey.pem, cacert.pem ja cacert.der failid.
Järgnevaks tekitame serveri sertifikaadi, selleks sisestame käsu :
$ ./cert.sh server cakey.pem cacert.pem
Common name võib näiteks servercert panna, kuigi soovitav on sinna enda versioon sisetada ning see ka meelde jätta. Ülejäänud küsimuste peale on soovitatav ise mitte midagi sisestada, eriti Challenge passwordi korral. Antud tegevuse tagajärjel saame failid server_key.pem ja server_cert.pem
Siis teeme kliendi sertifikaadi käsuga :
$ ./cert.sh client cakey.pem cacert.pem
Common name'iks pange sert_laptop (selle sertifikaadi common name on teie hilisem username FreeRADIUS'e serveris, nii et kui sinna midagi muud panete, siis tasub see meelde jätta ja vastavalt ka users faili kirja panna) . Export password jätke meelde, kuna teil läheb seda tulevikus vaja. Challenge password on esialgu soovitatav tühjaks jätta. Kindlasti peab antud sertifikaadile alla kirjutama (Sign the certificate? [y/n]:y) .
Teeme 1024-bitise Diffie-Hellman parameetri järgmise käsuga :
$ openssl dhparam -out dh 1024
ja random faili järgneva käsuga
$ dd if=/dev/urandom of=random count=2
Artikkel mille alusel antud juhend koostati : http://www.freesoftwaremagazine.com/community_posts/generating_self_signed_test_certificates_using_one_single_shell_script
FreeRADIUS'e konfigureerimine
Kuna Fedora Core 12 algses tulemüüris (iptables) on kõik pordid peale ssh oma suletud, tuleb esmalt port 1812 avada. Lihtsaimaks võimaluseks on kaotada kõik keelavad reeglid tulemüürist. Seda saab teha käsuga:
$ iptables -F
NB: Tasub aga meeles pidada et peale igat restarti taastatakse algsätted!
FreeRadiuse konfiguratsiooni failid mida modifitseerime on :
- clients.conf – siin on FreeRADIUSe serverit kasutavate klientide informatsioon .
FreeRadiuse juures tasub meeles pidada, et on olemas keskne server millel on kliendid. Klientideks on Access Poindid (AP), mitte arvutid mis ühenduvad AP külge!
- eap.conf – siin on FreeRADIUSe EAP autoriseerimise konfiguratsioon
- users -siin on kasutajanimed ja autoriseerimismeetodite alane informatsioon
FreeRADIUS'e konfiguratsiooni failid asuvad kataloogis /etc/raddb
clients.conf
Avage tekstiredaktoriga fail clients.conf ja lisage sinna enda WIFI ruuteri aaddress. Oletame, et meie wifi-ruuteri aadress on 192.168.1.14 . Selleks et lisada antud aaddress lubatud klientide nimekirja tuleb faili clients.conf lisada järgnev kirje :
client 192.168.1.14 { secret = password shortname = talvekool1 nastype = other }
secret on nn shared-secret ruuteri ja FreeRADIUS serveri vahel. Sama secreti peate panema hiljem ka enda wifi ruuteri konfiguratsiooni. Shortname on lihtsalt nimi, millega antud seadet radiuse logides hakatakse mainima.
users.conf
Järgnevaks lisame faili users järgnevad read :
sert_laptop Auth-type := EAP DEFAULT Auth-type := Reject Reply-Message := "Kõtt!"
Nii saavutame selle, et kasutajanime sert_laptop (meie klient sertifikaadi common name) puhul kasutatakse autoriseerimisel EAP protokolli. DEFAULT kirjega aga keelame kõik teised ühendused.
eap.conf
Avame faili eap.conf tekstiredaktoriga ning muudame rea default_eap_type = järgnevaks :
default_eap_type = tls
Järgnevaks lähme sektsiooni tls{ } juurde kuhu teeme järgnevad muudatused:
tls { private_key_password = whatever private_key_file = /home/serdid/server_key.pem # If Private key & Certificate are located in # the same file, then private_key_file & # certificate_file must contain the same file # name. certificate_file = /home/serdid/server_cert.pem # Trusted Root CA list CA_file = /home/serdid/cacert.pem # # For DH cipher suites to work, you have to # run OpenSSL to create the DH file first: # # openssl dhparam -out certs/dh 1024 # dh_file = /home/serdid/dh random_file = /home/serdid/random
serveri käivitamine
Peale seda jääb meil veel üle FreeRADIUS server käivitada, seda saame me teha käsuga „freeradius“, kuid soovitatav oleks käivitada server debug reziimis, seda saab teha käsurealt järgneva käsuga :
$ radiusd -X
Ruuteri konfigureerimine
Tomato Version 1.27 Basic ->Network-> lehekülje lõpp. Sealt valida Security „none“ asemel „WPA2 Enterprise“ ning sisestada „Shared Key“ (shared key on clients.conf failis , antud näites oleks selleks : “password“ ). Serveri aadressiks panna selle masina aadress kus FreeRADIUS server asetseb ja pordiks jätta 1812 (default port) Peale seda vajutada nupul „Save“
Windows XP klientmasina konfigureerimine
Windows klientmasin vajab cacerts.der ja client_cert.p12 faile autoriseerimiseks. Cacert.der tuleb lisada Trusted Root Certificates alla ja client_cert.p12 lihtsalt sertifikaadiks. Antud sertifikaatide tegemine oli kirjeldatud peatükis „Sertifikaadid“.
Kopeerige mälupuga või mõne muu meediumi abil cacert.der ja client_cert.p12 windowsi klientmasinasse. Siis lisame cacert.der sertifikaadi Trusted juursertifikaatide hulka. Selle jaoks klikkame ta peal kaks korda ja avanenud aknas valime „Install Certificate“
Järmisest aknast valime „Place all certificates in following store“ -> Browse-> Trusted Root Certification Authorities ja siis „OK“.
Järgnevates akendes vajutada OK või nextile kasutades isiklikku intelligentsi.
Järgmiseks tuleb lisada kliendisertifikaat client_cert.p12. Selleks klikkame client_cert.p12 faili peal kaks korda ja avanenud aknas vajutame „NEXT“.
Järgmiseks konfigureerime Cisco Aironet utility. Avame Cisco Aironet utiliidi ja vajutame nupul „Scan“. Sealt valime enda ruuteri SSID.
Siis valime Modify, paneme enda ühendusele nime ja lähme edasi Security tabi ning valime WPA/WPA2/CCKM ning rippmenüüst alamtüübi EAP-TLS
Siis vajutame Configure nupul ja valime rippmenüüdest enda sertifikaadid :
Lõpuks vajutame nupul „OK“ ning teeme antud ühenduse aktiivseks. kui kõik on õigesti seadistatud näeme järgnevat pilti:
Windows 7 klientmasina konfigureerimine
Windows klientmasin vajab cacerts.der ja client_cert.p12 faile autoriseerimiseks. Cacert.der tuleb lisada Trusted Root Certificates alla ja client_cert.p12 tavaliseks sertifikaadiks. Antud sertifikaatide tegemine oli kirjeldatud peatükis „Sertifikaadid“.
Kopeerige mälupulga või mõne muu meediumi abil cacert.der ja client_cert.p12 windowsi klientmasinasse. Siis lisame cacert.der sertifikaadi Trusted juursertifikaatide hulka. Selle jaoks klikkame ta peal kaks korda ja avanenud aknas valime „Install Certificate“
Järmisest aknast valime „Place all certificates in following store“ -> Browse-> Trusted Root Certification Authorities ja siis „OK“.
....
Avanenud aknast valime „Place all certificates in following store“ -> Browse-> Trusted Root Certification Authorities ja siis „OK“ ja järgmises aknas „Finish“
Järgmiseks tuleb lisada kliendisertifikaat client_cert.p12. Selleks klikkame client_cert.p12 faili peal kaks korda ja avanenud aknas vajutame „NEXT“.
Sertifikaadid
Korduma Kippuvad Küsimused:
K: Miks mu sertifikaat ei tööta?
V1 :Sertifikaat ei ole klientmasinas aktiivne – võrrelge kellaegu masinas kus te tekitasite sertifikaadi ja masinas kuhu te selle paigaldasite. Juhul kui seal on erinevad kellajad, on tõenäoline, et sertifikaadi kehtivusaeg pole veel alanud. Kõige lihtsam meetod selle probleemi lahendamiseks on muuta arvutis kellaaega.
Alljärgneval joonisel võib näha ekraanitõmmist mittekehtivast sertifikaadist. Pöörake tähelepanu veateatele "This certificate has expired or is not yet valid" ja „ Valid from“ vahemikule.
V2 :Vaadake üle enda sertifikaatide failis, juhul kui mõne faili suurus on 0kb, olete teinud kusagil vea. Kuna võimalusi on mitmeid siis on soovitatav vanad sertifikaadid ära kustutada ja sertifikaadi tekitamise protsess lihtsalt uuesti läbi teha, olles seekord tähelepanelikum.
FreeRADIUS Labor