Sei sulla pagina 1di 13

Guida alla Connessione UnicamWiFi con Debian/GNU/Linux

Valerio Passini

Indice generale
INTRODUZIONE................................................................................................3 REQUISITI PRELIMINARI....................................................................................3 Scheda Wireless...........................................................................................3 Driver...........................................................................................................5 Mini Troubleshooting ...................................................................................7 CONFIGURAZIONE RETE WIRELESS..................................................................7 Openssl (installazione e uso).......................................................................7 Wpa_supplicant (installazione, configurazione e uso)..................................8 Dhclient (client dhcp)...................................................................................9 USARE NETWORKMANAGER...........................................................................10 RINGRAZIAMENTI...........................................................................................13 LICENZA.........................................................................................................13

INTRODUZIONE
Premetto che questa guida non la soluzione a tutti i vostri problemi di connessione con il sistema del pinguino, ma potrebbe esserlo se foste abbastanza fortunati e volenterosi da: 0) Avere la pazienza di seguire la guida (requisito indispensabile) 1) Avere una scheda wireless pienamente supportata (incluso WPA) 2) Avere i driver per essa (ed eventualmente il firmware) correttamente installato Se gi sapete di avere tutto questo potete direttamente passare alla parte finale, dove si spiega:

Come usare Openssl per manipolare il certificato .pfx che vi ha dato il CINFO Come configurare wpa_supplicant per connettersi

Tenete anche in considerazione che la guida orientata ad utenti Debian (mamma di Ubuntu), ma che potrebbe andare bene anche per altre distribuzioni di Linux applicando le dovute correzioni che VOI sapete. Se possedete SuSE o RedHat/Fedora, forse avete anche un qualche tool di configurazione che fa tutto, ma con quello dovete sbrigarvela da soli. Per quanto riguarda l'installazione del software, ogni distribuzione ha il suo sistema, Debian ha il programma apt, RedHat ha
rpm

e alcuni hanno anche

interfacce grafiche accattivanti ad essi. Mentre il metodo per installare il software necessario pu variare, la sintassi dei comandi dei programmi installati in questa guida no, quindi vanno eseguiti senza variazioni.

REQUISITI PRELIMINARI Scheda Wireless


Il primo punto, cio l'avere una scheda wireless ben supportata in Linux, in fondo non poi cos difficile da realizzare: molti chipset funzionano pienamente (quelli intel ad esempio, presenti in molti dei computer degli ultimi 2-3 anni), mentre altri lo faranno in futuro. Quello che dovreste fare prestare un po'

d'attenzione nel caso di un nuovo acquisto, tanto non c' differenza di prezzo tra un dispositivo wireless che supporta solo Windows ed uno che funziona anche sotto Linux. A tal proposito potreste guardare su queste pagine molto utili http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/#howto quali siano i chipset e le marche giuste. La cosa importante qui accertarsi che nel driver sia supportato il WPA (WPA enterprise), visto che si tratta del protocollo di sicurezza usato da UnicamWiFi. Oppure potreste consultare il fido Google immettendo semplici criteri di ricerca quali: Linux + il Nome-deldispositivo-wireless + WPA. C' da dire che spesso si entra prima in un negozio e poi ci si trova col chiedersi, di fronte ad una scatola priva di informazioni salienti a parte i soliti loghi Designed for WindowsXYZ, se quel dispositivo possa o no funzionare con Linux. Allora potreste fare come me che, mentre mi trovavo in questa situazione, ho iniziato a consultare i vari siti internet delle case produttrici e ho cercato nelle specifiche del prodotto quali chipset erano montati. Due dei tre che stavo visionando erano adatti a Linux: un bel rapporto dopo tutto. Ecco una breve lista di chipset che dovrebbero funzionare ed hanno i driver distribuiti gi all'interno del kernel Linux (ora come ora nel kernel 2.6.22): Intel PRO/Wireless 2100 Intel PRO/Wireless 2200BG and 2915ABG Marvell 8xxx Libertas WLAN driver support Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards Prism2/2.5/3 Broadcom BCM43xxUSB ZyDas ZD1201 ZyDAS ZD1211/ZD1211B USB-wireless I diffusi chipset Ralink (che qui menziono solo perch ne ho avuto uno) hanno due driver opensource, uno dei quali non supporta il WPA mentre l'altro attualmente in fase di sviluppo. Entrambi devono essere compilati esternamente al kernel (roba per utenti abbastanza esperti), ma pare che entro qualche mese anch'esso entrer nel kernel ufficiale, risparmiando un bel po' di grane a chi li possiede.

