Le système d'exploitation GNU-Linux/Réseaux sans fil

Un livre de Wikilivres.

Théorie des réseaux sans fil[modifier | modifier le wikicode]

Réseaux sans fil de type PAN, LAN, MAN et WAN[modifier | modifier le wikicode]

Distances et débits[modifier | modifier le wikicode]

Les réseaux sans fil PAN[modifier | modifier le wikicode]

PAN : Personal Area Network

La norme ZBEE[modifier | modifier le wikicode]

  • Norme 802.15.4
  • Consomme très peu d'énergie
  • Bas débit (maximum 250 Kbit/s)
  • Idéal pour les applications de type domotique et automatisme
  • Faible coûts de fabrication du composant (1$)

La norme définit trois débits différents :

  • 250 Kbit/s en 2.4 GHz (international)
  • 20 Kbit/s en 868 MHz (Europe)
  • 40 Kbit/s en 915 MHz (USA)

La norme Wireless USB[modifier | modifier le wikicode]

Objectif : remplacer l'USB

Autres noms : W-USB (Wireless USB), UWB (Ultra-Wide Band), Wimedia

  • Norme 802.15.3
  • Très haut débit (jusqu'à 480 Mbit/s)
  • Idéal pour les applications multimédia (audio, vidéo) et pour le transfert de données
  • Possibilité de fonctionner en réseau ou en mode ad-hoc
  • Authentification et chiffrement possible

Débits théoriques :

  • 54 Mbit/s à 2.4 GHz
  • jusqu'à 480 Mbit/s de 3.1 à 10.7 GHz

La norme Bluetooth[modifier | modifier le wikicode]

  • Norme 802.15.1
  • Inventé par Ericsson, aujourd'hui groupement de 2500 sociétés
  • Technologie peu onéreuse (composant à partir de 3$) et fortement intégré (puce de 9 mm x 9 mm)
  • Débits théoriques : de 1 à 3 Mbit/s selon la version de la norme

La norme Bluetooth utilise la fréquence 2.4 GHz et définit trois puissances d'émission :

  • 1 mW : portée de quelques mètres
  • 2.5 mW : portée de 10 à 20 mètres
  • 100 mW : portée de 100 mètres

Un réseau Bluetooth, un piconet, est composé d'un maître et de 7 esclaves maximum. Le débit sera partagé entre les différents membres du piconet.

On peut interconnecter des piconets pour former un scatternet (scatter : dispersion)

Les communications peuvent être symétrique (vitesses d'émission et de réception identiques) ou asymétrique (vitesses d'émission et de réception différentes).

Les réseaux sans fil LAN[modifier | modifier le wikicode]

LAN : Local Area Network

La norme Wifi[modifier | modifier le wikicode]

Principales normes 802.11 :

  • 802.11a : fréquence d'émission à 5 GHz, débit jusqu'à 54 Mbit/s
  • 802.11b : fréquence d'émission à 2.4 GHz, débit jusqu'à 11 Mbit/s
  • 802.11g : fréquence d'émission à 2.4 GHz, débit jusqu'à 54 Mbit/s
  • 802.11n : fréquence d'émission à 2.4 GHz ou 5 GHz, débit jusqu'à 300 Mbit/s en utilisant les technologies MIMO (Multiple-Input Multiple-Output) et OFDM (Orthogonal Frequency Division Multiplexing)

Très proche de l'ethernet câblé (802.3), utilise la sous-couche LLC générique de la couche 2, et ré-implémente la sous-couche MAC.

Contrairement à ethernet câble qui est basé sur la technique d'accès CSMA/CD, la norme Wi-Fi utilise le CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance).

Il y a plusieurs modes de fonctionnement, dont voici les principaux :

  • mode Ad-Hoc permet d'établir des connexions sans passer par un point d'accès
  • mode Infrastructure permet d'établir des connexions en passant par un point d'accès, et également de gérer un système de distribution basé sur plusieurs points d'accès utilisant le même ESSID.
  • mode monitor permet de passer la carte Wi-Fi en mode promiscuous, c'est à dire qu'elle voit passer toutes les trames, et pas seulement celles qui lui sont destinées.

Le Wi-Fi utilise des trames de synchronisation temporelle, appelée les beacon frames. Ces trames contiennent l'heure du point d'accès.



Sécurité WEP[modifier | modifier le wikicode]

  • Premier protocole d'authentification et de chiffrement
  • Signifie : Wired Equivalent Privacy
  • Aujourd'hui totalement obsolète car non sécurisé
  • Utilise des clés de 64 bits (clé secrète de 40 bits + vecteur d'initialisation -IV- de 24 bits) ou des clés de 128 bits (clé secrète de 104 bits + vecteur d'initialisation -IV- de 24 bits)
  • Définit deux techniques d'authentification : Open System Authentication (diffusion du ESSID) et Shared Key Authentication (pas de diffusion d'informations avant l'authentification)

Sécurité WPA[modifier | modifier le wikicode]

  • Inventé pour pallier les failles de sécurité du WEP
  • Signifie : Wi-Fi Protected Access
  • La norme WPA1 fonctionne sur du matériel existant (mais est cassable). La norme WPA2 nécessite du matériel plus puissant (authentification et chiffrement plus complexe) et est la méthode la plus sécurisée à l'heure actuelle
  • Utilise le standard 802.1x qui se charge de l'authentification et de la génération de la clé
  • Le modèle 802.11i assure la sécurité au niveau de la sous-couche MAC via le protocole TKIP (Temporal Key Integrity Protocol) ou via le protocole CCMP (Counter with Cipher Block Chaining Message Authentication Code Protocol) (plus sécurisé)

Les réseaux sans fil MAN[modifier | modifier le wikicode]

MAN : Metropolitan Area Network

La norme Wimax[modifier | modifier le wikicode]

Les réseaux sans fil WAN[modifier | modifier le wikicode]

WAN : Wide Area Network

La norme 802.20[modifier | modifier le wikicode]

Mise en pratique[modifier | modifier le wikicode]

Les commandes Wi-Fi[modifier | modifier le wikicode]

Utilisateurs de Gnome, Attention ! les commandes ci-dessous ne fonctionneront que si vous avez désactivé au préalable Network Manager :

Ubuntu 9.10 et supérieur :

# service network-manager stop

Ubuntu 9.04 :

# service NetworkManager stop

iwconfig[modifier | modifier le wikicode]

Invoquée seule, la commande iwconfig affiche toutes les interfaces réseaux :

# iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:""  
         Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
         Tx-Power=20 dBm   
         Retry  long limit:7   RTS thr:off   Fragment thr:off
         Encryption key:off
         Power Management:off
         Link Quality:0  Signal level:0  Noise level:0
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0

On peut indiquer à la commande iwconfig l'interface à afficher :

# iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:""  
         Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
         Tx-Power=20 dBm   
         Retry  long limit:7   RTS thr:off   Fragment thr:off
         Encryption key:off
         Power Management:off
         Link Quality:0  Signal level:0  Noise level:0
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0

On peut également utiliser la commande iwconfig pour configurer les paramètres du réseau sans fil :

  • Pour définir le nom du réseau :
# iwconfig wlan0 essid "MON RESEAU"
  • Pour définir le canal à utiliser :
# iwconfig wlan0 channel 3

on peut également spécifier la fréquence avec l'option freq :

# iwconfig wlan0 freq 2.412G
  • pour définir le débit
# iwconfig wlan0 rate auto
  • pour fixer le débit :
# iwconfig wlan0 rate 11M

Le 802.11b définit les débits suivants : 1, 2, 5.5 et 11 Mbit/s.

Le 802.11g définit en plus les débits suivants : 6, 9, 12, 18, 24, 36, 48 et 54 Mbit/s.

  • Pour activer ou non le chiffrement WEP :
# iwconfig wlan0 key off
  • pour spécifier la clé WEP :
# iwconfig wlan0 key 1234567890

on peut gérer de trousseau de quatre clés. On indique le numéro de clé entre crochets :

# iwconfig wlan0 key [1] 1234567890
  • pour changer le mode (ad-hoc, managed, monitor ...) de la carte :

Attention, il faut que la configuration côté IP soit arrêtée :

# ifconfig wlan0 down
# iwconfig wlan0 mode Ad-Hoc
# ifconfig wlan0 up
  • pour changer la puissance d'émission (si la carte le permet) :
# iwconfig eth0 txpower 60mW

On peut également spécifier plusieurs paramètres sur la même ligne :

# iwconfig wlan0 channel 11 key off essid NETGEAR

iwlist[modifier | modifier le wikicode]

La commande iwlist permet d'obtenir des informations complémentaires. Invoquée seule, elle affiche la liste des options disponibles :

# iwlist
Usage: iwlist [interface] scanning [essid NNN] [last]
              [interface] frequency 
              [interface] channel 
              [interface] bitrate 
              [interface] rate 
              [interface] encryption 
              [interface] keys 
              [interface] power 
              [interface] txpower 
              [interface] retry 
              [interface] ap 
              [interface] accesspoints 
              [interface] peers 
              [interface] event 
              [interface] auth 
              [interface] wpakeys 
              [interface] genie 
              [interface] modulation

On peut optionnellement spécifier l'interface réseau (inutile si il n'y en a qu'une).

  • Afficher la liste des réseaux détectés :
# iwlist scan
...
wlan0     Scan completed :
         Cell 01 - Address: 00:09:5B:6F:3C:38
                   Channel:11
                   Frequency:2.462 GHz (Channel 11)
                   Quality=57/70  Signal level=-53 dBm  
                   Encryption key:off
                   ESSID:"NETGEAR"
                   Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
                   Mode:Master
                   Extra:tsf=0000001241f8f0da
                   Extra: Last beacon: 192ms ago
                   IE: Unknown: 00074E455447454152
                   IE: Unknown: 010482840B16
                   IE: Unknown: 03010B
  • afficher les canaux et fréquences disponibles, et également le canal/fréquence actuellement utilisé :
# iwlist freq        # OU iwlist channel
...
wlan0    13 channels in total; available frequencies :
         Channel 01 : 2.412 GHz
         Channel 02 : 2.417 GHz
         Channel 03 : 2.422 GHz
         Channel 04 : 2.427 GHz
         Channel 05 : 2.432 GHz
         Channel 06 : 2.437 GHz
         Channel 07 : 2.442 GHz
         Channel 08 : 2.447 GHz
         Channel 09 : 2.452 GHz
         Channel 10 : 2.457 GHz
         Channel 11 : 2.462 GHz
         Channel 12 : 2.467 GHz
         Channel 13 : 2.472 GHz
         Current Frequency:2.447 GHz (Channel 8)
  • afficher la liste des clés WEP :
# iwlist encryption        # OU iwlist keys
...
wlan0    2 key sizes : 40, 104bits
         4 keys available :
		[1]: 1234-5678-90 (40 bits)
		[2]: off
		[3]: off
		[4]: off
         Current Transmit Key: [1]
  • afficher les possiblités d'authentification du driver de la carte :
# iwlist auth
...
wlan0     Authentication capabilities :
		WPA
		WPA2
		CIPHER-TKIP
		CIPHER-CCMP
          Current Authentication algorithm :
		open
		shared-key


  • afficher la liste des points d'accés détectés :
# iwlist ap        # OU iwlist accesspoints
ath0      Peers/Access-Points in range:
    5A:1D:14:86:97:BC : Quality=34/70  Signal level=-61 dBm  Noise level=-95 dBm
    5A:1D:14:86:97:BE : Quality=34/70  Signal level=-61 dBm  Noise level=-95 dBm
    5A:1D:14:86:97:BF : Quality=33/70  Signal level=-62 dBm  Noise level=-95 dBm
...


À faire...link={{{link}}}

autres options

iwevent[modifier | modifier le wikicode]

La commande iwevent permet d'afficher en temps réel les évènements Wi-Fi de la carte.

On lance iwevent sur une console, et sur une autre, on passe des commandes iwconfig. On constate que iwevent affiche les évènements générés :

# iwevent
...
09:15:01.261767   wlan0    New Access Point/Cell address:Not-Associated
09:15:01.261858   wlan0    Set Frequency=2.412 GHz (Channel 1)
...
09:15:40.112202   wlan0    Set Frequency=2.462 GHz (Channel 11)
09:16:01.762209   wlan0    Custom driver  event:ASSOCINFO(ReqIEs=00074e455447454152010402040b16 RespIEs=010482840b16)
09:16:01.762247   wlan0    New Access Point/Cell address:00:09:5B:6F:3C:38

iwpriv[modifier | modifier le wikicode]

La commande iwpriv permet de configurer des paramêtres propres à la carte Wi-Fi.

# iwpriv wlan0
wlan0     no private ioctls.

Par exemple, le driver de cette carte ne fournit de paramêtres spécifiques à configurer.

Avec un autre driver, on obtient la liste des ioctl configurables :

# iwpriv ath0
ath0     Available private ioctls :
         setoptie         (8BEE) : set 256 byte  & get   0      
         getoptie         (8BEF) : set   0       & get 256 byte 
         setkey           (8BF2) : set  64 byte  & get   0      
         delkey           (8BF4) : set   7 byte  & get   0      
         setmlme          (8BF0) : set  42 byte  & get   0      

Certaines cartes ethernet câble permettent également de configurer des paramêtres internes :

# iwpriv eth0
eth0      Available private ioctl :
                setqualthr (89F0) : set   1 byte & get   0
                gethisto (89F7) : set   0      & get  16 int

# iwpriv eth0 setqualthr 20
# iwpriv eth0 gethisto

iwspy[modifier | modifier le wikicode]

Si la carte et le driver le permettent, la commande iwspy permet d'afficher des statistiques en temps réel sur la liaison Wi-Fi :

# iwspy ath0
ath0      Statistics collected:
   00:15:6D:D0:E3:E0 : Quality=22/70  Signal level=-74 dBm  Noise level=-96 dBm
   Link/Cell/AP      : Quality=22/70  Signal level=-74 dBm  Noise level=-96 dBm
   Typical/Reference : Quality:0  Signal level:0  Noise level:0


Par exemple, la carte (et/ou driver) ci-dessous ne permet pas de collecter des informations.

# iwspy wlan0
wlan0     Interface doesn't support wireless statistic collection

Autres commandes utiles[modifier | modifier le wikicode]

lspci[modifier | modifier le wikicode]

# lspci
...
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
04:04.0 Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01)
04:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 01)

