Mon réseau

Mon réseau d’entreprise

12.5 Les Réseaux sans fil

Précédent   Suivant

Les réseaux sans fils utilisent des transmissions sans fil. Ces transmissions utilisent principalement des ondes radio électriques. Dans la pratique, les tranmissions les plus fréquentes sont l’infra rouge et les fréquences ISM.

D’autres fréquences électromagnétiques sont utilisables comme la lumière (Li-Fi), le laser, ou des fréquences réservées pour un usage spécifique (radio FM, télévision, transmissions télécoms par faisceaux hertziens, téléphonie mobile, aviation, gendarmerie, …).

Parler de réseaux sans fils est un abus de langage. La notion de sans fil concerne la couche physique, pas la couche réseau. Donc, nous devrions parler de partie sans fil dans un réseau.

Il est possible de classer les réseaux sans fils par plusieurs critères, comme la portée ou l’usage. Ainsi, Il est possible d’inscrire ces réseaux dans le découpage wan, man, lan ou pan. Pour rappel, ces sigles désignent la portée de réseau (Area Network) : W pour Wide, large, c’est un réseau longue distance ; M pour Metropolitan, taille d’une agglomération ; L pour Local, une structure locale, comme un bâtiment ; P pour Personnal, voisin d’une personne.

Les classements d’usage sont encore moins nets. Il y a par exemple, les réseaux LoRaWAN ou Sigfox pour les objets connectés ou Internet des objets (IoT : Internet of Things).

En général le mot réseau désigne un ensemble de standards permettant potentiellement la mise en place d’applications entre deux objets portant la même étiquette.

Parmi les transmissions sans fil, il est possible d’utiliser les sons. Les infrasons sont utilisés pour communiquer avec les sous-marins, d’autres applications peuvent ou pourraient exister.

Dans la série des adaptations d’Ethernet, après le WiFi, il existe le cpl, Courant Porteur en Ligne, qui fait passer de l’Ethernet sur des câbles utiliser pour transporter le courant électrique.

12.5.1 Le protocole WiFi

(image)

Le https ://fr.wikipedia.org/wiki/Wi-FiWiFi regroupe un ensemble de normes relatives aux réseaux Ethernet sans fil. Le WiFi regroupe un grand nombre de standards.

12.5.1.1 La couche physique

La couche physique utilise souvent les fréquences hertziennes mais elle peut aussi utiliser l’infrarouge. Les fréquences hertziennes appartiennent aux fréquences ism. La première bande était celle des 2.4 GHz (2 400 à 2 483 MHz). Ensuite, le WiFi a utilisé la bande des 5 GHz (de 5 170 MHz à 5 835 MHz). L’utilisation de la bande des 900 MHz a été définie en 2017 (ieee 802.11ah). D’autres bandes sont à l’étude.

Une des grosses vulnérabilités du WiFi, ce sont les interférences radio-électrique. De nombreuses applications existent pour détecter les interférences.

Sur le dépôt d’applications sûres http ://f-droid.org/F-Droid, l’applcation WiFiAnalyzer affiche l’occupation locale des canaux par les bornes WiFi et leur puissance de réception, comme dans la figure 12.3.

(image)

Fig. 12.3 : Le graphique d’utilisation du WiFi, affiché par wifianalyser.

Sous Gnu-Linux, il existe aussi de nombreuses applications graphiques, parfois intégrées aux suites de bureau qui proposent un affichage similaire. La ligne de commande offre aussi une application permettant de scanner le réseau et qui est plus détaillée dans les résultats. Il faut commencer par activer l’interface WiFi et réaliser le scan. Les détails pour manipuler une interface WiFi sous Gnu-Linux sont présentés, un peu plus loin à la section 12.5.2.

# ip link set up dev wlxf8d1111c6128
# iw dev wlxf8d1111c6128 scan
BSS f6:f2:6d:49:d3:da(on wlxf8d1111c6128)
        TSF: 275883134946 usec (3d, 04:38:03)
        freq: 2457
...
        signal: -84.00 dBm
...
        SSID: Verlaine
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
        DS Parameter set: channel 10
        Country: FR     Environment: Indoor/Outdoor
                Channels [1 - 13] @ 20 dBm
...

Il est possible de voir le ssid, la fréquence d’émission, le niveau de réception. L’affichage complet affiche tous les paramètres reçus par l’interface.

