Configurer un accès Wifi itinérant avec wpa

Il vous faudra dans beaucoup de cas disposer sur une clé USB du firmware propriétaire correspondant à votre carte et l'installer sur votre système. Reportez-vous pour le faire à firmwares non-libres en paquets .deb sur une clé.

Aperçu général

wpa-roaming est une méthode graphique ou en mode console vous permettant de choisir dans une liste un réseau sans fil auquel vous connecter.

Si vous utilisez cette méthode de connexion alors qu'aucun réseau cablé n'est connecté à votre machine, Wlan0 sera appelé en priorité pour vous connecter à votre réseau Wifi préféré, à un réseau ouvert public ou tout autre réseau que vous auriez pre-déterminé. Si vous vous connectez par liaison cablée alors, l'établissement de cette connexion entrainera la déconnexion instantannée du Wifi. Quanf vous débrancherez le câble le Wifi se réactivera automatiquement.

Configuration du réseau

En tant que root vous adapterez votre fichier /etc/network/interfaces afin qu'il ressemble à ce qui suit. (l'identifiant de l'interface est sujet à variations):

# l'interface réseau loopback
auto lo
iface lo inet loopback


#Ajout par l'utilisateur
allow-hotplug wlan0
iface wlan0 inet manual
  wpa-roam /etc/wpa_supplicant/wpa-roam.conf

#Cette ligne doit toujours se trouver ici
iface default inet dhcp

Ensuite wpa_supplicant aura besoin d'un fichier de configuration, c'est wpa-roam.conf

cp /usr/share/doc/wpasupplicant/examples/wpa-roam.conf /etc/wpa_supplicant/wpa-roam.conf

Utilisez un éditeur de texte pour ouvrir le fichier

<editeur> /etc/wpa_supplicant/wpa-roam.conf

