HOWTO Wi-Fi

Un article de Gentoo Linux Wiki.

Cet article est une ébauche. Vous pouvez l'aider à s'enrichir en le complétant.

Logo Wi-Fi officiel
Logo Wi-Fi officiel

Sommaire

[modifier] Introduction

Cet article a pour but d'être aussi complet que possible pour l'installation du Wi-Fi sous Gentoo. N'hésitez pas à le compléter.

[modifier] Installation

Depuis le baselayout 1.11.0, il suffit d'installer les wireless-tools :

emerge net-wireless/wireless-tools

Il faut au minimum que cela soit activé dans le noyau :

Configuration du noyau Linux :
CONFIG_NET_RADIO=y 
CONFIG_NET_WIRELESS=y


[modifier] Madwifi

Pour les cartes à base de chipset Atheros :

emerge net-wireless/madwifi-ng
emerge net-wireless/madwifi-ng-tools

[modifier] ipw2100/ipw2200

Pour les cartes Intel PRO/Wireless 2100 :

emerge net-wireless/ieee80211 net-wireless/ipw2100 net-wireless/ipw2100-firmware

Pour les cartes Intel PRO/Wireless 2200BG et 2915ABG :

emerge net-wireless/ieee80211 net-wireless/ipw2200 net-wireless/ipw2200-firmware


[modifier] ipw2100 (and 2200?) with kernel > 2.6.18

Attention : net-wireless/ieee80211 n'a pas l'air de supporter le noyau 2.6.19 pas plus que les suivants (2.6.22), essayer les modules noyau à la place. Il est possible de faire uniquement:

emerge net-wireless/ipw2100-firmware

Vous risquez ensuite d'obtenir a) un boot très lent se bloquant sur le chargement du IPW2100 b) pas de wifi si vous avez compilé :

Device Drivers ---> Network device support --> Wireless LAN ---> <*> Intel Pro/Wireless 2100 Network connection 

Le problème semble lié à l'ordre des chargements des fonctionnalités lors du boot (cf. http://www.oreillynet.com/onlamp/blog/2004/10/fedora_core_2_linux_and_centri.html). Il suffit de remplacer par :

 Device Drivers ---> Network device support --> Wireless LAN ---> <M> Intel Pro/Wireless 2100 Network connection 

Pour que l'ordre soit correct. Vous pourrez le confirmer en tapant :

dmesg |grep ipw2100

qui vous donnera :

ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, git-1.2.2
ipw2100: Copyright(c) 2003-2006 Intel Corporation
ipw2100: Detected Intel PRO/Wireless 2100 Network Connection

[modifier] ipw3945

Attention: le module ipw3945 n'est plus maintenu. Comme mentionné sur la page sourceforge d'ipw3945, il est conseillé d'utiliser iwlwifi


Pour les cartes Intel PRO/Wireless 3945 :

emerge net-wireless/ipw3945 net-wireless/ipw3945d net-wireless/ipw3945-ucode

Modifiez le fichier /etc/conf.d/net en ajoutant :

File: /etc/conf.d/net
RC_NEED_wlan="ipw3945d"

[modifier] NdisWrapper

Pour connaitre la liste des chipset supportés : http://ndiswrapper.sourceforge.net/mediawiki/index.php/List

emerge net-wireless/ndiswrapper

Décompressez les drivers Windows :

emerge app-arch/cabextract app-arch/unshield
cabextract drivers.exe
unshield Disk1/data1.cab

Ensuite :

ndiswrapper -i /emplacementsfichiers/<driver>.inf

Pour vérifier que ça a marché :

ndiswrapper -l
Installed ndis drivers:
bcmwl5 present

Pour charger le module ndiswrapper au démarrage :

echo "ndiswrapper" >> /etc/modules.autoload.d/kernel-<version> 


[modifier] rt2400/rt2500/rt2570

Vous avez 2 choix : soit les drivers stables, soit ceux en développement.

[modifier] Drivers en développement

Pour tous les chipset ralink 2400,2500 ou 2570 :

echo "net-wireless/rt2x00 ~x86" >> /etc/portage/package.keywords
emerge net-wireless/rt2x00

Avec ces drivers, vous pouvez passer directement à la partie configuration.

[modifier] Drivers stables

Pour chipset ralink 2400 :

emerge net-wireless/rt2400

Pour chipset ralink 2500 :

emerge net-wireless/rt2500

Pour chipset ralink 2570 :

emerge net-wireless/rt2570

