Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Protection Wi-Fi par WPA

Page en cours de Mise à jour.

Présentation

WPA (Wi-Fi Protected Access) est un mécanisme pour sécuriser les réseaux sans-fil Wi-Fi. Il est utilisé en remplacement de l'ancien système WEP.

Sécurité

  • Le WEP est un système dépassé en terme de sécurité. Il n'est pas conseillé d'utilisation.
  • Le WPA ne se trouve plus que sur les anciens systèmes et n'est pas considéré comme complètement sécurisé même s'il offre déjà une très bonne protection.
  • Le WPA2 est présent sur tous les nouveaux matériels certifié Wi-Fi. C'est le seul à être considéré comme complètement sécurisé et est donc privilégié d'utilisation.

La configuration de votre connexion WPA peut se réaliser directement par interface graphique.
Cette méthode est conseillée pour les utilisateurs novices.
Référez-vous à votre logiciel de configuration réseau pour réaliser votre connexion WPA.

Il se peut que votre matériel ne soit pas directement supporté par ces logiciels.
La méthode suivante est recommandée si vous êtes dans ce cas ou si vous voulez faire une installation propre de votre réseau.

! À déplacer si nécessaire sur la page de Network Manager !

La méthode la plus simple, est d'utiliser NetworkManager. La connexion se fera depuis l'interface graphique de l'utilisateur. Cette solution ne lance pas la connexion de façon automatique au démarrage de la machine, ce qui la rend insuffisante dans certains cas particuliers, notamment s'il y a besoin de partager des ressources du réseau de façon automatique (disques durs par "nfs" dans "/etc/fstab" par exemple).

Pour l'installer (si pas disponible) voir la page consacrée à NetworkManager.Inerface graphique : network-manager-gnome ou knetworkmanager.

Il suffit ensuite de cliquer sur l'icône dans la zone de notification, l'outil montre alors la liste des réseaux sans fil détectés. En cliquant sur l'un des réseaux, on peut alors entrer la clé demandée, en précisant son type, WEP ou WPA. On peut aussi créer un réseau sans fil en utilisant une clé WPA.

