Interfaces et wpasupplicant
Si vous ne voulez pas que votre connexion wifi soit utilisée à votre insu, vous devez faire en sorte que celle-ci soit chiffrée.
Il existe plusieurs types de chiffrement, le WEP, le WPA-802.xx, le WPA-PSK... Nous ne nous intéresserons ici qu'au WPA-PSK car celui-ci est bien plus sécurisé que le WEP, assez facile à contourner.
On peut configurer le cryptage WPA-PSK de sa carte wifi dans le fichier /etc/wpa_supplicant.conf, mais tout regrouper dans le fichier /etc/network/interfaces est tout aussi simple.
Le point d'accès
Le point d'accès est l'endroit à partir duquel vous vous connectez, ce peut être une xxxBox, un routeur... etc. Ce point d'accès est défini à l'aide de plusieurs paramètres :
- Le ssid : C'est le nom du réseau. ( maximum 32 caractères )
- Le canal d'émission : Bande de fréquences dans laquelle sont émises les ondes wifi.
- Le mode : Il définit le débit du transfert des données. ( b, g, ...)
- Le mode de chiffrement : WPA-PSK, WEP...
- La clé de chiffrement : C'est le mot de passe pour accéder à la connexion, en WPA-PSK, cette clé doit avoit entre 8 et 63 caractères.
Configuration du fichier interfaces
wpasupplicant
wpasupplicant est un paquet disponible dans toutes les versions de Debian dans la section main. On l'installe par :
# aptitude install wpasupplicant
Il va nous fournir l'outil wpa_passphrase qui va nous permettre de récupérer la clé cryptée à partir du mot de passe en clair et du nom de notre réseau ( ssid ). Cette clé chiffrée devra être indiquée dans le fichier interfaces.
Par exemple :
- notre réseau se nomme : Mon_wifi_chez_moi
- la clé en clair est : Ma_clé_ultra_secrète_anti_hackers
On lance en console wpa_passphrase comme ceci : wpa_passphrase <ssid> <clé en clair>
Ce qui, dans l'exemple donne :
$ wpa_passphrase Mon_wifi_chez_moi Ma_clé_ultra_secrète_anti_hackers network={ ssid="Mon_wifi_chez_moi" #psk="Ma_clé_ultra_secrète_anti_hackers" psk=ff9116847b8e1515fc66232fd33161fdc7f7910a165b64328e905724e7308116 }
On vient de récupérer la clé chiffrée, ici psk=ff9116847b8e1515fc66232fd33161fdc7f7910a165b64328e905724e7308116. Il suffira alors de la recopier
Vous pouvez recopier le résultat complet de la commande wpa_passphrase dans /etc/wpasupplicant.conf. Vous pourrez alors vous connectez en lançant (en root) :
# wpa_supplicant -i<interface> -d<driver>-c/etc/wpa_supplicant.conf
Pour <driver>, en général, il faut indiquer « wext ». Mais ceci peut varier selon votre carte WiFi et la version de wpa_supplicant. Pour voir la liste des drivers, lancez :
$ /sbin/wpa_supplicant -l
Pour automatiser la connexion, il est préférable d'utiliser le fichier interfaces :
Remplir /etc/network/interfaces
Nota : nous appelons notre interface wlan0, c'est peut-être différent chez vous. Donc adaptez en fonction de vos propres paramètres.
Avec le serveur en DHCP
# Configuration avec le serveur en DHCP auto wlan0 iface wlan0 inet dhcp wpa-conf managed wpa-ap-scan 1 wpa-scan-ssid 1 wpa-ssid Mon_wifi_chez_moi wpa-key-mgmt WPA-PSK wpa-psk ff9116847b8e1515fc66232fd33161fdc7f7910a165b64328e905724e7308116
Avec le serveur en statique
Nota : Ici, les adresses sont complètement définies, modifiez les avec vos propres adresses.
# Configuration en statique auto wlan0 iface wlan0 inet static address 192.168.0.2 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.0.1 wpa-conf managed wpa-ap-scan 1 wpa-scan-ssid 1 wpa-ssid Mon_wifi_chez_moi wpa-key-mgmt WPA-PSK wpa-psk ff9116847b8e1515fc66232fd33161fdc7f7910a165b64328e905724e7308116
Configuration nomade
Pour un portable, il est possible de configurer sa connection pour plusieurs réseaux, selon l'endroit où l'on se trouve. Il y a deux méthodes :
Guessnet
Guessnet est un gestionnaire de connexions multiples. Sa configuration est détaillée sur cette page : http://forum.debian-fr.org/viewtopic.php?f=8&t=13839
wpasupplicant.conf comme gestionnaire de connexions
Vous pouvez renseigner plusieurs réseaux différents dans /etc/wpasupplicant.conf. Il est possible d'ajouter une ligne priority pour déterminer la priorité de l'interface :
network={ ssid="Mon_wifi_chez_moi"
psk=ff9116847b8e1515fc66232fd33161fdc7f7910a165b64328e905724e7308116
priority=2 }
Vous pouvez ajouter un « catch-all » pour capter les réseaux publics :
network={ key_mgmt=none priority=1 }
Pour que le fichier wpasupplicant.conf soit utilisé au démarrage, il faut renseigner dans le fichier /etc/network/interfaces :
auto <interface> iface <interface> inet manual wpa-driver wext (ou autre, voir plus haut) wpa-roam /etc/wpasupplicant/wpasupplicant.conf
Relancer le réseau
Vous devez relancer le réseau afin de prendre en compte les nouveaux paramètres avec :
# /etc/init.d/networking restart