#Autentificare 802.1X pentru controlul accesului in retea Ionel Mocanu Autentificare 802.1X pentru controlul accesului in retea — Ionel Mocanu
Skip to content
 

Autentificare 802.1X pentru controlul accesului in retea

Standardul IEEE 802.1X furnizeaza un mecanism de autentificare pentru dispozitivele de retea care se conecteaza la un mediu 802. Autentificarea 802.1X necesita existenta a trei componente:

  • supplicant (clientul): este software-ul folosit pentru autentificare pe echipamentul care cere accesul la retea.
  • authentification server (server RADIUS): valideaza identitatea clientului si notifica autentificatorul daca acesta este autorizat sau nu sa acceseze LAN-ul sau WLAN-ul.
  • authenticator (switch, access point): contoleaza accesul fizic la retea, actionand ca un proxy intre client si serverul de autentificare. Autentificatorul este totodata si client RADIUS.

Datorita folosirii EAP (Extensible Authentication Protocol), in 802.1x se pot utiliza diverse mecanisme de autentificare: EAP-MD5, LEAP, EAP-TLS, EAP-TTLS, EAP-MSCHAPv2. Primele doua mecanisme de autentificare folosesc combinatia nume/parola, iar celelalte necesita existenta certificatelor. Autentificarea 8021x se mai numeste si port-based. Un port al autentificatorului se poate afla in doua stari logice: controlled port si uncontrolled port. In starea contolled port se permite (daca accesul a fost autorizat) sau interzice traficul (daca accesul nu a fost autorizat) care trece prin acel port. In uncontrolled port se permite doar traficul cadrelor EAPOL.

In continuare, se realizeaza o retea 802.1x cu autentificare EAP-MD5. Ca server de autentificare se foloseste freeradius instalat pe Ubuntu Lucid, iar ca autentificator un switch Cisco.

Pe serverul Ubuntu 10.04 se instaleaza freeradius:
root@RADIUS:~# apt-get install freeradius

In fisierul /etc/freeradius/clients.conf se adauga autentificatorul:

client 192.168.102.101 {
secret = cisco
shortname = SWITCH_CISCO
nas = cisco
}
client 127.0.0.1 {
ipaddr = 127.0.0.1
secret = cisco
require_message_authenticator = no
nastype = other # localhost isn’t usually a NAS…
}

In fisierul /etc/freeradius/users se adauga utilizatorii cu parolele lor:

ionel2010 Cleartext-Password := “ionel2010″
ionel2009 Cleartext-Password := “ionel2009″
ionel2008 Cleartext-Password := “ionel2008″
Reply-Message = ” %{User-Name} poti accesa reteaua”
DEFAULT Auth-Type := Reject
Reply-Message = “Nu ai acces la retea”

Pentru depanare, se oreste serverul freeradius si apoi se porneste cu parametrul -X:
root@RADIUS:~# /etc/init.d/freeradius stop && freeradius -X
Daca outputul se termina cu:

Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on proxy address * port 1814
Ready to process requests.

inseamna ca serverul freeradius a fost bine configurat. :)

Radtest ne permite autentificarea locala fara EAP (din alt terminal):

root@RADIUS:~# radtest ionel2010 ionel2010 127.0.0.1 1812 cisco
Sending Access-Request of id 81 to 127.0.0.1 port 1812
User-Name = “ionel2010″
User-Password = “ionel2010″
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=81, length=20
root@RADIUS:~# radtest ionel10 ionel2010 127.0.0.1 1812 cisco
Sending Access-Request of id 85 to 127.0.0.1 port 1812
User-Name = “ionel10″
User-Password = “ionel2010″
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=85, length=42
Reply-Message = “Nu ai acces la retea”

Pe switch-ul Cisco, se creeaza un vlan la care se adauga porturile la care se vor conecta clientii si serverul de autentificare. Se configureaza totodata si adresa IP pentru acest vlan:

SWITCH(config)#vlan 200
SWITCH(config-vlan)#name PRIVAT
SWITCH(config)#interface range fastEthernet 0/3 – 11
SWITCH(config-if-range)#switchport mode access
SWITCH(config-if-range)#switchport access vlan 200
SWITCH(config-if-range)#exit
SWITCH(config)#interface vlan 200
SWITCH(config-if)#ip address 192.168.179.101 255.255.255.0
SWITCH(config-if)#exit

Apoi se permite AAA, se creeaza lista metodelor de autentificare dot1x folosind lista serverelor radius si se configureaza parametrii serverului radius:

SWITCH(config)#aaa new-model
SWITCH(config)#aaa authentication dot1x default group radius
SWITCH(config)#radius-server host 192.168.179.101 auth 1812 acct 1813 timeout 3
SWITCH(config)#radius-server key cisco
SWITCH(config)#radius-server retransmit 3

Se aplica autentificarea 8021x pe interfetele unde se vor conecta clientii:

SWITCH(config)#dot1x system-auth-control
SWITCH(config)#interface fastEthernet 0/3
SWITCH(config-if)#dot1x port-control auto
SWITCH(config-if)#
*Oct 13 11:13:33.995: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to down

Din acest moment prin portul fa 0/3 este permis doar trafic EAPOL, CDP si STP. Daca autentificarea se va incheia cu succes, se va permite ca orice trafic sa treaca prin port.

Daca clientul e statie Windows, trebuie pornit serviciul Wired AutoConfig (services.msc in run). In Network Connections, Properties, se alege tab-ul Authentication, se bifeaza Enable IEEE 8021X authentication for this network, se alege MD5-Challenge in EAP Type.

Dupa autentificare, pe switch se ridica interfata fa 0/3:

*Oct 13 11:16:02.563: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up

Pentru a se verifica 8021x, pe switch se executa comanda:

Router#show dot1x interface fa 0/3
802.1X is enabled on FastEthernet0/3
Status Authorized
Port-control Auto
Supplicant 0800.27c4.3f0c
Multiple Hosts Disallowed
Current Identifier 7

Pentru ca un client Linux sa se poata autentifica, este nevoie de pachetul wpasupplicant:

root@ubuntu:~# apt-get install wpasupplicant

Se creaza un fisier nou, /etc/wpa_supplicant_md5.conf, in care se adauga parametrii necesari autentificarii:

ctrl-interface=/var/run/wpa_supplicant
network={
key_mgmt=IEEE8021X
eap=md5
identity=”ionel2010″
password=”ionel2010″
}

Pentru autentificare se foloseste comanda:
root@ubuntu:~# wpa_supplicant -ieth1 -Dwired -c /etc/wpa_supplicant_md5.conf

Pentru ca autentificarea sa se faca la pornire in /etc/network/interfaces se aduga:

wpa-driver wired
wpa-conf /etc/wpa_supplicant_md5.conf

2 Comments

  1. gyuri says:

    Hello,

    Doar o mica adaugare, EAP-TTLS suporta user/pass :)

    Imi place tare mult site-ul 😀 Ca un mic wiki de adus aminte comenzi!
    Bafta multa!

  2. Wittmann says:

    Salut!
    Poate imi poti da o lamurire: am un router Time Capsule de la Apple (cu HDD de 500 GB) care are suport pentru autentificare RADIUS. Cu alte cuvinte ai nevoie de un server RADIUS separat care sa iti facă (cred) autentificare propriu-zisă. Ce hardware s-ar putea folosi in combinatie cu routerul meu pentru a realiza o retea WPA2 Enterprise? Un NAS (Synology, QNAP, etc) ar putea indeplini functia asta?

Leave a Reply