Ces applications affichent les bornes WiFi émettant à proximité, mais pas les autres signaux. Ainsi, un four à micro-onde ou une communications Bluetooth peuvent perturber la réception. C’est pourquoi, il faut utiliser un analyseur de spectre qui permet une réelle analyse. La figure 12.4 présente une capture effectuée près d’une borne WiFi. Le signal est concentré autour du canal 1.

(image)

Fig. 12.4 : Une analyse spectrale de la bande WiFi, avec spectools.

La partie bleue indique le maximum de réception passée pour une fréquence, la courbe jaune indique la dernière mesure. Nous pouvons refaire une mesure après avoir allumé le four à micro-ondes 12.5.

(image)

Fig. 12.5 : Une perturbation due à un four à micro-onde.

Le pic situé dans les canaux 12 et 13 montre le rayonnement qui sort du four à micro-ondes. Ce rayonnement n’est pas pris en compte par les interfaces WiFi, donc WiFiAnalyser ne le détectera pas, mais il peut perturber les communications. Ceci explique pourquoi, contrairement à mon exemple, il ne faut pas mettre les bornes WiFi près des fours à micro-ondes. Plus généralement, il faut vérifier qu’il n’y a pas de perturbations électromagnétiques. Comme pour les câbles pour l’Ethernet, il faut qualifier l’installation.

12.5.1.2 La couche liaison de données

La couche liaison de données permet de mettre en place la communication numérique. En WiFi, il est recommandé d’utiliser un chiffrement wpa2 ou wpa3 En un rapide résumé, il faut indiquer le ssid (Service Set IDentifier) et entrer un secret partagé pour le wpa-personnel et un serveur radius, et une identification unique pour la version entreprise. Le wpa3 n’est pas encore très répendu.

Le secret peut être entré par l’utilisateur, ou alors il est possible d’utiliser une activation wps (Wi-Fi Protected Setup).

(image) L’activation du wps permet à un attaquant de trouver rapidement le secret partagé, il est donc recommandé de ne pas l’activer.

(image) Il existe une attaque permettant de récupérer la clef partagée du wpa2. Il semble que hostapd (l’application qui fournit un point d’accès sous Linux) ne soit pas affecté.

Quand la couche liaison de données est établie, il sera possible d’activer et de paramétrer la couche réseau (ip).

12.5.1.3 Les modes réseaux

Il y a plusieurs modes d’activation du réseau.

Le mode Infrastructure est utilisé par les points d’accès. Il y a un équipement qui fournit (en général) l’accès au réseau et qui diffuse son identifiant (ssid). Les autres participants sont dans le mode managed et sont donc clients de la connexion.

Dans ce mode, le point d’accès impose l’utilisation d’un secret pour autoriser la connexion, met en place un chiffrement des communications, fournit les paramètres IP aux clients et leur permet de se connecter vers Internet.

Le mode Ad hoc permet l’établissement de connexions de type pair à pair entre des ordinateurs. La sécurité est établie en dehors de la couche liaison. Chaque participant peut activer le mode routeur. Il est alors possible de définir des réseaux dynamiques. Par exemple, pour une manifestation dans un désert (les australiens sont de grands amateurs).

Les modes Bridge ou répéteurs permet de relayer un signal wifi et d’étendre la couverture.

Particulièrement avec Gnu-Linux, la couche liaison de données permet de relier des équipements et donc constitue les arêtes d’un graphe. Une fois les liaisons de données établies, il est possible d’activer le réseau IP de manière totalement indépendante : un client WiFi pourra fournir l’accès Internet à la borne d’accès par exemple.

12.5.2 Le WiFi sous Gnu-Linux

Nous allons commencer par les commandes pour manipuler une interface WiFi, puis nous terminerons par l’analyse spectrale.

12.5.2.1 L’interface WiFi

L’interface WiFi est constituée d’un équipement radio et d’une partie liée au noyau. L’interface peut être dans une clef usb, dans une carte sur un bus pci ou utiliser un autre type de connexion.

La commande lsusb permet d’identifier les périphériques connectés en usb.

$ lsusb
Bus 001 Device 014: ID 0cf3:7015 Atheros Communications, Inc. \
                TP-Link TL-WN821N v3 / TL-WN822N v2 802.11n \
               [Atheros AR7010+AR9287]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Il y a une clef usb Atheros sur le bus 1.

Pour un bus pci, la commande est lspci.

$ lspci
...
02:00.0 Network controller: \
                    Intel Corporation Wireless 8260 (rev 3a)
...