Vous devez avoir l'ensemble de ces options dans le noyau :

Configuration du noyau Linux :
 * CONFIG_NET_WIRELESS
 * CONFIG_NET_RADIO
 * CONFIG_IEEE80211
 * CONFIG_IEEE80211_CRYPT_WEP (si vous utilisez WEP) 

Si vous utilisez un noyau récent vous devez supprimer le support ieee802.11 du noyau. Pour cela exécutez la commande suivante :

/bin/sh /usr/portage/net-wireless/ieee80211/files/remove-old /usr/src/linux
emerge net-wireless/rt2500
cd /etc/init.d
ln -s net.lo net.ra0
rc-update add net.ra0 default
File: /etc/Wireless/RT2500STA/RT2500STA.dat
 # Copy this file to /etc/Wireless/RT2500STA/RT2500STA.dat
 # This file is a binary file and will be read on loading rt2500.o module.
 # Use "vi -b RT2500STA.dat" to modify settings according to your need.

 [Default]
 AdhocOfdm=0
 CountryRegion=0
 WirelessMode=0
 TXBurst=0
 TurboRate=0
 BGProtection=0
 ShortSlot=0
 TxRate=0
 PSMode=CAM
 SSID=my router name goes here
 NetworkType=Infra
 AuthMode=WPAPSK
 EncrypType=TKIP
 WPAPSK=my long pass goes here hehehe
 PSMode=CAM
File: /etc/conf.d/net
 # This blank configuration will automatically use DHCP for any net.*
 # scripts in /etc/init.d.  To create a more complete configuration,
 # please review /etc/conf.d/net.example and save your configuration
 # in /etc/conf.d/net (this file :]!).
 modules=( "!iwconfig" )

Pour charger le module au démarrage :

File: /etc/modules.autoload.d/kernel-2.6
 # /etc/modules.autoload.d/kernel-2.6:  kernel modules to load when system boots.#
 # Note that this file is for 2.6 kernels.
 #
 # Add the names of modules that you'd like to load when the system
 # starts into this file, one per line.  Comments begin with # and
 # are ignored.  Read man modules.autoload for additional details.

 # For example:
 # 3c59x
 rt2500

[modifier] Configuration

[modifier] Recherche des réseaux

Pour trouver un réseau :

iwlist eth1 scan

(Remplacez eth1 par votre interface Wi-Fi)

Ce qui vous donnera quelque chose come çà :

 eth1      Scan completed :
          Cell 01 - Address: 00:01:02:03:04:05
                    ESSID:"NOM_RESEAU1"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:11
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=31/100  Signal level=-90 dBm  Noise level=-90 dBm
                    Extra: Last beacon: 960ms ago
          Cell 02 - Address: 00:02:03:04:05:FF
                    ESSID:"NOM_RESEAU2"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Channel:11
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
                    Quality=28/100  Signal level=-92 dBm  Noise level=-92 dBm
                    Extra: Last beacon: 3560ms ago

Ici on a 2 réseaux 802.11g avec pour SSID NOM_RESEAU1 et NOM_RESEAU2. La ligne Encryption key:on nous indique qu'une clef est nécessaire pour le réseau.

[modifier] Réseau ouvert

Si le réseau n'est pas crypté vous pouvez faire ainsi :

iwconfig eth1 essid "NOM_RESEAU_OUVERT"

ou

iwconfig eth1 ap 00:01:02:03:3A:05

