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.
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.
Pour l'installer (si pas disponible) voir la page consacrée à NetworkManager. Interface 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.
WPA Supplicant est un service utilisé pour réaliser votre connexion WPA.
sudo apt-get install wpasupplicant
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
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.
auto wlan0 iface wlan0 inet dhcp wpa-ssid nom_de_votre_connexion_wifi wpa-psk mot_de_passe_de_votre_connexion
Exemple :
wpa-ssid Livebox-3818
Exemple :
wpa-bssid 01:2a:3b:4c:5d:6e
Exemple 1 :
wpa-psk totomaison
Exemple 2 :
wpa-psk 2f38e12c698a
Exemple WPA/WPA2 classique autorisé :
wpa-key-mgmt WPA-PSK
Exemple AES autorisé :
wpa-group CCMP
Exemple AES et TKIP autorisés :
wpa-group CCMP TKIP
Exemple AES et TKIP autorisés :
wpa-pairwise CCMP TKIP
Exemple WPA/WPA2 :
wpa-auth-alg OPEN
Exemple WPA2 seulement :
wpa-proto RSN
Exemple WPA et WPA2 :
wpa-proto WPA RSN
Exemple :
wpa-scan-ssid 1
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 :
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
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
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-NONE wpa-group TKIP wpa-pairwise NONE wpa-proto WPA wpa-psk totomaison
Ceci est la méthode d'usage générale pour la configuration d'une ou plusieurs connexions WPA.
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.
auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant.conf
sudo gedit /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="<nom de votre connexion>" proto=WPA RSN key_mgmt=WPA-PSK psk="<mot de passe de votre connexion>" }
Exemple :
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="Livebox-3818" scan_ssid=1 # nécessaire quand le ssid n'est pas diffusé proto=WPA RSN key_mgmt=WPA-PSK psk="totomaison" }
Vous pouvez ajouter autant de configuration de points d'accès différents en ajoutant des paramètres network={} à votre fichier.
D'autres paramètres plus avancés peuvent être utilisés (cf. chapitre “Paramètres”).
(par Lstr le 10 juin 06)
À Compléter pour EAP et vérifier Mise à jour
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 (nécessaire quand le ssid n'est pas diffusé) # # #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" }
Dans tous les cas votre fichier /etc/network/interfaces ressemblera à ça :
auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant.conf
ou
auto wlan0 iface wlan0 inet static address 192.168.0.12 netmask 255.255.255.0 gateway 192.168.0.1 wpa-conf /etc/wpa_supplicant.conf
et seul votre fichier de configuration /etc/wpa_supplicant.conf change :
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="Livebox-3818" proto=RSN key_mgmt=WPA-PSK group=CCMP psk="totomaison" }
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="Livebox-3818" proto=WPA RSN key_mgmt=WPA-PSK group=CCMP TKIP psk="totomaison" }
ctrl_interface=/var/run/wpa_supplicant ap_scan=2 network={ ssid="Livebox-3818" mode=1 proto=WPA key_mgmt=WPA-NONE pairwise=NONE group=TKIP psk="totomaison" }
À Compléter
Ajouter protection en lecture des fichiers de configuration (chmod)
Il n'y a plus de version d'Ubuntu fonctionnant sur de tels noyaux.
Dans ce cas précis, il faut indiquer à WPA Supplicant quel driver utiliser.
Si vous configurez plusieurs connexions en WPA il est recommandé d'indiquer à chaque connexion le driver à WPA Supplicant.
Si vous utilisez un pont pour votre connexion WPA, il faut appliquer le fichier de configuration WPA Supplicant aussi bien à l'interface de connexion qu'au pont.
Il se peut que WPA Supplicant entre en conflit avec vos logiciels de configuration réseau.
Il est recommandé de désactiver ces logiciels si le problème se pose.
Référez-vous à votre logiciel de configuration réseau si la désactivation pose problème.
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 NetworkManager
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).
sudo wpa_supplicant -c/etc/wpa_supplicant.conf -w -D<pilote> -i<interface>
wpa_supplicant
pour avoir la liste de tous les types d'interface du pilote supportés.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).
É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
: 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
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.
====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 !
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