Dans les deux cas les commandes identifient le composant mais il n’y a aucune information si l’interface fonctionne avec Linux ou si le support pour ce matériel est présent. Nous allons configurer une clef usb. La méthode sera valable quelque soit le type d’interface et pourra même être généralisée à d’autres types de matériels, comme une clef de réception télé.

Lors de l’insertion de la clef, le noyau détecte l’insertion et écrit des informations dans le fichier de log (/var/log/syslog).

 kernel: [ ] usb 1-9: new high-speed USB device number 3
 kernel: [ ] usb 1-9: New USB device found, \
                            idVendor=0cf3, idProduct=7015
 kernel: [ ] usb 1-9: New USB device strings: \
                      Mfr=16, Product=32, SerialNumber=48
 kernel: [ ] usb 1-9: Product: USB WLAN
 kernel: [ ] usb 1-9: Manufacturer: ATHEROS
 kernel: [ ] usb 1-9: SerialNumber: 12345
 kernel: [ ] usb 1-9: ath9k_htc: \
          Firmware ath9k_htc/htc_7010-1.4.0.fw requested
 kernel: [ ] usb 1-9: firmware: \
           failed to load ath9k_htc/htc_7010-1.4.0.fw (-2)
 kernel: [ ] usb 1-9: Direct firmware load for \
              ath9k_htc/htc_7010-1.4.0.fw failed with error -2
 kernel: [ ] usb 1-9: ath9k_htc: Firmware htc_7010.fw requested
 kernel: [ ] usb 1-9: firmware: failed to load htc_7010.fw (-2)
 kernel: [ ] usb 1-9: Direct firmware load for htc_7010.fw failed
 kernel: [ ] usb 1-9: no suitable firmware found!
 kernel: [ ] usb 1-9: ath9k_htc: USB layer deinitialized
 kernel: [ ] usbcore: registered new interface driver ath9k_htc

Le noyau détecte le matériel, identifie le type de matériel (usb wlan). Il essaie d’insérer un firmware dans la clef. Le fichier n’existe pas sur le système de fichiers local, la clef n’est pas utilisable. La commande ip address n’identifie pas d’interface réseau WiFi.

Le noyau affiche le nom du fichier attendu (htc_7010-1.4.0.fw). Il faut le trouver. Selon le matériel spécifique, la distribution utilisée, plusieurs méthodes peuvent être utilisées pour trouver ce fichier. La méthode la plus simple consiste à installer le paquet contenant le firmware. Si le matériel n’est pas de bonne qualité, il faudra peut être utiliser les dépôts non-free.

Une des méthodes consiste à utiliser apt search en donnant comme parmètres les bonnes chaînes de caractères. Dans notre cas, cela pourra être « firmware atheros » ou « firmware htc_7010-1.4.0.fw » ou autre chose encore…

$ apt search firmware atheros
En train de trier... Fait
Recherche en texte intégral... Fait
firmware-atheros/stable 20161130-3 all
  Binary firmware for Atheros wireless cards

firmware-linux-free/stable 3.4 all
  micrologiciels binaires pour des pilotes du noyau Linux

firmware-zd1211/stable 1:1.5-4 all
  binary firmware for the zd1211rw wireless driver

$ apt search firmware htc_7010-1.4.0.fw
En train de trier... Fait
Recherche en texte intégral... Fait
firmware-atheros/stable 20161130-3 all
  Binary firmware for Atheros wireless cards

Dans notre exemple, les deux commandes ont fourni le nom du paquet qu’il faut installer : firmware-atheros. Il faut donc l’installer. Ensuite, il faut charger le firmware dans la clef. Le plus simple consiste à rebooter l’ordinateur. La commande dmesg affiche l’information.

# dmesg | grep fw
[ 1754.043310] usb 1-9: ath9k_htc: \
                  Firmware ath9k_htc/htc_7010-1.4.0.fw requested
[ 1754.043731] usb 1-9: firmware: \
             direct-loading firmware ath9k_htc/htc_7010-1.4.0.fw
[ 1754.147434] usb 1-9: ath9k_htc: \
        Transferred FW: ath9k_htc/htc_7010-1.4.0.fw, size: 72812
root@gravillon:~# dmesg | grep firmw
[    1.931677] iwlwifi 0000:00:14.3:
    firmware: direct-loading firmware iwlwifi-so-a0-gf-a0-72.ucode

