Difference between revisions of "Traadita võrgu turvamine FreeRADIUS’ega"

From EIK wiki
(Sertifikaatide loomine)
(serveri käivitamine)
Line 205: Line 205:
  
 
  $ radiusd -X
 
  $ radiusd -X
 +
 +
Kui saate veateate tekstiga "unexpected end of file", siis on faili lõpust puudu '''}''' kuna seal ees on kommentaari märk.
  
 
=Ruuteri/pääsupunkti konfigureerimine=
 
=Ruuteri/pääsupunkti konfigureerimine=

Revision as of 15:31, 4 May 2011

Sissejuhatus

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 pääsupunkt.
  • Kuidas ühenduda sertifikaatide abil pääsupunktiga.

Teooria

Mis on RADIUS?

RADIUS (lühend inglis keelsetest sõnadest Remote Authentication Dial-In User Service) on võrguprotokoll mida kasutatakse 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 :

Lan.png

1.Uus kasutaja ühendub pääsupuntiga (AP) ning küsib ligipääsu LAN'i. AP küsib lõppkasutajalt ta identiteeti. Ainuke AP poolt edastatav ühendusprotokoll enne identifitseerimist on Extensible Authentication Protocol ( EAP).

2.Peale identifitseerimist algab autentimine. Kasutatakse EAP protokolli. AP kapseldab EAP paketid RADIUS formaati ja saadab nad edasi RADIUS serverile. Autentimisprotsessi ajal AP vahendab pakette lõppkasutaja ja RADIUS serveri vahel.

3.Peale õnnestunud autentimist lastakse lõppkasutaja LAN kohtvõrgule ligi.

Mis on EAP?

Extensible Authentication Protocol on autentimiseks optimiseeritud transpordiprotokoll. EAP toetab mitut erinevat autentikeerimimismeetodit. http://www.ietf.org/rfc/rfc3748.txt

Milliseid autentimis mehhanisme 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 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 on paigaldatud ka FreeRADIUS'ega seotud failid, kaasa arvatud FreeRADIUS'e konfiguratsiooni.

Sertifikaatide loomine

Et sertifikaate teha peame esmalt installeerima open-ssl koos toega perli skriptidele :

$ 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. Scriptis on enamikule küsimistele kohandatud vaikimisi vastused kandilistes sugudes. Näiteks vajutades küsimuse State or Province Name (full name) [Harju]: korral klavhi Enter sisestatakse antud küsimusele vaikeväärtus "Harju". Scripti saab SIIT.

Käsurea abil saab faile alla laadida näiteks utiliidi wgeti abil

$ wget http://enos.itcollege.ee/~avein/sert/cert.sh

Et skripti saaks kasutada, teeme ta ka käivitatavaks:

$ chmod a+x cert.sh

Scripti abil tekitame järgnevad failid :

  • cacert.pem, on juursertifikaat
  • cakey.pem, juursertifikaadi privaatvõti, pass phrase on “whatever”
  • cacert.der, juursertifikaat 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 on PKCS#12 versioon kliendi sertifikaadist

Algatuseks teeme selfsigned juursertifikaadi. Selleks käivitame eelnevalt alla laetud scripti järgmise parameetriga :

$ ./cert.sh ca

Common name võib panna näiteks Cacert. Antud käsk tekitab meile cakey.pem, cacert.pem ja cacert.der failid.

Sert.png


Järgnevaks tekitame serveri sertifikaadi, selleks sisestame käsu :

$ ./cert.sh server cakey.pem cacert.pem

Common name võib näiteks servercert panna, kindlasti ei tohi aga panna sama common name'i mille panite eelnevale sertifikaadile. Ülejäänud küsimuste peale on soovitatav ise mitte midagi sisestada, eriti Challenge passwordi korral (juhul kui challenge password on aktiivne peab ta sisestama iga kord kui mõni teenus tahab sertifikaati kasutada). Kindlasti peab aga sertifikaadile alla kirjutama.

Antud tegevuse tagajärjel saame failid server_key.pem ja server_cert.pem

Sert7.png

Siis teeme kliendi sertifikaadi käsuga :

$ ./cert.sh client cakey.pem cacert.pem


Common name'iks pange näiteks 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). Common name ei tohi olla sama mis cacertil oli! 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) .

Sert8.png

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 serveri konfigureerimine

Kuna Fedora Core 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 konfiguratsioonifailid 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 pääsupunktid (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 shared-secret ruuteri ja FreeRADIUS serveri vahel. Sama secreti peate panema hiljem ka enda wifi AP konfiguratsiooni. Shortname on lihtsalt nimi, millega antud seadet radiuse logides hakatakse mainima.

users

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 = tls :

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

Kui saate veateate tekstiga "unexpected end of file", siis on faili lõpust puudu } kuna seal ees on kommentaari märk.