Dal canto mio, posso dire che l'hardware che ho testato personalmente un dongle USB della 3-Com con chipset ZyDas ZD1211 pagato 39 (ce ne sono con lo stesso chipset a prezzi inferiori). Forse in futuro prover altro hardware se mi verr prestato per il test.

Driver
Procediamo con il punto due. Adesso il momento di controllare se avete gi un dispositivo wireless correttamente rilevato e relativo driver funzionante (se avete una distribuzione recente o aggiornata, dovrebbe essere cos). Nella console immettete il comando che vi indico dopo il simbolo $ e premete invio alla fine. Mi raccomando: $ significa che siete normali utenti, mentre # significa che siete root o amministratori del sistema, non che dovete scriverlo prima del comando. Per fare il login come root potete aprire una console e immettere il comando: su (invio) e poi <la_vostra_password_di_root>. AVVERTIMENTO! Quando siete root potete fare molti danni, quindi prestate la massima attenzione a ci che scrivete in console! N.B.: gli utenti di Ubuntu forse devono far precedere sudo a tutti i comandi per confermare di volere i privilegi di root .

$ iwconfig

(invio)

Dovrebbe rispondere pi o meno cos:


eth2 IEEE 802.11b/g Mode:Managed ESSID:" " Nickname:"zd1211" Access Point: 00:11:88:81:3F:40

Frequency:2.412 GHz

Encryption key:off Link Quality=69/100 Rx invalid nwid:0 Signal level=40/100 Rx invalid crypt:0 Invalid misc:0 Rx invalid frag:0 Missed beacon:0

Tx excessive retries:0

eth2 il nome della mia interfaccia di rete, ma potrebbe essere eth1, eth0, ethX, wlanX, raX (dove X un numero).

Se cos siamo a cavallo! Altrimenti incominciamo con la lista delle cose da fare:

Controllate la versione del kernel con:


$ uname -r

se vi risponde con un numero di versione inferiore a 2.6.18 meglio aggiornare il kernel (personalmente uso un kernel 2.6.22) Sapere il proprio Hardware nel caso di schede interne o collegate al bus PCMCIA pu aiutarvi:
$ lspci [...] Intel 15:00 Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

In questo caso dovreste assicurarvi di avere il modulo appropriato installato (ipw3945 nell'esempio precedente) e caricato:
$ lsmod | grep 3945

(oppure solamente lsmod)

Se leggete qualcosa come la seguente riga il modulo caricato opportunamente:


ieee80211 34632 1 ipw3945 firmware_class 14080 2 pcmcia,ipw3945

Inoltre controllate di avere il firmware (se occorre) del vostro dispositivo wireless nella giusta cartella (cio dove il modulo del kernel lo va a cercare quando viene caricato). Anche qui dovete arrangiarvi un po' (con Google o leggendo la documentazione).

N.B.: UnicamWiFi usa AES come algoritmo di cifratura. Nei kernel precompilati generalmente presente, ma potete controllare in questo modo (potete copiare e incollare il comando in console):
$ cat /boot/config-`uname -r` | grep CONFIG_CRYPTO_AES

Se risponde
CONFIG_CRYPTO_AES=m

oppure y oppure y

CONFIG_CRYPTO_AES_586=m

tutto a posto.

Mini Troubleshooting
Detto questo, ho detto poco o quasi nulla, perch nel caso aveste dei problemi potrebbe essere sufficiente mettere il firmware al suo posto, ricompilare il kernel o scaricarne uno precompilato dalla rete (usate il cavo di rete, visto che la scheda wireless non sta funzionando :-)), oppure compilare un modulo esterno con module-assistant (comando m-a), ma non posso permettermi di scrivere una guida di come si ricompila un kernel e i moduli esterni. Mi dispiace, ma internet piena di ottime guide di questo genere e basta farsi un giro l fuori per scoprirlo. Posso solo dire che se siete utilizzatori di Debian/Ubuntu forse vi basta questo comando:
# apt-get install linux-image-2.6.22