Si le paquet contenant le firmware n’existe pas pour la distribution, il est possible d’ajouter les dépôts backport ou de fouiller dans l’ensemble des paquets pour l’ensemble des distributions.

Si le firmware n’est pas disponible pour votre distribution, il faut essayer sur le site du fabricant ou ailleurs.

(image) Télécharger un fichier depuis internet depuis un site qui n’est ni le fabricant, ni le site officiel Debian est un gros risque. C’est une des méthodes pour infecter un ordinateur.

La commande ip affiche les caractéristiques de la carte.

$ ip address
...
4: wlxf8d1111c6128:  mtu 1500 qdisc noop \
                              state DOWN group default qlen 1000
    link/ether f8:d1:11:1c:61:28 brd ff:ff:ff:ff:ff:ff
...

Le nom de l’interface est wlxf8d1111c6128. Son nom contient son adresse mac. Nous utiliserons souvent le nom wlan0 comme nom d’interface générique.

Le noyau a donc bien chargé le pilote du matériel et transféré le firmware dans la clef. La commande pour lister les modules, c’est lsmod. Le protocole WiFi fait référence à 802.11. Donc il est possible de faire une recherche sur 802.11 ou 80211 pour voir quels modules sont utilisés.

$ lsmod | grep 802.11
$ lsmod | grep 80211
mac80211              671744   1 ath9k_htc
cfg80211              589824   4 ath9k_htc,mac80211,ath,ath9k_common
rfkill                 24576   3 bluetooth,cfg80211

Le module qui gère ce matériel semble être ath9k_htc, Il est possible de vérifier cela avec modinfo.

# modinfo ath9k_htc
filename:       /lib/modules/4.9.0-7-amd64/kernel/\
                     drivers/net/wireless/ath/ath9k/ath9k_htc.ko
firmware:       ath9k_htc/htc_9271-1.4.0.fw
firmware:       ath9k_htc/htc_7010-1.4.0.fw
description:    Atheros driver 802.11n HTC based wireless devices
license:        Dual BSD/GPL
author:         Atheros Communications
alias:          usb:v0CF3p20FFd*dc*dsc*dp*ic*isc*ip*in*
...
depends:        mac80211,ath9k_hw,ath9k_common,ath,cfg80211,usbcore
retpoline:      Y
intree:         Y
vermagic:       4.9.0-7-amd64 SMP mod_unload modversions
parm:           debug:Debugging mask (uint)
parm:           nohwcrypt:Disable hardware encryption (int)
parm:           btcoex_enable:Enable wifi-BT coexistence (int)
parm:           ps_enable:Enable WLAN PowerSave (int)
parm:           use_dev_fw:Use development FW version (int)
parm:           blink:Enable LED blink on activity (int)

Il est maintenant possible de manipuler la clef comme une interface Ethernet avec les commandes ip et la partie liaison de données et physique avec les commandes iw.

Avant de configurer la clef, c’est mieux de lui demander ses capacités. Pour cela, il faut utiliser la commande iw list. Cette commande affiche beaucoup de détails. Le résultat peut faire quelques centaines de lignes.

Wiphy phy0
        max # scan SSIDs: 4
        max scan IEs length: 2257 bytes
...
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
...
        Available Antennas: TX 0x3 RX 0x3
        Configured Antennas: TX 0x3 RX 0x3
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
                 * outside context of a BSS
        Band 1:
                Capabilities: 0x11ee
...
                Bitrates (non-HT):
                        * 1.0 Mbps
...
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
...
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm)
                        * 2472 MHz [13] (disabled)
                        * 2484 MHz [14] (disabled)
        Supported commands:
                 * new_interface
                 * disconnect
        Supported TX frame types:
                 * IBSS: 0x00 0x10 ...
                 * managed: 0x00 0x10 ...
...
        Supported RX frame types:
...
        software interface modes (can always be added):
                 * AP/VLAN
                 * monitor
        valid interface combinations:
                 * #{ managed, P2P-client } <= 2, #{ AP, mesh point, P2P-GO } <= 2,
                   total <= 2, #channels <= 1
...

Voici quelques éléments que nous utiliserons dans ce document :

Ciphers

La liste des protocoles cryptographiques gérés par l’interface. Les nouveaux pourront éventuellement être ajoutés par un nouveau firmware, à condition que celui ci soit sous licence libre.

Interfaces modes

ce sont les modes réseaux que l’interface supporte :

managed

l’interface est en mode client ;

AP

l’interface peut servir de point d’accès ;