Ruuteri/pääsupunkti 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äite puhul oleks selleks : “password“ ). Serveri aadressiks panna selle masina IP, kus FreeRADIUS server asetseb ja pordiks jätta 1812 (default port) Peale seda vajutada nupul „Save“. Soovitatav on ka muuta SSID, et see poleks juba eksisteerivaga identne.

Ruuter.png

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.

cacerts.der seritifikaadi lisamine

Lisame cacert.der sertifikaadi Trusted juursertifikaatide hulka. Selle jaoks klikkame ta peal kaks korda ja avanenud aknas valime „Install Certificate“

Vana1.jpg

Avanenud aknas valime „Place all certificates in following store“ -> Browse-> Trusted Root Certification Authorities ja siis „OK“.

Vana2.jpg

Järgnevates akendes vajutada OK või nextile kasutades isiklikku intelligentsi.

client_cert.p12 sertifikaadi lisamine

Lisada tuleb ka kliendisertifikaat client_cert.p12. Selleks klikkame client_cert.p12 faili peal kaks korda ja avanenud aknas vajutame „NEXT“

Vana4.png

Vana5.jpg

Serveriga ühenduse tekitamine

Järgmiseks konfigureerime Cisco Aironet utility. Avame Cisco Aironet utiliidi ja vajutame nupul „Scan“. Sealt valime enda ruuteri SSID.

Vana6.jpg

Valime Modify, paneme enda ühendusele nime ja lähme edasi Security tabi ning valime WPA/WPA2/CCKM ning rippmenüüst alamtüübi EAP-TLS

Vana7.jpg

Siis vajutame Configure nupul ja valime rippmenüüdest enda sertifikaadid :

Vana8.jpg

Lõpuks vajutame nupul „OK“ ning teeme antud ühenduse aktiivseks. Kui kõik on õigesti seadistatud näeme järgnevat pilti:

Vana9.jpg

Linux klientmasina konfigureerimine Network Manager näitel

Network Manager on mitmes erinevas Linuksi distros kasutatav võrguühenduse haldamise utiliit.

Klientmasin vajab cacerts.der ja client_cert.p12 faile autoriseerimiseks (need tehti valmis peatükis "Sertifikaadid").

Kopeerige mälupuga või mõne muu meediumi abil cacert.der ja client_cert.p12 linux klientmasinasse.


Avage Network Manager. Valige "Connect to Hidden Wireless Network".

  • "Network Name" sisetage siia enda AP SSID
  • "Wireless Security" WPA&WPA2 Enterprise
  • "Authentication" TLS
  • "Identity" siia pange enda kliendi sertifikaadi (client_cert.p12) common name (antud näites oli see sert_laptop)
  • "CA certificate" navigeerige cacert.der failini ja valige see
  • "Private Key" navigeerige client_cert.p12 failini ja valige see
  • "Private Key Password" Tuletage meelde mis Export Passwordi te valisite kui kliendi seritifikaati genereerisite ja sisestage see


Linukscert1.png

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.

cacerts.der seritifikaadi lisamine

Lisame cacert.der sertifikaadi Trusted juursertifikaatide hulka. Selle jaoks klikkame ta peal kaks korda ja avanenud aknas valime „Install Certificate“

Sert1.png

Sert3.png

Järmisest aknast valime „Place all certificates in following store“ -> Browse-> Trusted Root Certification Authorities ja siis „OK“.

Untitled1.png

Finish.png

Sert2.png

client_cert.p12 sertifikaadi lisamine

Lisame ka client_cert.p12 sertifikaadi. Selleks klikake kaks korda failil client_cert.p12 ja avanenud aknas valige „Install Certificate“

Sert3.png

Sert4.png

Siia sisestage export passwordi mille kliendi sertifikaate tehes valisite

Sert5.png

Uus.png

Sert2.png

Serveriga ühenduse tekitamine

Valige Network and Sharic Centrist "Connect to a new network"

Esimene.png

Teine.png

Kolmas.png

Neeljas.png

Valige Security Type : WPA-Enterprise ja "Choose a network authentication method" "Microsoft:Smart Card or other certificate" ja siis vajutage nupul "Settings"

Viiies.png

valige menüüst enda loodud CA sert ja vajutage OK

Kuuues.png

Valige rippmenüüst enda kliendi sertifikaat

Seitsmes.png

Korduma Kippuvad Küsimused:

K: Miks mu sertifikaadid ei tööta?

V1 :Sertifikaat ei ole klientmasinas aktiivne – võrrelge kellaegu arvutis, kus te tekitasite sertifikaadi arvutiga 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.

Kalamees.png

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.