Si vous ne souhaitez pas utiliser le DHCP, il faut réaliser la connexion en deux temps : une fois pour vous connecter au réseau normalement en utilisant le DHCP (s'il ne marche pas alors vous êtes éjecté de la connexion) puis modifier les paramètres IP de votre connexion en utilisant bouton droit/modification des connexions/onglet "Sans fil". Sélectionnez la connexion sans DHCP, utilisez ou non le trousseau de clef (plus sécurisé), le troisième onglet vous propose toutes les informations de connexion IP.

Présentation

WPA Supplicant est un service utilisé pour réaliser votre connexion WPA.

Pré-requis

  • Votre carte Wi-Fi doit être reconnue et fonctionner. Si ce n'est pas le cas, reportez vous à la section wifi de l'aide.
  • WPA Supplicant gère une majeure partie des systèmes Wi-Fi, néanmoins vous pouvez vérifier si votre carte est compatible sur leur site.
  • Vous devez installer WPA Supplicant si ce n'est déjà fait :
sudo apt-get install wpasupplicant

1# Méthode Simple et Rapide

Cette méthode est utilisée si vous n'avez qu'une connexion WPA simple et fixe à un réseau.
Tous les paramètres seront dans le fichier de configuration réseau

Configuration

  • Éditer le fichier /etc/network/interfaces
sudo gedit /etc/network/interfaces

Chacune de vos interfaces réseau et leurs configurations apparaissent dans ce fichier.
Faîtes attention de manier ce fichier avec précaution.

  • À la suite de la configuration réseau de votre interface Wi-Fi (en général nommée "wlan0"), indiquer les paramètres de la connexion WPA :
auto wlan0
iface wlan0 inet dhcp
   wpa-ssid nom_de_votre_connexion_wifi
   wpa-psk mot_de_passe_de_votre_connexion

Les paramètres possibles

  • wpa-ssid <nom de votre connexion> : Définit le nom du réseau Wi-Fi auquel se connecter

Exemple :

wpa-ssid Livebox-3818
  • wpa-bssid <adresse MAC de votre point d'accès> : Définit l'adresse éthernet de votre point d'accès auquel se connecter

Exemple :

wpa-bssid 01:2a:3b:4c:5d:6e
  • wpa-psk <mot de passe de votre connexion> : Votre mot de passe WPA (peut être votre mot de passe directement en ASCII ou en Héxadécimal)

Exemple 1 :

wpa-psk totomaison


Exemple 2 :

wpa-psk 2f38e12c698a
  • wpa-key-mgmt <protocole> : Définit les protocoles de connexion autorisés. Les valeurs possibles sont NONE, WPA-PSK, WPA-EAP et IEEE8021X.

Exemple WPA/WPA2 classique autorisé :

wpa-key-mgmt WPA-PSK
  • wpa-group <chiffrage> : Définit les modes de chiffrage autorisés. Les valeurs possibles sont CCMP, TKIP, WEP104 et WEP40. CCMP correspond à AES.

Exemple AES autorisé :

wpa-group CCMP


Exemple AES et TKIP autorisés :

wpa-group CCMP TKIP
  • wpa-pairwise <chiffrage par paires> : Définit les modes de chiffrage par paires autorisés pour le WPA/WPA2. Les valeurs possibles sont CCMP, TKIP et NONE.

Exemple AES et TKIP autorisés :

wpa-pairwise CCMP TKIP
  • wpa-auth-alg <système d'authenfication> : Définit les systèmes d'authentification autorisés. Les valeurs possibles sont OPEN (pour le WPA/WPA2), SHARED (pour le WEP) et LEAP.

Exemple WPA/WPA2 :

wpa-auth-alg OPEN
  • wpa-proto <norme WPA autorisée> : Définit les normes WPA autorisées. Les valeurs possibles sont WPA et RSN. RSN correspond à WPA2.

Exemple WPA2 seulement :

wpa-proto RSN


Exemple WPA et WPA2 :

wpa-proto WPA RSN
  • wpa-scan-ssid <0 ou 1> : Autorise ou non le scan des requêtes (normallement autorisé).

Exemple :

wpa-scan-ssid 1
  • wpa-ap-scan <0 ou 1 ou 2> : Définit le mode de sélection du point d'accès. 0: IEEE8021X, 1: classique, 2: sécurisé (pour le mode ad-hoc notamment).

Exemple point d'accès classique :

wpa-ap-scan 1


Exemple ad-hoc (PC à PC) :

wpa-ap-scan 2



wpa-identity et wpa-password sont pour les utilisateurs avancés réalisant une connexion d'entreprise EAP :

  • wpa-identity <nom d'utilisateur> : Définit le nom d'utilisateur de la connexion EAP
  • wpa-password <mot de passe> : Définit le mot de passe utilisateur de la connexion EAP

Quelques exemples

Connexion à un point d'accès en WPA2 AES
auto wlan0
iface wlan0 inet dhcp
   wpa-ssid Livebox-3818
   wpa-ap-scan 1
   wpa-scan-ssid 1
   wpa-key-mgmt WPA-PSK
   wpa-group CCMP
   wpa-proto RSN
   wpa-psk totomaison
Connexion à un point d'accès en WPA/WPA2 TKIP/AES
auto wlan0
iface wlan0 inet dhcp
   wpa-ssid Livebox-3818
   wpa-ap-scan 1
   wpa-scan-ssid 1
   wpa-key-mgmt WPA-PSK
   wpa-group CCMP TKIP
   wpa-proto RSN WPA
   wpa-psk totomaison
Connexion Ad-Hoc (PC à PC) TKIP
auto wlan0
iface wlan0 inet static
   address 192.168.0.12
   netmask 255.255.255.0
   gateway 192.168.0.1

   wpa-ssid ReseauJP
   wpa-ap-scan 2
   wpa-scan-ssid 1
   wpa-key-mgmt WPA-PSK
   wpa-group CCMP
   wpa-pairwise NONE
   wpa-proto RSN
   wpa-psk totomaison

2# Méthode Complète et Propre

! Fin de la partie mise à jour !
La suite est en cours de mise en forme / récupération de données utiles

Pour vous connecter en WPA, le fonctionnement est similaire à une connexion en WEP, seule la syntaxe diffère légèrement.

  • Editez (avec gedit sous Ubuntu ou kate sous Kubuntu) le fichier /etc/network/interfaces avec les droits de super-utilisateur. Ajoutez-y le contenu suivant en adaptant les paramètres à votre réseau :

Si vous utilisez un serveur DHCP sur votre routeur : Vous devriez avoir deux lignes à changer si vous utilisez DHCP : wpa-ssid, qui est le SSID de votre routeur, et wpa-psk, qui est la clé WPA que vous utilisez, chiffrée en hexadécimal.

auto wlan0

iface wlan0 inet dhcp
   wpa-conf managed
   wpa-ap-scan 1
   wpa-scan-ssid 1
   wpa-ssid NEUF_1234
   wpa-key-mgmt WPA-PSK
   wpa-psk 7a62bf5d5f2e76c851a334e5f3f3924e57449d22cfce181c30256c9165fee065

Pour une IP fixe : Si vous utilisez une IP fixe, il faut aussi préciser l'adresse du routeur, votre adresse et le masque de sous-réseau.

auto wlan0

iface wlan0 inet static
address 192.168.0.15
netmask 255.255.255.0
gateway 192.168.0.254
   wpa-conf managed
   wpa-ap-scan 1
   wpa-scan-ssid 1
   wpa-ssid NEUF_1234
   wpa-key-mgmt WPA-PSK
   wpa-psk 7a62bf5d5f2e76c851a334e5f3f3924e57449d22cfce181c30256c9165fee065

Remarque : L'outil wpa_passphrase vous permet de gagner un peu de temps car il vous génère la clef en hexadécimal une fois pour toutes :

wpa_passphrase <ssid> <passphrase>

Remarque 2 : Il est possible que votre carte Wi-Fi ne soit pas sur l'interface wlan0 mais sur l'interface ath0, par exemple. Vous pouvez vérifier cela avec la commande suivante :

iwconfig

Remarque 3 : Si votre routeur est configuré pour ne pas diffuser son SSID, il est conseillé d'utiliser wpa-ap-scan 2.

Ne fonctionne pas avec le Heron Hardi La réponse au lancement de l'interface est :

wpa_supplicant: cannot read contents of managed
run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1
wpa_supplicant: cannot read contents of managed
run-parts: /etc/network/if-up.d/wpasupplicant exited with return code 1

méthode pour Dapper

auto <interface>
iface <interface> inet dhcp
    wpa-driver <pilote>
    wpa-ssid <essid>
    wpa-key-mgmt WPA-PSK
    wpa-psk "<ma_clef_privée_en_clair>"

pour Ubuntu 7.04 Feisty Fawn

(FIXME apparemment plus sous HARDY) :

auto <interface>
iface <interface> inet dhcp
wireless-essid default
wireless-key-mgmt WPA-PSK
wireless-key "<ma_clef_privée_en_clair>"

À noter que la ligne auto n'est nécessaire que si l'on souhaite activer le Wi-Fi au démarrage. Dans le cas contraire, on supprime la ligne et on pourra utiliser au besoin la commande :

 ifup <interface> 
=== Test === Activez manuellement l'interface pour cette fois :
sudo ifup <interface>

Vérifiez que vous êtes connecté.

Cependant cette méthode pose parfois des problèmes au démarrage. Aussi il est possible de faire appel au fichier de configuration /etc/wpa_supplicant.conf directement dans /etc/network/interfaces. Ce fichier doit respecter la syntaxe définie par wpa_supplicant.

auto <interface>
iface <interface> inet dhcp
     wpa-conf /etc/wpa_supplicant.conf

Cette partie de la documentation n'a pas été mise à jour depuis à priori plusieurs mois. Si des utilisateurs réussissent à la faire fonctionner avec Hardy Heron ou Intrepid Ibex, merci de modifier le Wiki (en précisant les éventuelles différences avec le tutoriel actuel). FIXME

Installation

  • Depuis Dapper Drake, aucune manipulation n'est nécessaire pour pouvoir utiliser la protection WPA.

Eviter NetworkManager

Vérifier au préalable que le service NetworkManager est désactivé. En effet, celui-ci n'est pas compatible avec wpa_supplicant.

La commande suivante permet de savoir si le NetWorkmanager est lancé :

 ps aux|grep NeworkManager  

Avant Ubuntu 9.10 (Karmic Koala) , Networkmanager est un service. On l'arrête pour la durée de la session à l'aide de la commande:

 sudo /etc/init.d/networkmanager stop 

Si la suppression est pérenne, on peut utiliser la commande :

 sudo update-rc.d -f NeworkManager remove 

qui évitera qu'il se lance au démarrage.

En cas de souci la réversibilité pourra être assurée par la commande :

  sudo update-rc.d Networkmanager start 50 2 3 4 5 . 

Pour Ubuntu 9.10 (Karmi Koala) , Networkmanager est lancé par init via le mécanisme upstart (cf. man 5 init). O l'arrête pour la durée de la session à l'aide de la commande

 sudo stop network-manager 

. On peut le supprimer à chaque montage de l'interface en utilisant la commande pre-up. Une autre méthode via le service upstart et le fichier /etc/init/network-manager.conf doit également exister (à documenter).

Configuration du WPA

Pour vous connecter en WPA, il faut d'abord créer un fichier de configuration pour le WPA.

  • Editez (avec gedit sour Ubuntu ou kate sous Kubuntu) le fichier /etc/wpa_supplicant.conf avec les droits de super-utilisateur. Recopiez-y le contenu suivant en adaptant les paramètres à votre réseau :
ctrl_interface=/var/run/wpa_supplicant

ap_scan=1

network={
    ssid="<MON_ESSID>"
    scan_ssid=1
    proto=WPA
    key_mgmt=WPA-PSK
    #psk="<Ma_clef_en_ascii>"
    psk=<Ma_clef_en_hexadécimal>
        priority=5
}

Remarque : L'outil wpa_passphrase en console vous permet de gagner un peu de temps car il vous génère la clef en hexadécimal une fois pour toutes :

wpa_passphrase <ssid> <passphrase>

La ligne psk="<Ma_clef_en_ascii>" est commentée (signe # au début de la ligne) : elle n'est pas utilisée. Si vous n'avez pas généré votre clef en hexadécimal il faut la décommenter et commenter la ligne suivante.

Remarque 2 : chez moi, un problème de démarrage n'a pas permis d'accéder à /var/run/wpa_supplicant. En supprimant la première ligne du fichier (ctrl_interface=…) ça a très bien fonctionné.

Configuration détaillée du wpa_supplicant

(par Lstr le 10 juin 06)

Voici comment remplir votre fichier 'wpa_supplicant.conf'. (Remarque : Tout ce qui est derrière le '#' est un commentaire, non pris en compte par le système)

#On indique tout d'abord où se situe le programme (socket avec wpa_cli...)
ctrl_interface=/var/run/wpa_supplicant

#On protège l'accès à wpa_supplicant en l'attribuant à un groupe
#Le groupe peut être un identifiant (gid) ou un nom de groupe
#Par défaut le gid est à 0 pour signifier que c'est le root qui protège l'accès.
#ctrl_interface_group=wheel  #Un exemple de nom de groupe
ctrl_interface_group=0

#On définit la version d'EAPOL (un moyen de transport de données EAP) >> Version : IEEE 802.1X/EAPOL
#Pour info, wpa_supplicant gère la version 2 (IEEE 802-1X-REV-d8) mais il se peut qu'il y ait des soucis avec certaines cartes.
#On recommande donc l'utilisation de la version 1
eapol_version=1

#On définit le mode de sélection du point d'accès (AP : Access Point)
#1 : Configuration classique
#0 : Utilisé pour le protocole IEEE 802.1X (et les réseaux établis).
#2 : Associe les points d'accès dans un mode sécurisé. !!!Utilisé pour le mode Ad-Hoc!!!
#    Associe le SSID (nom de votre réseau) mais pas le BSSID (n° attribué à votre carte réseau).
#    A utiliser si vous avez une clef installée sous NDIS(WRAPPER) pour utiliser pleinement votre réseau :
#     dans ce cas le block network devra comprendre les informations 'key_mgmt', 'pairwise', 'group' et les variables de protocole.
ap_scan=1

#On configure la ré-authentification rapide pour protocoles EAP
#Par défaut, déjà initialisé puisque sa désactivation n'a pas lieu d'être apparemment.
fast_reauth=1

#On peut configurer un support de moteur OpenSSL
#Non-abordé

#On peut indiquer le pilote utilisé mais ce n'est pas forcément recommandé
#driver_param="nom=valeur"

#On configure son réseau :

#Chaque réseau différent utilise un bloc 'network' propre
#Contenu des blocs :
#
#disabled:
#	=0 : réseau authorisé (par défaut)
#	=1 : réseau interdit
#
#
#ssid: 
#       "nom de votre réseau" : entre guillemets si c'est une chaîne de caractères
#       1f25e68 : directement si c'est un nom de réseau en hexadecimal
#
#
#scan_ssid:
#	=0 : ne scanne pas les requêtes des réseaux (par défaut)
#	=1 : scanne les requêtes (recommandé)
#
#
#bssid: 3f:58:56:fe:c9:68 : N° attribué à votre carte réseau (optionnel et non-recommandé surtout si votre carte change de BSSID)
#
#
#priority: 0 : Indique la priorité du réseau.
#
#
#mode:
#    =0 : Infrastructure ('Managed') (par défaut)
#    =1 : IBSS (ad-hoc, peer-to-peer)
#Le mode ad-hoc est utilisé pour un réseau de dongle :
# -il n'accepte que les modes key_mgmt=NONE (avec possibilité de clef WEP) ou WPA-NONE (avec groupe TKIP/CCMP)
# -plus important, ap_scan=2 obligatoirement.
# -enfin le bloc devra comporter : proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (ou CCMP(AES), mais pas les 2), et la clé psk devra être donnée.
#
#
#proto: protocole
#     =WPA : WPA(1) (WPA/IEEE 802.11i/D3.0)
#     =RSN : WPA2 (IEEE 802.11i) (par défaut)
#
#
#key_mgmt: encryption
#        =WPA-PSK : WPA 'pre-shared key' (requièrt une clef PSK)
#        =WPA-EAP : WPA utilisant une authentification EAP (peut utiliser un programme externe (Xsupplicant)).
#        =IEEE8021X : IEEE 802.1X utulisant une authentification EAP et, optionnellement la génération de clefs WEP dynamiques.
#        =NONE : Pas de WPA : clef WEP ou connexion directe.
#        =WPA-NONE : Pour réseaux Ad-Hoc (possibilité de groupage TKIP ou CCMP(AES))
#Par défaut : WPA-PSK WPA-EAP
#
#
#auth_alg: système d'authentification du réseau
#        =OPEN : pour WPA et WPA2
#        =SHARED : pour WEP
#        =LEAP : pour LEAP sur réseau EAP


#Par défaut : Sélection autmatique
#
#
#pairwise: !A ne pas confondre avec le 'group' qui est plus connu!
#        =CCMP : AES (CBC-MAC : RFC 3610, IEEE 802.11i/D7.0)
#        =TKIP : (IEEE 802.11i/D7.0)
#        =NONE : Utilisé pour le mode ad-hoc principalement
#Par défaut : CCMP TKIP
#
#
#group: Chiffrage (courant)
#     =CCMP : AES (RFC 3610, IEEE 802.11i/D7.0)
#     =TKIP : (IEEE 802.11i/D7.0)
#     =WEP104 : WEP avec clef 104bits
#     =WEP40 : WEP avec clef 40bits (IEEE 802.11)
#Par défaut : CCMP TKIP WEP104 WEP40
#
#
#psk: clef WPA (256bits)
#   ="mon mot de passe" : entre guillemets pour un mot de passe 'texte' (entre 8 et 63caractères compris)
#   =2effca35695fe31c3b : pour une clef hexadecimale (peut être générée avec  la commande 'wpa_passphrase "ssid" "mot de passe"')
#Non-utilisé en mode EAP.
# This field is not needed, if WPA-EAP is used.
#
#
#Paramètrage EAP
#Non-Rédigé
#

#Exemple de blocs:

#WPA-PSK simple
network={
	ssid="simple"
	psk="very secret passphrase"
	priority=5
}

#EAP simple :
network={
	ssid="example"
	proto=RSN
	key_mgmt=WPA-EAP
	pairwise=CCMP TKIP
	group=CCMP TKIP
	eap=TLS
	identity="user@example.com"
	ca_cert="/etc/cert/ca.pem"
	client_cert="/etc/cert/user.pem"
	private_key="/etc/cert/user.prv"
	private_key_passwd="password"
	priority=1
}

#WPA-PSK et -EAP simple :
network={
	ssid="example"
	bssid=00:11:22:33:44:55
	proto=WPA RSN
	key_mgmt=WPA-PSK WPA-EAP
	pairwise=CCMP
	group=CCMP
	psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
}


#EAP-PSK simple :
network={
	ssid="eap-psk-test"
	key_mgmt=WPA-EAP
	eap=PSK
	identity="eap_psk_user"
	eappsk=06b4be19da289f475aa46a33cb793029
	nai="eap_psk_user@example.com"
}


#IEEE 802.1X avec clefs WEP dynamiques
network={
	ssid="1x-test"
	key_mgmt=IEEE8021X
	eap=TLS
	identity="user@example.com"
	ca_cert="/etc/cert/ca.pem"
	client_cert="/etc/cert/user.pem"
	private_key="/etc/cert/user.prv"
	private_key_passwd="password"
	eapol_flags=3
}


#LEAP avec clefs WEP dynamiques
network={
	ssid="leap-example"
	key_mgmt=IEEE8021X
	eap=LEAP
	identity="user"
	password="foobar"
}


#Connexion directe (sans chiffrage)
network={
	ssid="plaintext-test"
	key_mgmt=NONE
}


#Clef WEP partagée :
network={
	ssid="static-wep-test2"
	key_mgmt=NONE
	wep_key0="abcde"
	wep_key1=0102030405
	wep_key2="1234567890123"
	wep_tx_keyidx=0
	priority=5
	auth_alg=SHARED
}


#Ad-Hoc (IBSS) avec chiffrage TKIP
network={
	ssid="test adhoc"
	mode=1
	proto=WPA
	key_mgmt=WPA-NONE
	pairwise=NONE
	group=TKIP
	psk="secret passphrase"
}

Source: documentation (anglaise) de wpa_supplicant.

Tester le service //wpa_supplicant//

sudo wpa_supplicant -c/etc/wpa_supplicant.conf -w -D<pilote> -i<interface>
  1. Le « pilote » générique est wext. Si vous utilisez un pilote Wi-Fi Windows via Ndiswrapper, remplacez <pilote> par Ndiswrapper.
    Vous pouvez exécuter wpa_supplicant pour avoir la liste de tous les types d'interface du pilote supportés.
  2. L'interface la plus courante est wlan0.
    Vous pouvez vérifier quelle est votre carte avec la commande iwconfig pour peu que le module correspondant soit inséré dans le noyau.

Remarque : vous pouvez utiliser l'option -d pour avoir plus d'informations.
L'option -B n'a pas été mise pour ne pas lancer le processus en service pour ce premier test.

Si les informations à l'écran vous permettent de conclure que l'interface est connectée au point d'accès, vous pouvez passer à la suite. (Arrêtez le processus wpa_supplicant avec les touches <CTRL> + C).

Lancer le service //wpa_supplicant// au démarrage

Éditez le fichier /etc/default/wpa_supplicant avec les droits d'administration pour y mettre ce qui suit :

ENABLED=1
OPTIONS="-w -D <pilote> -i <interface> -c /etc/wpa_supplicant.conf"

Démarrez manuellement wpa_supplicant pour cette fois (ce sera automatique au prochain démarrage grâce à la ligne ENABLED=1 plus haut) :

sudo /etc/default/wpa_supplicant start

FIXME : Ceci est inutile sous HARDY (fichier n'existe plus)… mais pour les autres ?

pour restaurer le réseau apres hibernation

on active après un certain délai le réseau via la commande networking restart. Ne pas oublier de rendre exécutable le script : chmod +x /etc/pm/sleep.d/networking

#!/bin/sh
# /etc/pm/sleep.d/networking

case "$1" in
	hibernate|suspend)
		 # /etc/init.d/networking stop
		;;
	thaw|resume)
		 (sleep 10 ; /etc/init.d/networking restart )&
		 (sleep 20 ; /etc/init.d/networking restart )&
		;;
	*)
		;;