monitor

l’interface peut capturer les paquets qui ne lui sont pas destinés.

band

le nombre de bandes de fréquences utilisables. La clef est relativement vieille, elle ne dispose que d’une seule bande.

Interface combinations

Une interface WiFi peut utiliser plusieurs modes simultanés. Elle peut être simultanément point d’accès et client, par exemple. Celle ci ne peut utiliser qu’une seule fréquence à la fois.

12.5.2.2 Gérer la partie sans fil

Nous avons maintenant une interface WiFi gérée par le noyau Linux. Nous allons la configurer pour qu’elle se connecte à une autre interface WiFi distante.

Configurer le mode managed . Nous allons configurer l’interface pour qu’elle se connecte à un point d’accès. Pour cela, il faut un point d’accès disponible, nous supposerons qu’il est configuré avec le wpa2 personnel.

Il faut commencer par activer le lien réseau et vérifier que nous pouvons détecter le ssid. Le paquet iw qui contient les commandes pour le WiFi est installé. Pour la documentation, vous pouvez consulter la documentation du noyau.

# ip link set up dev wlxf8d1111c6128
# iw dev wlxf8d1111c6128 scan | grep SSID
...
        SSID: osaka
...

Nous souhaitons nous connecter au ssid osaka, nous le voyons. Nous pouvons aussi vérifier la puissance de réception.

# iw dev wlxf8d1111c6128 scan
BSS 3c:46:d8:bc:a2:f8(on wlxf8d1111c6128)
...
        signal: -44.00 dBm
...
        SSID: osaka
...

Le signal est reçu avec une puissance de \( -44\mbox {dBm} \). C’est très bien, mais le point d’accès est à 20 cm de l’interface WiFi. Selon l’interface, l’expérence pourra montrer les seuils à partir desquels la transmission est problématique et impossible. Il vaut mieux commencer avec les deux équipements proches l’un de l’autre, surtout en environnement très bruité. Si plusieurs groupes d’étudiants font du Bluetooth et du WiFi, c’est un environnement très bruité

Nous avons donc le ssid, osaka, et nous possédons aussi le secret : tatatiti.

(image)Un mot de passe ou un secret écrit est forcément faible. Vous pouvez utiliser des secrets faibles pour la mise au point, seulement si vous savez que l’ordinateur de test va bientôt être réinstallé.

(image) Utiliser des secrets faibles pendant la mise au point est un des vecteurs de compromission. Par faiblesse, un jour, une des machines de test passera en production, le mot de passe sera exposé, un malfrat en profitera !

Le plus simple pour se connecter à un réseau protégé en wpa, c’est d’utiliser un fichier dans /etc/network/interfaces.d que nous pouvons nommer osaka.conf.

auto wlxf8d1111c6128
iface wlxf8d1111c6128 inet dhcp
    wpa-ssid osaka
    wpa-psk tititata

Il faut aussi que le paquet wpasupplicant soit installé, il suffit de demander à monter l’interface pour se connecter.

# ifdown wlxf8d1111c6128
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   Socket/fallback
root@debian:~# ifup wlxf8d1111c6128
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   Socket/fallback
DHCPDISCOVER on wlxf8d1111c6128 to 255.255.255.255 port 67 interval 3
DHCPDISCOVER on wlxf8d1111c6128 to 255.255.255.255 port 67 interval 4
DHCPREQUEST of 192.168.1.101 on wlxf8d1111c6128 to 255.255.255.255 port 67
DHCPOFFER of 192.168.1.101 from 192.168.1.1
DHCPNAK from 192.168.0.164
DHCPACK of 192.168.1.101 from 192.168.1.1
bound to 192.168.1.101 -- renewal in 34648 seconds.

Nous sommes connectés au point d’accès. S’il a accès à Internet et qu’il est bien configuré, alors l’ordinateur a accès aussi. Certes, c’est plus rassurant de faire cette manipulation à travers une interface graphique conviviale, mais, il est possible ainsi d’ajouter un raspberry qui sera placé loin du câblage filaire. De plus, cette manipulation est beaucoup plus fiable que les outils graphiques.

Pour arrêter la connexion, il suffit d’utiliser ifdown.

