Ifplugd et wpasupplicant
Un article de SeRoM - Wiki.
Sommaire |
[modifier] Description
Il est possible de ne plus devoir configurer à chaque fois les paramètres réseau de vos cartes, lorsque vous changez de localisation (batiment, etc.) Nous allons donc installer 3 paquets permettant cela, que ce soit en filaire ou pas.
[modifier] wpasupplicant
permet de se connecter à un AP spécifié dans un fichier de configuration que nous verrons plus tard.
[modifier] ifplugd
démon qui démarre et arrête les interfaces lorsqu'un câble Ethernet est branché ou débranché. Il sait aussi détecter les associations à un point d'accès ou lorsqu'un nouveau point d'accès devient disponible.
[modifier] resolvconf
permet de faciliter la maintenance du fichier /etc/resolv.conf
[modifier] Installation
apt-get install ifplugd wpasupplicant resolvconf guessnet
[modifier] Configuration
On va commencer par spécifier les AP auxquels on souhaite que wpasupplicant s'associe quand ceux ci sont détectés. Les fichiers de configuration de wpasupplicant se trouvent dans: /etc/default/wpasupplicant /etc/wpa_supplicant.conf (si celui-ci n'existe pas, créez le)
[modifier] /etc/default/wpasupplicant
ENABLED=1 OPTIONS="-i eth2 -D wext -w -c /etc/wpa_supplicant.conf"
Dans mon cas, comme vous pouvez voir, mon wifi se trouve sur eth2, le driver pour ipw2200 est wext (et non ipw, car celui-ci bug), et le fichier de configuration est /etc/wpa_supplicant.conf. N'hésitez donc pas à modifier les OPTIONS en fonction de votre environnement (cfr man wpa_supplicant).
[modifier] /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
//Specifiez ensuite les AP auxquels vous souhaitez vous connecter
//Voici un exemple avec une clé WEP
network={
ssid="monEssid"
key_mgmt=NONE
wep_key0=maCle // ou wep_key0="maCle" si texte et non hexa
wep_tx_keyidx=0
priority=1
}
[modifier] dpkg-reconfigure ifplugd
Choisissez auto pour les interfaces à surveiller (les surveillera toutes) et all pour les interfaces hotplug (comme ça on prend aucun risque). Laissez les paramètres par défaut que propose ifplugd pour son lancement.
[modifier] /etc/network/interfaces
Voici un exemple selon ma configuration:
#The loopback network interface auto lo iface lo inet loopback mapping eth0 script /usr/sbin/guessnet-ifupdown map default: default-eth0 map timeout: 3 map verbose: true mapping eth2 script /usr/sbin/guessnet-ifupdown map default: default-eth2 map timeout: 3 map verbose: true #LOCAL ELEC iface esi-l504 inet static test-peer address 192.168.192.1 mac 00:A0:24:75:95:E6 dns-nameservers 152.158.16.48 152.158.2.48 address 192.168.192.12 netmask 255.255.192.0 #LOCAL MVH iface esi-l601 inet static test-peer address 172.16.0.4 mac 00:80:5F:F4:9A:7D dns-nameservers 172.16.0.4 address 172.16.0.218 netmask 255.255.255.0 gateway 172.16.0.4 #WIFI MAISON iface maison inet dhcp test-peer address 192.168.2.1 mac 00:C0:49:6D:E0:12
Comme vous pouvez voir, dans mon exemple j'automatise au niveau de 3 réseaux (dont un wifi). En fait on va chercher l'adresse IP du routeur sur le réseau et vérifier son adresse mac (trouvée par la commande arp précédemment). Si IP + mac correspondent, je configure mes paramètres tcp-ip de telle ou telle façon. Comme vous pouvez le remarquer, ici plus de auto eth0 ou autre. Simplement ceci suffit. Et bien sur ce fichier ne s'occupe pas de savoir si on est en wifi ou filaire, il se limite a tester l'ip du routeur + sa mac et va adapter la configuration selon. Donc si wpasupplicant a bien fait son travail, ça ne posera aucun problème.
Maintenant que tout est presque fait, il reste une dernière chose à faire.
[modifier] wpasupplicant en daemon
cp /usr/share/doc/wpasupplicant/examples/wpa_supplicant.init-daemon /etc/init.d/wparoamd chmod +x /etc/init.d/wparoamd vim /etc/init.d/wparoamd INTERFACE="eth2" // Dans mon cas du moins eth2 est le wifi CONFIG="/etc/wpa_supplicant.conf" DRIVER="wext" update-rc.d wparoamd start 15 2 3 4 5 . stop 90 0 1 6 . invoke-rc.d wparoamd start
[modifier] Conclusion
Nous arrivons à la fin de ce how to, j'espère avoir été assez clair dans mes explications. Pour ma part tout fonctionne très bien à l'exception d'une petite chose que je n'étalerai pas ici, mais bien sûr le how to sera mis à jour dès le problème résolu.

