 |
DeepBlue |
tired guy

Registered: Sep 2003
Posts: 4258 (0.52 al dì)
Location: CSN
Corso: Info tlc
Anno:
Time Online: 52 Days, 8:40:31 [...]
Status: Offline
Edit | Report | IP: Logged |
WiFi + WPA tutorial
Ecco come promesso, tutti i passi da seguire 
Ecco un (non molto) breve tutorial su come installare WPA supplicant, ndiswrapper e far funzionare una broadcom BCM94306 su Slackware 10 (ma sono sicuro che ve lo potete rivendere anche su altre distro e con schede che funzionano con ndiswrapper).
Prerequisiti:
- wireless-tools presenti [http://www.hpl.hp.com/personal/Jean...inux/Tools.html]
- ndiswrapper (solo per schede sprovviste di driver per linux) installati [http://ndiswrapper.sourceforge.net/...hp/Installation]
Installazione WPA supplicant
Scaricare il pacchetto da http://hostap.epitest.fi/wpa_supplicant/
Creare un .config secondo quanto riportato nel README
ATTENZIONE: quasi sicuramente si dovrà installare pcspc-lite poiché è richiesto winscard.h (per chi ha slackware, tgz disponibile attraverso swaret).
Ecco il mio:
#Following build time configuration options are used to control IEEE
#802.1X/EAPOL and EAP state machines and all EAP methods. Including
#TLS, PEAP, or TTLS will require linking wpa_supplicant with openssl
#library for TLS implementation.
CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_MD5=y
CONFIG_MSCHAPV2=y
CONFIG_EAP_TLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_GTC=y
CONFIG_EAP_OTP=y
CONFIG_EAP_SIM=y
CONFIG_EAP_LEAP=y
#Following option can be used to include GSM SIM/USIM interface for GSM
#authentication algorithm (for EAP-SIM). This requires pcsc-lite
#(http://www.linuxnet.com/) for smart card access.
#interfaces are included. Prism54.org driver is not yet complete and
#Hermes driver interface needs to be downloaded from Agere (see above).
#Most Linux driver need to include CONFIG_WIRELESS_EXTENSION.
CONFIG_WIRELESS_EXTENSION=y
CONFIG_DRIVER_HOSTAP=y
CONFIG_DRIVER_PRISM54=y
#CONFIG_DRIVER_HERMES=y
#CONFIG_DRIVER_MADWIFI=y
#CONFIG_DRIVER_ATMEL=y
#CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_NDISWRAPPER=y
#CONFIG_DRIVER_IPW2100=y
#Following example includes all features and driver interfaces that are
#included in the wpa_supplicant package:
CONFIG_DRIVER_HOSTAP=y
CONFIG_DRIVER_PRISM54=y
#CONFIG_DRIVER_HERMES=y
#CONFIG_DRIVER_MADWIFI=y
#CONFIG_DRIVER_ATMEL=y
#CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_NDISWRAPPER=y
#CONFIG_DRIVER_IPW2100=y
CONFIG_WIRELESS_EXTENSION=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_MD5=y
CONFIG_MSCHAPV2=y
CONFIG_EAP_TLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_GTC=y
CONFIG_EAP_OTP=y
CONFIG_EAP_SIM=y
CONFIG_EAP_LEAP=y
CONFIG_PCSC=y
#EAP-PEAP and EAP-TTLS will automatically include configured EAP
#methods (MD5, OTP, GTC, MSCHAPV2) for inner authentication selection.
CONFIG_PCSC=y
Sicuramente, per chi usa ndiswrapper, la parte che riguarda HOSTAP e PRISM54 può essere eliminata. Io le avevo incluse in fase di debug ma non ho ancora testato il funzionamento dell'autenticazione senza questi driver.
Una volta creato il file .config potete dare make e installare i binari semplicemente copiandoli in /usr/local/bin (# cp wpa_cli wpa_supplicant /usr/local/bin).
Questo è quanto per l'installazione di WPA. Maggiori informazioni nel Readme 
A questo punto assicuratevi che in /etc/rc.d/rc.wireless.conf ci sia la riga “WPA=y”, altrimenti non riuscirete mai ad autenticarvi sulle reti protette dall'omonimo protocollo.
Se non ci fosse, aggiungetela.
Prima di cercare di collegarvi alla rete wi-fi, se questa è protetta da WPA, dovete scrivere un file di configurazione per wpa_supplicant, che potete inserire sotto /etc.
Per quanto riguarda la rete presso il dipartimento, il suddetto file avrà questo aspetto:
network={
ssid="DSI-DICO"
scan_ssid=0
proto=WPA RSN
key_mgmt=WPA-EAP IEEE8021X NONE
pairwise=CCMP TKIP
eap=TTLS PEAP TLS
group=CCMP TKIP WEP104 WEP40
identity="vostra_login_in_SiLAB"
password="password_della_vostra_registrazione_al_servizio"
}
Inizializzate quindi la scheda con
# /etc/rc.d/rc.wireless wlan0
In fase di debug vi consiglio di lanciare wpa_cli, che altro non è che un monitor su quello che fa wpa_supplicant.
Lanciato quindi wpa_client (da root), aprite un'altra shell (sempre come root) e lanciate il seguente comando:
# wpa_supplicant -d -iwlan0 -c/etc/wpa_dsi.conf -Dndiswrapper
(per maggiori info leggete il readme di wpa).
Nelle due finestre cominceranno a scorrere righe con le informazioni scambiate fra l'AP e la scheda wifi.
In particolare, in quella di wpa_supplicant vedrete ad un certo punto:
<2>Associated with 00:0d:88:c1:b4:f8
<2>WPA: Key negotiation completed with 00:0d:88:c1:b4:f8
e se provate a digitare status nella finestra di wpa_client, dovreste vedere qualcosa di questo tipo:
bssid=00:0d:88:c1:b4:f8
ssid=DSI-DICO
pairwise_cipher=TKIP
group_cipher=TKIP
key_mgmt=WPA/IEEE 802.1X/EAP
wpa_state=COMPLETED
Supplicant PAE state=AUTHENTICATED
heldPeriod=60
authPeriod=30
startPeriod=30
maxStart=3
suppPortStatus=Authorized
portControl=Auto
Supplicant Backend state=IDLE
EAP state=SUCCESS
reqMethod=0
selectedMethod=21
methodState=DONE
decision=UNCOND_SUCC
ClientTimeout=60
Significa che l'autenticazione ha avuto successo 
A questo punto bisogna farsi assegnare un ip (ovviamente solo per le reti con dhcp attivo).
In questo ho incontrato qualche difficoltà, perché la scheda non ne voleva sapere di mandare correttamente in broadcast la richiesta di un lease.
Per fortuna il problema era piuttosto stupido ( ): è stato sufficiente assegnare localhost alla scheda e poi chiedere il lease. Procedete così:
# ifconfig wlan0 127.0.0.1 netmask 255.255.255.0 broadcast 255.255.255.255 promisc
# dhcpcd wlan0
e magicamente potrete navigare con la scheda wireless 
Troubleshooting
Se non riuscite a navigare:
- controllate /etc/resolv.conf
Se il file è vuoto, dovete inserire l'ip di un server dns, altrimenti potete scordarvi la risoluzione dei nomi!
- controllate la tabella di routing (man route).
Se la scheda wireless non è il default gateway, impostatela come tale! (man route).
- controllate la presenza del segnale e il funzionamento della scheda o dell'AP dando
# iwlist wlan0 scan
Se c'è un AP attivo e funzionante, dovrebbero apparire i suoi dati.
__________________
~ get Debian! ~ get FreeBSD! ~ get OpenBSD! ~
Last edited by DeepBlue on 18-03-2005 at 16:55
|