(avec 00:01:02:03:3A:05 correspondant au BSSID/MAC du réseau ouvert.

ou encore pour vous connecter à n'importe quelle AP :

iwconfig eth1 ap any

ou

iwconfig eth1 ap auto



[modifier] WEP

Vous pouvez modifier le fichier /etc/conf.d/wireless.example, par exemple pour un réseau utilisant une clef WEP :

File: /etc/conf.d/wireless
 key_VOTRE-ESSID="s:maclefwep enc open"
 preferred_aps=( "VOTRE-ESSID" )


[modifier] WPA

Pour un réseau utilisant WPA :

[modifier] rt2500

En utilisant le driver rt2500 :

File: /etc/conf.d/wireless
 iwpriv_VOTRE-ESSID=(
        "set AuthMode=WPAPSK"
        "set EncrypType=TKIP"
        "set WPAPSK=voteclefWPA"
 )


[modifier] Madwifi

Si vous utilisez madwifi :

Installer wpa_supplicant :

USE="madwifi" emerge net-wireless/wpa_supplicant
File: /etc/conf.d/net
 modules=( "wpa_supplicant" )
 wpa_supplicant_eth1="-Dmadwifi"

[modifier] Autres

Installer wpa_supplicant :

emerge net-wireless/wpa_supplicant

Puis modifier le fichier /etc/conf.d/net :

File: /etc/conf.d/net
 modules=( "wpa_supplicant" )
 wpa_supplicant_eth1="-Dwext"


Puis configurez wpa_supplicant : Créez le fichier /etc/wpa_supplicant/wpa_supplicant.conf :

File: /etc/wpa_supplicant/wpa_supplicant.conf
 ctrl_interface=/var/run/wpa_supplicant
 ctrl_interface_group=wheel
 network={
      ssid="simple"
      psk="votreclefWPA"
      priority=5
 }

Pour des configurations plus complexes, lisez le fichier /usr/share/doc/wpa_supplicant-(version)/wpa_supplicant.conf.example.gz.


Ensuite, créez le script d'initialisation pour votre carte Wi-Fi :

cd /etc/init.d
ln -s net.lo net.eth1
./net.eth1 start

Démarrez l'interface automatiquement :

rc-update add net.eth1 default

[modifier] Adresse IP

[modifier] DHCP

Ajoutez au fichier /etc/conf.d/net ceci :

File: /etc/conf.d/net
config_VOTRE-ESSID=( "dhcp" )

Ou si vous voulez une configuration plus générale, non lié à un ESSID :

File: /etc/conf.d/net
config_eth1=( "dhcp" )

(avec eth1 correspondant à votre interface Wi-Fi)

[modifier] IP fixe

Comme avec une interface fixe :

File: /etc/conf.d/net
config_eth1=( "192.168.0.2/24" )
routes_eth1=( "default via 192.168.0.1" )

[modifier] Utilisation

[modifier] Gérer les réseaux

[modifier] wpa_gui

wpa_gui est livré avec wpa_supplicant et permet, une fois le service lancé, de gérer les clefs pour votre réseau WPA.

[modifier] kwifimanager

KwifiManager permet de voir la puissance de votre réseau quand vous êtes connecté et de détecter d'autres réseaux. Il nécessite KDE.

Installation :

emerge kde-base/kwifimanager

[modifier] WiFi Radar

Capture d'écran de WiFi Radar
Capture d'écran de WiFi Radar

WiFi Radar est un utilitaire en Python/PyGTK2 permettant de gérer les profiles Wi-Fi.

Pour l'installer :

echo "net-wireless/wifi-radar" >> /etc/portage/package.keywords
emerge wifi-radar

Pour pouvoir l'utiliser en tant qu'utilisateur :

emerge app-admin/sudo
echo "%users   ALL = /usr/sbin/wifi-radar" >> /etc/sudoers

Editez le fichier /etc/wifi-radar.conf selon votre interface réseau wifi.

Lancez WiFi Radar :

wifi-radar

[modifier] Attaquer un réseau

[modifier] Aircrack-ng

Aircrack-ng est un utilitaire pour retrouver une clef WEP que l'on a égaré.

Il faut commencer par repérer les réseaux :

airodump-ng eth1

Vous pouvez voir les BSSID, les canaux utilisés et le cryptage.

Une fois que vous connaissez le canal :

airodump-ng -c 11 --ivs -w dump eth1

(où 11 et le canal que l'on veut attaquer)

Repérez le BSSID et tapez :

aircrack-ng -b BSSID dump-*.ivs

Il faut entre 250 000 et 500 000 IVs pour avoir la clef.

Note: airodump-ng et aircrack-ng peuvent être lancé en même temps

[modifier] Kismet

Capture de kismet-ui
Capture de kismet-ui

Kismet est logiciel permettant de détecter les réseaux Wi-Fi, de les sniffer et de détecter les instrusions.

Insataller Kismet :

emerge net-wireless/kismet

Pour configurer Kismet, étitez le fichier /etc/kismet.conf.

suiduser doit être un utilisateur normal du systéme.

source est de la forme :

typesource,interface,nom,canal

Par exemple :

ipw3945,eth1,ipw3945,11

(pour le drivers ipw3945 et l'interface eth1)

Une liste compléte des types de sources est disponible à cette adresse : http://www.kismetwireless.net/documentation.shtml

Le reste de la configuration peut-être laissé par défaut si vous lancez le service et le client sur la même machine.

Pour lancer le service :

cd /etc/init.d
./kismet start

Pour lancer l'interface graphique :

kismet_client


[modifier] Liens