Décommentez la ligne 30 (en enlevant # en début de ligne). Vous devez le faire afin que la configuration soit prise en compte:

update_config=1

Pour connecter une machine en vue d'une connexion immédiate à un réseau sécurisé, qu'il s'agisse en fonction du contexte d'une sécurisation WEP ou WPA-WPA2PSK, décommentez les lignes (en enlevant #:

Exemple WEP:

network={
	ssid="debian" #Un réseau WEP dans cet exemple
	key_mgmt=NONE
	wep_key0=6162636465
	wep_tx_keyidx=0
}

Exemple WPA:

network={
	ssid="aptosid_Worldwide" #Un réseau WPA dans cet exemple
	psk="mysecretpassphrase"
}

La suite protège votre configuration wpa-roam.conf de tout accès extérieurs. C'est indispensable car votre clé scrète est écrite dans ce fichier. Faites:

chmod 600 /etc/wpa_supplicant/wpa-roam.conf

Activez la connexion sans fil :

ifup wlan0

Vérifiez ensuite que vous êtes bien connecté au réseau choisi:

wpa_cli status

Le retour de la commande doit ressemble à ceci:

Selected interface 'wlan0'
bssid=94:0c:6d:aa:f4:42
ssid=aptosid_Melbourne
id=3
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.1.102

Si vous ne voyez s'afficher aucune adresse IP, c'est que la connexion ne s'est pas établie. Dans ce cas re-vérifiez votre configuration après avoir stoppé le Wifi sur wlan0:

wpa_action wlan0 stop

En cas de besoins spécialisés en terme de configurations réseau reportez-vous ici

Pour permettre de basculer de réseaux cablés à réseaux sans fil

Lisez d'abord Basculer du câble au Wifi car si votre configuration est incorrecte le basculement souhaité ne pourra s'établir.

Après avoir activé ifplugd la configuration devra ressembler à ceci:

auto lo
iface lo inet loopback

# contrôlé par ifplugd ... n'utilisez ni allow-hotplug ni d'option auto
iface eth0 inet dhcp

#Ajouts par l'utilisateur
allow-hotplug wlan0
iface wlan0 inet manual
  wpa-roam /etc/wpa_supplicant/wpa-roam.conf

#Cette ligne doit toujours figurer ici
iface default inet dhcp

Utilisation de wpa-roam.conf avec spécification manuelle de la configuration des réseaux

Au moyen des options IDString et Priority vous pouvez assigner des priorités pour la connexion utilisée par défaut au démarrage. La plus haute priorité est conférée par la valeur 1000, la plus basse à 0. Vous devrez aussi specifier l'identifiant id_str dans /etc/network/interfaces.

La syntaxe dans votre fichier /etc/network/interfaces.

La première strophe est pour la connexion en DHCP, la seconde option pour une connexion par IP fixe. Pour ajuster ces paramètres:

# id_str="home_dhcp"
iface home_dhcp inet dhcp

#Cette ligne doit toujours figurer ici
iface default inet dhcp

# id_str="home_static"
iface home_static inet static

        address 192.168.0.20
        netmask 255.255.255.0
        network 192.168.0.0

        broadcast 192.168.0.255
        gateway 192.168.0.1
Exemples pratiques

Imaginon que vous vouliez vous connecter automatiquement à votre connexion domestique Wifi une fois chez vous, assignez-lui une id_string "maison" et une priorité "15". Si vous vous deplacez et voulez pouvoir vous connecter à n'importe quel réseau ouvert disponible sans mot de passe, donnez-lui une IDString 'traqueur" et une priorité "1" (très basse). Mais s'il vous plait assurez-vous que votre connexion soit légale et déconnectez-vous s'il s'agi d'un réseau manifestement ouvert par erreur et non intentionnellement.

Les strophes dans /etc/network/interfaces pour notre exemple:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# L'interface loopback
# ajouée automatiquement à la mise-à-jour
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
  wpa-roam /etc/wpa_supplicant/wpa-roam.conf

#this line must always be here
iface default inet dhcp

iface maison inet dhcp
iface traqueur inet dhcp

Dans /etc/wpa_supplicant/wpa-roam.conf (SSID et mots de passe sont changés ou juste expliquées) pour notre exemple:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="mo,_ssid"
        scan_ssid=1
        psk=123ABC  ##ici la phrase de passe en code hexadécimal!!
#       psk="mot-de-passe_en_ascii"   ##vous ne devriez pas en avoir besoin
        key_mgmt=WPA-PSK
        pairwise=TKIP
        group=TKIP
        auth_alg=OPEN
        priority=15
        id_str="maison"
}

network={
        ssid=""
        scan_ssid=1
        key_mgmt=NONE
        auth_alg=OPEN
        priority=1
        disabled=1   ## pas de de connexion automatisée, celle-là recours à wpa_cli ou wpa_gui
        id_str="traqueur"
}

L'option "disabled=1" fera que vous ne serez pas connecté automatiquement à un réseau ouvert déterminé, mais que vous devrez activer le démon itinérant via wpa_gui ou wpa_cli. Si peu importe et que vous voulez vous connecter sans égard à l'identité du réseau, supprimez purement et simplement la ligne en question ou commentez-là en y ajoutant un # en début de ligne.

Cryptage WEP

Pour activer en permanence le cryptage WEP dans votre fichier, la syntaxe sera:

network={
	ssid="réseau wep de l'exemple"
	key_mgmt=NONE
	wep_key0="abcde"
	wep_key1=0102030405
	wep_tx_keyidx=0
}

Compléments

1. Facile à exploiter

Une fois fixée, vous pouvez réutiliser votre configuration sur d'autres machines pour d'autres contrôleurs réseau. Copiez juste /etc/network/interfaces (ajustez les noms des interfaces au contexte) et /etc/wpa_supplicant/wpa-roam.conf dans l'autre machine. Nul besoin d'installer quoique ce soit d'autre.

2. Sauvegarde

Celà peut être une onne idée de sauvegarder /etc/network/interfaces et /etc/wpa_supplicant/wpa-roam.conf, mais mieux en les cryptanten, car ils continnent quand-même des informations sensibles....

Une bonne méthode pour faire une sauvagarde cryptée des fichiers de configurations c'est d'utiliser tar avec gpg. En tant que root:

tar -cf- /etc/network/interfaces /etc/wpa_supplicant/wpa-roam.conf  |  gpg -c > backup_name.tar.gpg

A file has now been created in $ HOME:
backup_name.tar.gpg

To list the contents of the backup_name.tar.gpg file:

gpg -d -o - backup_name.tar.gpg  | tar vtf -

To extract and decrypt the contents of the archive backup_name.tar.gpg file:

gpg -d -o - backup_name.tar.gpg  | tar vxf -
3. SSIDs Cachés

Les SSIDs cachés sont détectés quand scan_ssid=1 est configuré dans le bloc correspondant au réseau.

Sécuriser sommairement les modems/routeurs wifi

Si vous avez contrôle sur un modem/routeur wifi, il existe plusieurs précautions de base pour le protéger des intrusions.

Choix des protocoles de base
Phrases de passe / mots de passe

Pour une phrase de passe / un mot de passe réellement résistants et pas du tout évidents à mémoriser, utilisez pwgen dans un terminal (lire également: man pwgen):

$ pwgen -s 63 1
VltnfGmGKXovVv2rmrCFFXBZ55Mij5bA6WytVJnVoKUqRn6dfjldG6MBrRo0Cdi

Sans -s vous obtiendrez des mots usuels. quoiqu'il arrive peu probable que vous souhaitiez ceci:

$ pwgen 8 3
Sooxae2s Niew9ugh Hi7eeloo

Une fois votre phrase de passe / mot de passe généré(e) stockez-la dans fichier texte sur une clé USB et appliquez-là sur vos différentes machines utilisatrices du wifi. Ne les stockez pas sur un des ordinateurs.

Un exemple de configuration de routeur:
Version: WPA2-PSK
Encryption: AES
PSK Password: VltnfGmGKXovVv2rmrCFFXBZ55Mij5bA6WytVJnVoKUqRn6dfjldG6MBrRo0Cdi
Content last revised 21/08/2012 1620 UTC