La gestion du wifi peut passer par plusieurs biais:
sudo iwlist scanning | less sudo iwlist wlan0 scanning | less
Exemple de résultat:
Cell 03 - Address: F4:CA:E5:EA:37:AD Channel:1 Frequency:2.412 GHz (Channel 1) Quality=26/70 Signal level=-84 dBm <=========== Encryption key:off <=========== ESSID:"FreeWifi" <=========== Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 22 Mb/s 6 Mb/s; 9 Mb/s; 12 Mb/s Bit Rates:18 Mb/s; 24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=00000285527f96a4 Extra: Last beacon: 220ms ago IE: Unknown: 00084672656557696669 IE: Unknown: 010882848B962C0C1218 IE: Unknown: 030101 IE: Unknown: 2A0104 IE: Unknown: 3205243048606C IE: Unknown: 2D1A6C0003FFFFFF0001000000000000000100000000000000000000 IE: Unknown: 3D1601000400000000000000000000000000000000000000 IE: Unknown: 7F080000000000000040 IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
Si on connait approximativement le nom du réseau wifi, on peut se contenter de n'afficher que la liste des noms:
sudo iwlist scanning | grep -i essid
sudo iwconfig wlan0 essid "FreeWifi" && dhclient wlan0
On spécifie le nom du réseau (FreeWifi) puis on demande une adresse ip via le service dhcp pour l'interface wifi (wlan0).
Si on est amené à switcher de réseau (association/maison/travail/amante/…), il peut être intéressant de ne pas avoir à faire cette manipulation à chaque fois :) On peut donc utiliser un gestionnaire de configuration: ifscheme.
sudo aptitude install ifscheme
Puis éditer le fichier des interfaces réseaux pour ajouter:
allow-hotplug wlan0 mapping wlan0 script ifscheme-mapping iface wlan0-maylug inet dhcp wpa-ssid "Businesslivebox_987698769876" wpa-psk "SUPRA_PASSWORD_DE_LA_MORT" iface wlan0-home inet dhcp wpa-ssid "wookie" wpa-psk "better with butter"
Ensuite il suffit de choisir le schéma à utiliser puis d'activer l'interface:
sudo ifscheme maylug sudo ifup wlan0
Et une fois de retour à la maison:
sudo ifscheme home sudo ifup wlan0
sudo chmod 0600 /etc/networks/interfaces
Jusqu'à récemment, les deux solutions précédentes ne m'ont pas fait défaut: besoin de me connecter à un réseau un peu plus “exotique” qui ne voulait pas fonctionner via ifscheme ( et qui n'envoie pas d'informations sur la configuration à utiliser … ).
La solution: passer par wpa_supplicant + wpa_gui (pour demander le mot de passe):
sudo aptitude install wpasupplicant wpagui
ctrl_interface=/var/run/wpa_supplicant #update_config=1 # =1 -> autoriser wpa_gui à modifier la configuration network={ ssid="network_NAME" proto=RSN key_mgmt=WPA-EAP pairwise=CCMP auth_alg=OPEN eap=TTLS identity="IDENTIFIANT_DE_CONNECTION" # password="AVOID" ca_cert="/usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt" #phase1="peaplabel=0" phase2="auth=PAP" # disabled=1 # Désactiver la connection automatique }
Lancer d'abord wpa_gui (permet de saisir le mot de passe de connection) puis lancer wpa_supplicant:
sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf # En mode deamon
Aka: agrégation de cartes réseaux
Installer l'outil nécessaire:
sudo aptitude install ifenslave
Puis éditer la configuration réseau:
# The first network interface auto eth0 iface eth0 inet manual # The second network interface auto eth1 iface eth1 inet manual # Bonding between eth0 + eth1 auto bond0 iface bond0 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 network 192.168.0.254 slaves eth0 eth1 bond_mode active-backup bond_miimon 100 bond_downdelay 200 bond_updelay 200 ##############################
Charger le module noyau une première fois:
sudo modprobe bonding
On peut ensuite tenter un redémarrage du réseau:
sudo service networking restart
Une fois le tout validé, eth1 devrait prendre la main si eth0 venait à tomber :)
Il est tout d'abord nécessaire d'installer un paquet supplémentaire:
aptitude install bridge-utils
Et ensuite on peut modifier le fichier qui liste les interfaces réseaux:
# The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet manual auto br0 allow-hotplug br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0
On peut ensuite redémarrer le réseau:
service networking restart
Quand c'est pour un serveur, j'aime bien redémarrer la machine pour m'assurer que tout se passe correctement.
La définition de toutes les cartes réseaux qui ont pu être installées sur un système Debian se trouve dans le fichier:
# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x8086:0x1503 (e1000e) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="4c:72:b9:43:39:15", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Si on se retrouve dans le cas d'une carte réseau hs qui vient d'être changée. On a donc la seule carte réseau qui se retrouve avec eth1 au lieu de eth0 par exemple. Ça peut foutre une configuration réseau en l'air . Il suffit de supprimer toutes les lignes du fichier et il sera automatiquement régénéré au prochain démarrage de la machine.
Si on possède plusieurs cartes réseaux, on peut se contenter de les renommer manuellement.
Voilà qu'une ancienne adresse MAC était restée configurée das le fichier /etc/udev/rules.d/70-persistent-net.rules faisant passer une interface réseau eth1 pour une interface eth3.
Nous venons de voir qu'il suffit de modifier le fichier des règles udev persistantes pour qu'au prochain démarrage, tout redevienne comme avant. Sauf que si vous ne souhaitez pas re-démarrer, voci comment procéder :
# ifconfig eth3 down
# udevadm control --reload-rules
# udevadm trigger --attr-match=subsystem=net
# /etc/init.d/udev restart
# ifconfig -a | grep -i --color hwaddr # ip link set dev eth3 name eth1 # ifconfig eth1 up # dhclient eth1