esac

Les utilisateurs d'un noyau inférieur à 2.6.14 doivent spécifier wpa-driver. Pour DAPPER (noyau 2.6.15) wext est utilisé par défaut (la plupart des pilotes récents utilisent the generic wireless extension (WEXT)).

FIXME : Sous HARDY (noyau 2.6.24-19) l'utilisation d'une carte n'ayant que des pilotes Windows (par exemple, Belkin N1), et donc usuellement avec Ndiswrapper, fonctionne parfaitement avec le paramètre wext

En ce qui concerne IPW2200, il faut utiliser depuis le noyau 2.6.16 le pilote "wext" à la place de "ipw".

Pilotes atmel, hostap, ndiswrapper et madwifi les utilisateurs doivent vérifier dans la documentation de wpa_supplicant leur prise en charge et spécifier le pilote qu'ils souhaitent utiliser.

auto <interface>
iface <interface> inet dhcp
     wpa-driver <driver>     
     wpa-conf /etc/wpa_supplicant.conf

Ce modèle de fichier a été testé et validé sous Jaunty.

Pour Hardy Heron

On configure wpa_supplicant via son fichier de configuration dédié (/etc/wpa_supplicant.conf), D'autre part, dans le fichier des interfaces, on démarre l'interface wifi automatiquement. Pour finir, on réactive en sortie d'hibernation l'interface réseau. Ce qui donne :