(o con numero di versione superiore) (come sopra)

# apt-get install linux-headers-2.6.22

Aspettate che il kernel finisca di installarsi. Riavviate il PC e al prompt di GRUB selezionate il kernel appena installato. Ripetete i passi precedenti sperando che qualcosa sia migliorato.

CONFIGURAZIONE RETE WIRELESS


Adesso siamo alla fase di configurazione vera e propria. Iniziamo con l'importare i certificati in modo che wpa_supplicant possa successivamente usarli per autenticarci sulla rete. Se non avete openssl installato digitate:

Openssl (installazione e uso)


# apt-get install openssl

Nella console spostatevi nella directory dove avete salvato il vostro certificato nome.cognome.pfx e fatene una copia di sicurezza:
# cd /directory/dove/si/trova/il/certificato/

e quindi
# cp nome.cognome.pfx nome.cognome.pfx.bak

Ora lanciate i seguenti tre comandi in successione, esattamente come sono scritti senza alcuna modifica (eccetto mettere la vostra password dove richiesto):

openssl pkcs12

-in nome.cognome.pfx

-passin pass:password

-out unicam.pem

-cacerts -nokeys (questo estrae il certificato della Certification Authority Unicam)

openssl

pkcs12

-in

nome.cognome.pfx

-passin

pass:password

-passout

pass:password -out id_key.pem -nocerts (questo estrae la vostra chiave privata)

$ openssl pkcs12 -in nome.cognome.pfx -passin pass:password -out id.pem nokeys (questo estrae il vostro certificato)

Mettete tutti e tre i file .pem nella stessa cartella (se non c' createla) in /etc/cert/

Wpa_supplicant (installazione, configurazione e uso)


Ora il momento di configurare wpa_supplicant, se non lo avete installato digitate:
# apt-get install wpa_supplicant

In /etc/wpa_supplicant/
wpa_supplicant)