# ifdown wlxf8d1111c6128
Killed old client process
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   Socket/fallback
DHCPRELEASE on wlxf8d1111c6128 to 192.168.1.1 port 67
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   LPF/wlxf8d1111c6128/f8:d1:11:1c:61:28
Sending on   Socket/fallback
DHCPRELEASE on wlxf8d1111c6128 to 192.168.1.1 port 67
# ip a show wlxf8d1111c6128
4: wlxf8d1111c6128:  mtu 1500 \
           qdisc mq state DOWN group default qlen 1000
    link/ether f8:d1:11:1c:61:28 brd ff:ff:ff:ff:ff:ff

L’interface est alors désactivée.

La connexion Ad hoc est un mode de connexion entre des ordinateurs qui n’assurent pas le rôle de point d’accès. C’est assez simple à mettre en place.

Il suffit de régler de manière identique les deux interfaces. Sur le premier ordinateur :

root@chip:~# iw dev wlxf8d1111c6128 set type ibss
root@chip:~# ip link set up dev wlxf8d1111c6128
root@chip:~# iw dev wlxf8d1111c6128 ibss join foobar 2442
root@chip:~# ip addr add 10.1.2.2/24 dev wlxf8d1111c6128

La première commande configure l’interface en mode Ad-hoc. La seconde active lien et la troisième définit les paramètres. Enfin la dernière ligne affecte une adresse ip.

Il faut faire presque la même action de l’autre côté.

root@dale:~# iw dev wlxf8d1111107cf set type ibss
root@dale:~# ip link set up dev wlxf8d1111107cf
root@dale:~# iw dev wlxf8d1111107cf ibss join foobar 2442
root@dale:~# ip addr add 10.1.2.3/24 dev wlxf8d1111107cf

Ensuite, il faut lancer tshark sur une interface et faire un ping depuis l’autre ordinateur :

root@dale:~# tshark -n -i wlxf8d1111107cf
Running as user "root" and group "root". This could be dangerous.
tshark: Lua: Error during loading:
Capturing on 'wlxf8d1111107cf'
 1 0.000000000   10.1.2.2 -> 10.1.2.3 ICMP 98 Echo (ping) request
 2 0.000049714   10.1.2.3 -> 10.1.2.2 ICMP 98 Echo (ping) reply

root@chip:~# ping -c 1 10.1.2.3
PING 10.1.2.3 (10.1.2.3) 56(84) bytes of data.
64 bytes from 10.1.2.3: icmp_seq=1 ttl=64 time=0.905 ms

--- 10.1.2.3 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.905/0.905/0.905/0.000 ms

La connexion a bien lieu à travers l’interface WiFi.

(image)La connexion n’est pas chiffrée. Donc, un autre ordinateur peut capturer la communication. À moins que ce ne soit pour un jeu en réseau ou dans un désert, il faut faire attention.

12.5.2.3 Point d’accès WiFi

La mise en place d’un point d’accès WiFi telle que proposée par les fabricants de box internet ou de routeurs WiFi repose sur les éléments suivants :

  • 1. disponibilité d’une interface pouvant utiliser le mode AP (Access Point) ;

  • 2. configuration de l’interface WiFi avec une adresse fixe ;

  • 3. mise en place d’hostapd qui permet de mettre en place la couche liaison de données ;

  • 4. mise en place de la configuration ip des clients, par exemple avec dnsmasq ;

  • 5. mise en place du routage.

Le mode AP est il disponible. Nous avons vu comment interroger l’interface pour savoir si ce mode était utilisable.

Configurer l’adresse de l’interface WiFi . Il faut avoir établi un plan d’adressage et décider quelle serait l’adresse de cette interface et quelles seraient les adresses disponibles pour les clients. La configuration de l’interface peut se faire dans un fichier rangé dans le répertoire /etc/network/interface.d.

auto enxd8eb97bf90b0
iface enxd8eb97bf90b0 inet static
  address 10.22.1.1
  netmask 255.255.255.0

L’interface peut alors être activée. Elle devrait l’être à chaque reboot.

Mise en place d’hostapd . Le logiciel hostapd va permettre la connexion de la couche liaison de données. Elle peut être en clair, faiblement sécurisée avec wep ou utiliser le wpa2 en version personnelle ou entreprise. La mise en place du serveur hostapd est décrite à la section  ??.

Mise en place de la couche réseau Pour la couche réseau, il y a plusieurs façons. Il est possible, en particulier pour la mise au point d’utiliser les commandes d’iproute2 (12.1). Ce n’est pas la méthode classique. En général, il faut founir les paramètres aux clients avec un serveur dhcp. Les systèmes embarqués utilisent souvent dnsmasq (voir 14.3.4).