# /etc/wpa_supplicant.conf
network={
    ssid="nom du réseau"
    psk="mot de passe en clair"
}

ici, on active dynamiquement le daemon wpa_supplicant :

# /etc/network/interfaces

auto wlan0
iface wlan0 inet dhcp
  pre-up wpa_supplicant -Bw -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
  post-down killall -q wpa_supplicant

WPA avec une carte rt2x00

Vous avez essayé les méthodes ci-dessus avec votre carte rt2x00 sans succès, voici une autre solution. En effet, les modules rt2x00 gèrent eux mêmes la cryptographie WPA, ce n'est donc pas possible d'utiliser les utilitaires ci-dessus. Ce qu'il faut savoir avant de s'y lancer :

- Tout se passe avec les commandes iwpriv et iwconfig, il faut donc que la configuration Wi-Fi soit complète. - Ce module a un défaut, il a besoin d'un certain temps pour se synchroniser avant de fonctionner, donc ne pas s'étonner des "sleep 3" dans le script ci-dessous.

Voici donc les commandes à enchainer pour se connecter à un réseau WPA :

ifconfig $IFACE down
ifconfig $IFACE up
ifconfig $IFACE down
ifconfig $IFACE up
sleep 3
iwconfig $IFACE mode Managed
iwpriv $IFACE enc 3
iwpriv $IFACE auth 3
iwconfig $IFACE essid "$ESSID"
sleep 3
iwpriv $IFACE wpapsk "$WPAPSK"
sleep 3
iwconfig $IFACE essid "$ESSID"
sleep 3