lsusb[modifier | modifier le wikicode]

# lsusb
...
BUS 005 Device 003: ID 0846:6a00 Netgear, Inc. WG111 WiFi (v2)

lshw[modifier | modifier le wikicode]

# lshw -class network
...
 *-network:0             
      description: Wireless interface
      product: Atheros AR5001X+ Wireless Network Adapter
      vendor: Atheros Communications Inc.
      physical id: 4
      bus info: pci@0000:04:04.0
      logical name: wmaster0
      version: 01
      serial: 00:24:01:13:fe:de
      width: 32 bits
      clock: 33MHz
      capabilities: pm bus_master cap_list logical ethernet physical wireless
      configuration: broadcast=yes driver=ath5k latency=168 maxlatency=28 mingnt=10 multicast=yes wireless=IEEE 802.11bg
      resources: irq:18 memory:50000000-5000ffff


Test du réseau Ad-Hoc[modifier | modifier le wikicode]

Il faut tout d'abord passer la carte en mode Ad-Hoc :

# ifconfig wlan0 down
# iwconfig wlan0 mode Ad-Hoc
# ifconfig wlan0 up

On ajuste ensuite les paramêtres Wifi :

# iwconfig wlan0 essid "UPVD" channel 3 key off

On spécifie ensuite une adresse MAC commune à tout le réseau Ad-Hoc :