(o in quella che la cartella di sistema di

create un file, se c' gi lo dovete solo editare, chiamato wpa_

supplicant.conf ( un banale file di testo). In esso copiate esattamente le seguenti cose: network={ ssid="UnicamWiFi" proto=WPA key_mgmt=WPA-EAP pairwise=CCMP TKIP group=CCMP TKIP WEP104 WEP40 eap=TLS identity="nome.cognome@Amministrazione.Unicam" ca_cert="/etc/cert/unicam.pem" client_cert="/etc/cert/id.pem" private_key="/etc/cert/id_key.pem"

private_key_passwd="password_chiave_privata" priority=2 } Modificate il file in identity, dove tra virgolette deve essere contenuto il vostro nome.cognome@vostrodominio studenti), e in (il dominio pu essere o amministrazione o private_key_passwd dove dovete mettere la vostra password

usata nella generazione del certificato. Incrociate le dita perch ci siete quasi, siete pronti a collegarvi all'AP dell'Universit di Camerino:
# wpa_supplicant -i eth2 -c /etc/wpa_supplicant/wpa_supplicant.conf -d -Dwext

Il comando dato sopra potrebbe variare, per esempio dopo -i dovete mettere la vostra interfaccia di rete (ethX, wlanX, raX o voi sapete cosa) e dopo -D (D maiuscolo, non confondetevi) mettere il driver appropriato per wpa_supplicant (leggetene il manuale per sapere esattamente quale). Se tutto andato bene dovreste avere svariati messaggi in console tra cui i seguenti: EAP: EAP entering state SUCCESS CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully EAPOL: SUPP_PAE entering state AUTHENTICATED

Dhclient (client dhcp)


A questo punto non vi resta che richiedere un indirizzo IP, quindi aprite un'altra console e digitate:
# dhclient

Listening on LPF/eth2/00:18:6e:2f:1f:4a Sending on Sending on LPF/eth2/00:18:6e:2f:1f:4a Socket/fallback

DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4

DHCPREQUEST on eth2 to 255.255.255.255 port 67 DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4 DHCPACK from 193.204.8.34 bound to 193.204.8.230 -- renewal in 33850 seconds.

Se immettendo
# route

ottenete qualcosa di simile a:


Destination 193.204.8.0 default Gateway * 193.204.8.14 Genmask 255.255.255.0 0.0.0.0 Flags Metric Ref U UG 0 0 0 0 Use Iface 0 eth2 0 eth2

Tutto sta funzionando perfettamente. Da questo momento in poi gli unici comandi che dovrete dare in console al momento di collegarvi sono il terzultimo e il penultimo:
# wpa_supplicant -i eth2 -c /etc/wpa_supplicant/wpa_supplicant.conf -d -Dwext # dhclient

l'ora di navigare senza vincoli, completamente liberi. ;-)

USARE NETWORKMANAGER
Molti di coloro che provengono dal mondo Windows amano le interfacce dove si clicca qua e l e non c' da scrivere quei complicati file di configurazione a mano. Ebbene, esiste un buon tool per la connessione sviluppato da Novell e disponibile su molte distribuzioni che si chiama NetworkManager. Il suo scopo quello di lavorare dietro le quinte automaticamente a seconda del posto in cui ci troviamo (casa, lavoro, universit) e a seconda dell'interfaccia che colleghiamo (scheda di rete o dispositivo wireless). Prima di tutto deve essere installato il programma e relative interfacce grafiche per GNOME e KDE
# apt-get install network-manager network-manager-gnome network-manager-kde

Per far funzionare un dispositivo di rete con NetworkManager abbiamo bisogno di eliminare le eventuali righe di configurazione presenti nel file /etc/network/interfaces, infatti il programma si rifiuta di configurare qualcosa che gi gestito da altri programmi per non sovrapporsi ad essi. Aprite quindi questo file e commentate con il carattere # (sharp) tutte le righe

che non vi interessano oppure fate s che contenga solo le seguenti stringhe: auto lo iface lo inet loopback Salvate e fate ripartire il servizio NetworkManager cos legger le modifiche al file:
# /etc/init.d/network-manager restart # /etc/init.d/network-manager-dispatcher restart

Lanciate l'interfaccia grafica, che sar nm-applet in GNOME e knetworkmanager in KDE. Se cliccate con il tasto destro sull'icona che dovrebbe essere comparsa nella systray (barra di sistema) dovreste notare che ha identificato la presenza di una rete wireless: UnicamWiFi. Scorrete il men fino a trovarvici sopra e cliccate, presto comparir una maschera di configurazione. NetworkManager dovrebbe aver correttamente rilevato che si tratta di una WPA ufficio, ma vi chiede gli altri parametri. Impostateli come da immagine:

In pratica immettete il percorso agli stessi certificati creati con il metodo precedente:

File dei certificati client: /etc/cert/id.pem File dei certificati CA: /etc/cert/unicam.pem File chiave privata: /etc/cert/id_key.pem Password chiave privata: la_vostra_password

Identit:

nome.cognome@dominio

(esattamente

come

fareste

nel

file

wpa_supplicant.conf)
Metodo EAP: TLS Seconda fase: MSCHAPv2 Versione WPA: WPA1

D'ora in avanti NetworkManager dovrebbe connettersi da solo dopo avervi chiesto la sola password del portachiavi. Una bella comodit!

RINGRAZIAMENTI
Ringrazio Paolo Gaspari per la disponibilit e Alberto Passini per l'editing. Un grazie anche a tutta la comunit Open Source.

LICENZA
Copyright 2007 Valerio Passini Il testo e solo il testo di questa guida concesso sotto la licenza creative commons: Attribution-NonCommercial-ShareAlike 2.5 Italy

http://creativecommons.org/licenses/by-nc-sa/2.5/it/

I loghi Unicam, Tux e Debian sono propriet dei rispettivi autori/istituzioni.

Potrebbero piacerti anche