Configuration wifi en WPA sous Debian
Pour les explications, on part du fait que l'AP est propement configuré en WPA(2)-PSK. Voici les infos à connaître sur l'AP:
- SSID du WLAN
- Clé WPA (PSK Key)
Pour se connecter au réseau WLAN du routeur on a besoin de wpasupplicant et des wireless-tools :
# aptitude install wpasupplicant wireless-tools
La documentation importante à lire est /usr/share/doc/wpasupplicant/README.Debian.gz, qui explique la configuration spécifique du fichier /etc/network/interfaces pour le wifi.
Configuration en ligne de commande
La première chose à faire de trouver le nom de l'interface réseau de la carte wifi, un simple iwconfig sans argument :
# iwconfig
...
eth0 no wireless extensions.
eth1 unassociated ESSID:off/any
Mode:Managed Channel=0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
...
iwconfig est l'équivalent de ifconfig pour les paramètres particuliers des interfaces wifi, il ne le remplace pas mais le complète.
On scanne les réseaux disponibles avec iwlist :
# iwlist eth1 scanning
eth1 Scan completed :
Cell 01 - Address: 00:21:29:B5:D7:6F
ESSID:"mon_ssid"
Protocol:IEEE 802.11bg
Mode:Master
Frequency:2.462 GHz (Channel 11)
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Quality=92/100 Signal level=-36 dBm
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra: Last beacon: 4ms ago
Ces informations permettent de configurer pour se connecter au point d'accès :
- Le SSID
- Le mode
- Le canal
On règle donc ces paramètres avec “iwconfig” :
# iwconfig eth1 essid mon_ssid # iwconfig eth1 mode managed # iwconfig eth1 channel 11
Ensuite, on va créer une entrée pour le réseau auquel se connecter dans le fichier /etc/wpa_supplicant.conf, on utilise la commande wpa_passphrase pour encoder la clé :
# wpa_passphrase mon_ssid ma_passphrase_compliquee
network={
ssid="mon_ssid"
#psk="ma_passphrase_compliquee"
psk=d2d0935c07414ec7c9360e6b0a60aea41d916935408e615f79e58fbc201ba8f8
}
Il faut copier coller le résultat dans /etc/wpa_supplicant.conf, on ajoute au passage quelques configurations adaptées au point d'accès (group et pairwise donnés par iwlist) :
network={
ssid="mon_ssid"
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
#psk="ma_passphrase_compliquee"
psk=d2d0935c07414ec7c9360e6b0a60aea41d916935408e615f79e58fbc201ba8f8
}
Enfin, on peut se connecter au point d'accès en lançant wpa_supplicant :
# wpa_supplicant -ieth1 -c/etc/wpa_supplicant.conf -Dwext CTRL-EVENT-SCAN-RESULTS Trying to associate with 00:21:29:b5:d7:6f (SSID='mon_ssid' freq=2462 MHz) Associated with 00:21:29:b5:d7:6f WPA: Key negotiation completed with 00:21:29:b5:d7:6f [PTK=CCMP GTK=CCMP] CTRL-EVENT-CONNECTED - Connection to 00:21:29:b5:d7:6f completed (auth) [id=0 id_str=]
Normalement, wpa_supplicant tourne en tant que daemon. Il faut ajouter les options -B, -f et -P, pour avoir un truc propre avec pidfile et fichier de log :
# wpa_supplicant -B -ieth1 -c/etc/wpa_supplicant.conf -Dwext -P/var/run/wpa_supplicant.eth1.pid -f/var/log/wpa_supplicant.eth1.log
La dernière chose à faire est de configurer l'adresse IP et la route par défaut :
# ifconfig eth1 192.168.0.100 up # route add default gw 192.168.0.1
ou en DHCP :
# dhclient3 eth1
Configuration du fichier "interfaces"
On peut indiquer un certain nombre d'options supplémentaires pour le WPA dans un bloc de configuration du fichier /etc/network/interfaces :
iface eth1 inet static
wpa-ssid mon_ssid
# plaintext passphrase
wpa-psk ma_passphrase_compliquee
wpa-key-mgmt WPA-PSK
wpa-pairwise TKIP CCMP
wpa-group TKIP CCMP
wpa-proto WPA
# static ip settings
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
On peut aussi utiliser le fichier de configuration de wpa_supplicant :
iface eth1 inet static
wpa-conf /etc/wpa_supplicant.conf
# static ip settings
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Conclusion
La configuration du wifi sous Debian s'est bien simplifiée au cours temps, fini les scripts pre-up et compagnie.