# iwconfig wlan0 ap 00:11:22:33:44:55

On spécifie les paramêtres IP :

# ifconfig wlan0 10.0.0.1 netmask 255.255.255.0

Désormais, les différents membres du réseau Ad-Hoc doivent pouvoir se pinguer.

Si ce n'est pas le cas, on peut essayer de changer la fréquence et de la remettre pour forcer une ré-detection / re-configuration.


Connexion à un réseau sans chiffrement[modifier | modifier le wikicode]

# iwconfig wlan0 essid "NETGEAR" channel 11 key off
# dhclient wlan0


Connexion à un réseau WEP[modifier | modifier le wikicode]

# iwconfig wlan0 essid "NETGEAR" channel 11 key CAFECAFECA
# dhclient wlan0


Connexion à un réseau WPA[modifier | modifier le wikicode]

Pour se connecter à un réseau WPA depuis Linux, il faut avoir installé le package wpasupplicant :

# apt-get install wpasupplicant

On crée le fichier de configuration suivant :

# cat /etc/wpa_supplicant.conf 
network={
   ssid="RESEAUWPA"
   scan_ssid=1
   proto=WPA
   key_mgmt=WPA-PSK
   psk="supermotdepassetressecure"
}

On lance la commande wpa_supplicant :

# wpa_supplicant -D wext -i wlan0 -c /etc/wpa_supplicant.conf

Cette commande ne rend pas la main, donc soit on la lance en tâche de fond avec &, soit on la laisse tourner et on ouvre une nouvelle fenêtre.

On lance ensuite le client DHCP pour obtenir une adresse IP :

# dhclient wlan0