avec bien entendu $IFACE le nom de votre interface réseau, $ESSID le nom du réseau wifi et $WPAPSK la clé wpa en clair.. (il y a un moyen de la chiffrer mais celui-ci ne sera pas détaillé. Les commandes importantes sont donc : "iwpriv $IFACE enc 3" qui active la cryptographie, et "iwpriv $IFACE auth 3" qui dit que ce sera du WPA-PSK

L'intérêt est d'en faire un petit script qui se lancera en pre-up de la configuration de la carte Wi-Fi Voici un exemple de script :

IFACE="rausb0"   # a changer en fonction de l'interface
ESSID="*********"
WPAPSK="*********"  # en clair

ifconfig $IFACE down
ifconfig $IFACE up
ifconfig $IFACE down
ifconfig $IFACE up
sleep 3
iwconfig $IFACE mode Managed
iwpriv $IFACE enc 3
iwpriv $IFACE auth 3
iwconfig $IFACE essid "$ESSID"
sleep 3
iwpriv $IFACE wpapsk "$WPAPSK"
sleep 3
iwconfig $IFACE essid "$ESSID"
sleep 3

et ensuite, dans le fichier /etc/network/interfaces, vérifier que l'on a les notes suivantes :

auto rausb0 # à adapter
iface rausb0 inet dhcp # à adapter si on est en static
  pre-up /usr/local/bin/wpa-config.sh  # emplacement du script ci-dessus

Et voilà, votre carte Wi-Fi ira se connecter automatiquement au démarrage de la machine sur votre réseau Wi-Fi en WPA !

Attention: le script ci-dessus dépend fortement de votre version d'iwpriv. Ainsi les commandes auth et enc peuvent être refusées. Les trois lignes concernant iwpriv devront être remplacées par :

iwpriv $IFACE set EncrypType=TKIP
iwpriv $IFACE set AuthMode=WPAPSK
iwpriv $IFACE set WPAPSK="$WPAPSK"

Une variante peut être de ne pas se connecter automatiquement au boot et d'ajouter la commande "dhclient $IFACE" à la fin du script et de lancer le script à la main dès que l'on veut se connecter, utile pour un portable qui voyage beaucoup.

WPA-PSK avec ESSID masqué avec une carte Broadcom 4311 ou netgear wpn111

Vous avez essayé les méthodes ci-dessus avec votre carte Broadcom 4311 sans succès pour le wpa voici une solution (testé sur dv6022ea).

Voici donc le fichier de configuration pour se connecter à un réseau WPA-PSK avec ESSID masqué :

ctrl_interface=/var/run/wpa_supplicant
#fast_reauth=1
ap_scan=2
eapol_version=2

network={
    ssid="VOTRE_ESSID"
    pairwise=TKIP
    group=TKIP
    scan_ssid=0
    proto=RSN
    key_mgmt=WPA-PSK
    psk=VOTRE_CLEF_HEXA # attention ne pas utiliser d'accent dans la clef
    priority=0
    auth_alg=OPEN 
}

Dans le fichier /etc/network/interfaces vous devez rajouter :

auto <votre_interface>
iface <votre_interface> inet dhcp     
     wpa-conf /etc/wpa_supplicant.conf

Méthode alternative pour les cartes RT

Après plusieurs recherches sur le net, j'ai trouvé une méthode qui fonctionne chez moi (sous Edgy).

Tout d'abord, je me suis assuré que ma carte fonctionne sans chiffrement. Comme je pouvais aller sur Internet sans problème, la carte est bien configurée.

Ensuite, après avoir configurer mon routeur pour l'encryption WPA (Pre-Shared Key) avec chiffrement TKIP, j'ai modifié mon fichier /etc/network/interfaces en y ajoutant ces lignes :

auto ra0
iface ra0 inet dhcp
   pre-up iwconfig ra0 essid votre-ssid
   pre-up iwconfig ra0 mode managed
   pre-up iwpriv ra0 set Channel=votre-channel
   pre-up iwpriv ra0 set AuthMode=WPAPSK
   pre-up iwpriv ra0 set EncrypType=TKIP
   pre-up iwpriv ra0 set WPAPSK="votre_mot_de_passe"
   pre-up iwpriv ra0 set TxRate=0

Mais ce n'est pas tout ! J'ai trouvé dans le dossier /etc/Wireless un dossier portant le nom de ma carte RT2500 et à l'intérieur de ce dossier, un fichier .dat que j'ai modifié un peu comme ci-dessus.

J'ai redémarré mon pc et j'avais accès à Internet avec WPA !


Contributeurs : Ju, Id2ndR livier

  • wpa.1265738188.txt.gz
  • Dernière modification: Le 09/02/2010, 18:56
  • par Lstr