That's my blog… Life and Linux

Connessione ethernet con EAP-MD5 Challenge su Linux

Ethernet connector plugging Questo post forse servirà a poche anime, ma spero che ne resteranno soddisfatte :P.

Come dice il titolo, infatti, tramite questo articolo riuscirete (spero :)) a far funzionare un collegamento verso reti ethernet che richiedono un’autenticazione con EAP-MD5 Challenge su macchine Linux. Tale tipo di autenticazione viene utilizzata generalmente in reti piuttosto grandi in cui si vuole limitare l’accesso agli sconosciuti. Un caso di questi è la mia università 😛 che, per limitare gli scaricatori anonimi, ha adottato questo tipo di protezione.

Ora, sui sistemi winzozz è facilissimo utilizzarla, una volta impostato dalle opzioni della scheda di rete, non appena ci si connette, appare un pop-up che richiede i dati di accesso, per Linux, invece, c’è da lavorare un (po’) di più.

Avevo sentito che alcuni utilizzano xsupplicant, ma ho anche «sentito» che ad altri non funziona a dovere (eventualmente le istruzioni le trovate qui), quindi ho pensato di utilizzare un softwarello che già utilizzo per le connessioni Wireless con protezione WPA, ossia wpa_supplicant!

Per installarlo, o vi recate nell’home page da cui scaricate i sorgenti da compilare ed installare, oppure nella gran parte delle distribuzioni vi basterà aprire il vostro package manager ed installarlo cercando il pacchetto corrispondente.
Sulle debian-based (come le *ubuntu, appunto) vi basterà il classico