Le plus simple en utilisant dnsmasq consite à ajouter un ensemble d’adresses compatibles avec l’adresse de l’interface WiFi. Quand la couche ip est définie, il est possible de communiquer entre le point d’accès et chaque client. Pour aller plus loin, il faut définir une politique de routage.

Routage pour le routage, il faut indiquer au noyau que ce poste doit se comporter commme un routeur.

echo 1 > /proc/sys/net/ipv4/ip_forward

En général, il faut aussi activer la translation d’adresse. Si l’interface de sortie sera enp0s31f6, il faut activer la translation sur les paquets routés qui sortent par cette interface.

/sbin/iptables -t nat -A POSTROUTING -o enp0s31f6 -j MASQUERADE

12.5.2.4 Activez le double WiFi

Nous avons donc une seule interface WiFi, nommée wlan0, puis renommée wlxf8d1110d864d. Le fichier de configuration de hostapd commence par la définition de l’interface en utilisant le nom du nouveau standard :

interface=wlxf8d1110d864d

Pour ajouter un nouveau point d’accès, c’est relativement simple. Tous les paramètres identiques au point d’accès principal seront omis, toutes les modifications devront apparaître dans la nouvelle section. Une nouvelle section commence par bss=, suivi du nom de la nouvelle interface.

Comme nous allons utiliser une nouvelle interface, elle devra avoir une adresse MAC distincte. Il va donc falloir utiliser des adresse MAC distinctes légales. Les adresses commençant par l’octet 42, sont considérées comme des adresses administrées localement. Pour pouvoir utiliser une nouvelle interface sur la carte WiFi, hostapd impose que le dernier chiffre de l’adresse MAC soit zéro. Nous allons donc devoir changer l’adresse MAC de la carte WiFi. Donc si l’adresse MAC est :

f8:d1:11:0d:86:4d

Nous allons changer son adresse en remplaçant le premier octet par 42 et le dernier chiffre par 0 :

42:d1:11:0d:86:40

La commande à entrer est donc :

ip link set wlxf8d1110d864d address 42:d1:11:0d:86:40

Il reste à s’assurer que deux cartes n’utilisent pas la même adresse MAC. Ce qui n’est pas forcément très improbable si deux cartes sont achetées simultanément et que l’une sert pour un point d’accès multiple et l’autre pour faire un répéteur par exemple.

La modification de l’adresse MAC doit se faire avant la configuration de la carte WiFi. Dans le fichier /etc/network/interfaces, il faut utiliser la directive pre-up

auto wlxf8d1110d864d
iface wlxf8d1110d864d inet static
  address 10.34.210.1
  netmask 255.255.255.0
  broadcast 10.34.210.255
pre-up ip link set wlxf8d1110d864d address 42:d1:11:0d:86:40

Après avoir mis en service la carte WiFi avec le changement d’adresse MAC, nous pouvons relancer hostapd en définissant les paramètres pour le nouveau réseau (bss, ssid, utilisation du wpa et phrase de passe).

bss=wlan0_0
ssid=rubis
wpa=1
wpa_passphrase=tototiti4

Le lancement d’hostapd se fait en interactif pour vérifier.

# hostapd /etc/hostapd/hostapd2.conf
Configuration file: /etc/hostapd/hostapd2.conf
Using interface wlxf8d1110d864d with hwaddr 42:37:07:08:4f:f0 and ssid "diamant"
Using interface wlan0_0 with hwaddr 42:37:07:08:4f:f1 and ssid "rubis"
wlxf8d1110d864d: interface state UNINITIALIZED->ENABLED
wlxf8d1110d864d: AP-ENABLED

12.5.2.5 Répeteur

Il est parfois utile d’étendre la zone de couverture du WiFi. Pour cela, il faut configurer l’interface WiFi en cliente d’un point d’accès, puis créer une interface qui sera configurée par hostapd.

Pour créer cette interface, il faut changer son adresse mac pour que le dernier chiffre soit 0, comme précédement et demander la création d’un point d’accès :

iw dev wlp0s20f3 interface add uap0 type __ap

L’interface réseau uap0 apparaît et peut être utilisée.

12.5.2.6 Analyse spectrale

Pour faire de l’analyse spectrale, il faut un analyseur de spectre. Celui que nous avons à l’IUT est un wi-spy, figure 12.6.

(image)

Fig. 12.6 : L’analyseur de spectre usb