sudo apt-get install wpasupplicant [oppure wpa_supplicant

dunque – per lo meno col pacchetto di ubuntu – verrete avvisati che l’opzione ENABLED in /etc/default/wpasupplicant è settata a 0 (ossia che wpa_supplicant è disattivato), ma tale parametro da quanto mi pare di aver capito riguarda solo l’avvio del sistema, ossia venite avvisati che wpa_supplicant non viene avviato all’avvio del sistema con le impostazioni definite nel solito file; cosa che non credo vi serva… Se non fosse così, comunque, vi basterà settare ENABLED=1 e dunque impostare le opzioni sotto seguendo gli esempi che trovate in quel file ed i parametri che vi darò tra poco.

Dunque una volta installato dando il comando wpa_supplicant -v vi verrà mostrata la versione, se non avviene controllate i passi dell’installazione. 

Viene dunque il momento di configurarlo. Se non utilizzate wpa_supplicant per altre connessioni (wireless o no) vi basterà editare con i permessi di root (o comunque super user) il file /etc/wpa_supplicant.conf se invece utilizzate wpa_supplicant per altre connessioni allora, per non fare confusione sarà bene che vi creiate un nuovo file di configurazione (tipo in /etc/wpa_supplicant.eth.conf). Ad ogni modo in entrambi i casi modificate il file di configurazione scelto con

sudo kate /etc/wpa_supplicant.conf [al posto di "kate" inserite il vostro editor preferito]

oppure

sudo kate /etc/wpa_supplicant.eth.conf [se avete configurato altr connessioni (wireless)]

Ed editate il vostro file inserendovi quanto sotto:

ctrl_interface=/var/run/wpa_supplicant    # interfaccia di wpa_supplicant
ctrl_interface_group=root                 # nome o ID gruppo dell’interfaccia creata
ap_scan=0                                 # abilita o disabilita ricerca degli access point

network={
        key_mgmt=IEEE8021X
        eap=MD5
        identity="UserName"               # inserire il proprio username
        password="Password"               # inserire la propria password
        eapol_flags=0
}

Ora, come è comprensibile dovrete impostare il file sopra modificando username e password ed eventualmente modificando il parametro ctrl_interface_group dandogli il nome (o l’ID) del vostro gruppo. Questa cosa non è fondamentale, ma è utile perché vi permette di utilizzare un programma, chiamato wpa_cli per controllare lo stato della connessione come utente «normale».

Altra cosa per i più “paranoici” se volete evitare che il “mondo” vi legga le password fate quanto segue:

sudo chmod 600 /etc/wpa_supplicant.conf

Così solo il root potrà vedere e modificare il suddetto file

Adesso, è il momento di connettervi. Vi consiglio come prima cosa di disattivare la vostra scheda di rete che, in questo caso, supponiamo si chiami eth0. Per farlo a linea di comando:

sudo ifdown eth0

Dunque impostatela come dovere in base alla rete a cui vi dovrete connettere (di solito dovrà essere settata in dhcp). Anche qui, se lo fate da terminale vi basta fare (parlo di dhcp)

sudo kate /etc/network/interfaces

Dunque modificate il file affinché vi sia la riga

iface eth0 inet dhcp

Comunque assumendo che sapete impostare la vostra scheda come dovere, adesso dobbiamo avviare wpa_supplicant

Per farlo, se usate wpa_supplicant solo per questa connessione allora fate come segue:

sudo wpa_supplicant -B -i eth0 -c /etc/wpa_supplicant.conf -D wired -w

Tale comando non fa altro che avviare wpa_supplicant in background come root, caricando il file di configurazione in /etc/wpa_supplicant.conf, utilizzando l’interfaccia eth0 (modificatela se necessario) ed usando i drivers per le schede di rete ethernet (wired).

Se altrimenti avete altre connessioni che usano wpa_supplicant ma ne usate solo una per volta, allora potete benissimo chiudere l’eventuale processo attivo (con  killall wpa_supplicant) e seguire il comando sopra, ovviamente cambiando il file di configurazione con quello prescelto (in questo caso /etc/wpa_supplicant.eth.conf).

Se invece, dovete tenere aperte in contemporanea più connessioni che usano wpa_supplicant, invece dovrete sempre chiudere il processo attivo di wpa_supplicant (con  killall wpa_supplicant), ma e dovrete riavviarlo con il seguente comando:

sudo wpa_supplicant -B -i eth1 -D ipw -c /etc/wpa_supplicant.conf -w -N -i eth0 -c /etc/wpa_supplicant.eth.conf -D wired -w

Nel comando sopra, la parte in grigio, la dovrete modificare in base alle vostre esigenze definendo scheda di rete e driver usate dalla vostra scheda (suppongo wireless); tutto ciò che invece viene seguito da -N dovete lasciarlo così (a parte ritocchi all’interfaccia ed all’indirizzo del file di configurazione) visto che è il comando che serve a far funzionare wpa_supplicant con la vostra scheda ethernet.

Ora… per vedere se avviene l’autenticazione potete avviare wpa_cli (con sudo o meno, in base al  ctrl_interface_group definito):

wpa_cli status

Ora se tutto è ok vi darà un output tipo:

Selected interface ‘eth0’              # Interfaccia selezionata
bssid=xx:xx:xx:xx:xx:xx                # MAC scheda di rete del router
key_mgmt=IEEE8021X (NO-WPA)
ip_address=xxx.xxx.xxx.xxx             # IP impostato o assegnato
Supplicant PAE state=AUTHENTICATED     # Autenticato!
suppPortStatus=Authorized              # Autorizzato!   
EAP state=SUCCESS                      # MD5 Challenge avvenuto con successo!

Considerando che da quanto sopra è andato tutto a posto, adesso ce l’abbiamo praticamente fatta. Se non notaste stringhe tipo AUTHENTICATED, Authorized, SUCCESS… C’è qualche problema. Ricontrollate i dati di accesso o l’interfaccia selezionata. La causa potrebbe essere però dovuta anche al server: eccovi una lista di quelli supportati; provate quindi a far riferimento ad xsupplicant.

In caso di successo, basterà riattivare la scheda di rete e… sarete online! 🙂

sudo ifup eth0

Tanto per controllare che tutto è andato ok vi basta un ping:

ping maya.ngi.it

se avete problemi di DNS (all’inizio a volte li da, semmai editatevi /etc/resolf.conf) per vedere se cmq siete online

ping 194.185.88.3

Fatto! 🙂
Ho allungato molto le cose, come (quasi) sempre :P, per essere proprio “a portata di niubbo”, però la configurazione è piuttosto facile. vi consiglio semmai di crearvi uno script contenente la vostra stringa di avvio di wpa_supplicant per “migliorarvi la vita” :).

Ulteriori informazioni le trovate nei files:

/usr/share/doc/wpasupplicant/README.gz
/usr/share/doc/wpasupplicant/examples/wpa_supplicant.conf.gz

oppure dal manuale di sistema (man wpa_supplicant e man wpa_cli ;))

 

CIAO!! :bye: ^_^