Le fonctionnement de l’équipement est très simple, il mesure la puissance reçue sur 256 intervales de fréquences dans la bande WiFi. Le paquet spectools contient quatre exécutables dont un en ligne de commande (raw) et un graphique gtk. Avec la ligne de commande les mesures sont affichées sur la sortie standard, elle peuvent être enregistrées pour être utilisées dans des logiciels de calculs scientifiques comme octave.

$ spectool_raw
Found 1 spectool devices...
Initializing WiSPY device Wi-Spy 24x USB 1554056046 id 1554056046
debug - spectool_device_init
debug - spectool_phy_open
debug - spectool_phy_setcalibration
debug - spectool_phy_setposition
debug - entering polling
Configured device 2758672341 (Wi-Spy 24x USB 2758672341)
    2399MHz-2483MHz @ 327.00KHz, 256 samples
Wi-Spy 24x USB 2758672341: -116 -116 -116 -117 -117 (256 mesures)
... Les mesures se répètent ...

La version graphique est plus jolie, mais sans mémoire. Elle se lance par la commande spectool_gtk. Il faut commencer par ouvrir le périphérique de capture. S’il est présent, il faut l’enabler dans la fenêtre 12.7.

(image)

Fig. 12.7 : Activation du périphérique de capture.

La fenêtre graphique présente alors trois graphiques (figure 12.8). Elle affiche trois graphiques :

Spectral View

présente une vision waterfall. La puissance est représentée par une couleur, le temps passe de haut en bas. Cela permet de visualiser les quelques instants précédents.

Topo View

Une représentation des pics de puissance. La couleur représente le pourcentage de mesures où le signal est au maximum de puissance dans cette fréquence.

Planar View

La vue planaire représente la puissance du signal pour chaque fréquence. Les valeurs affichées sont la valeur maximale (en bleu), instantanée en jaune.

Le graphique Spectral View permet de visualiser les quelques instants qui précèdent. Elle permet de visualiser l’évolution au cours du temps, comme un signal temporaire : le client WiFi vient de télécharger un logiciel ou le micro-onde a réchauffé la tasse de café.

Le graphique Planar view peut servir à deux usages. Elle permet de visualiser les fréquences faiblement occupées. Ainsi, dans une situation réelle, il serait possible de choisir harmonieusement les fréquences de chacune des bornes placées dans l’entreprise. L’autre usage consiste à laisser le logiciel actif. Il gardera la mémoire du maximum utilisé. Cela permettra de voir les parties jamais utilisées.

Pour une analyse plus fine, il faudra utiliser la version en ligne de commande, et écrire le programme d’analyse.

(image)

Fig. 12.8 : La fenêtre d’analyse spectools.

Tout en bas est affichée la liste des canaux. L’équipement utilisé ne permet pas d’afficher les nouvelles bandes de fréquence WiFi. Les méthodes restent valables avec un équipement plus récent. En passant la souris sur les numéros de canaux, une bande de fréquence se grise. En cliquant sur une fréquence la bande se représente en bleu, comme dans la figure 12.9. Le clic sur le chiffre 9 a bleuté une zone. Le passage de la souris au dessus du chiffre 3 grise une autre zone. Il est possible de cliquer sur plusieurs chiffres. Chaque zone aura sa couleur.

C’est une représentation de la largeur de bande utilisée par un canal WiFi. L’utilisation simultanée sur deux canaux adjacents causera des perturbations réciproques. Pour que deux émissions ne se perturbent pas, il faudra éloigner les fréquences suffisement pour limiter les perturbations.

(image)

Fig. 12.9 : L’affichage des fréquences utilisées par un canal.

La figure 12.10 montre comment choisir trois canaux utilisables simultanément sans qu’ils ne se causent des perturbations. C’est pour cela que la majorité des points d’accès utilisent les canaux 1, 6 ou 11. Certains équipements WiFi ne permettent pas d’utiliser les canaux 12 et 13. Le canal 14 est utilisé au japon seulement. Les composants WiFi pouvant être utilisés dans plusieurs pays, il faut indiquer au système d’exploitation dans quel pays il émet afin qu’il respecte la législation locale.

(image)

Fig. 12.10 : Représentation de trois canaux sans perturbations.

Ceci est rendu encore plus compliqué car la largeur de bande utilisée par un canal évolue. La capture faite par WiFiAnalyser (figure 12.3) montre que selon le point d’accès, la largeur de bande est de quatre ou huit canaux.

Précédent   Suivant