Dans la série des points d’accès WiFi, nous allons voir le point d’accès WiFi bridgé (ou Dumb AP), qui permet d’ajouter une connectivité WiFi à un réseau existant, sans autre nouveaux services que la négociation et l’authentification. Il utilise les services d’infrastructure existants.
Le pont réseau ou bridge
Le pont réseau est un moyen de bas niveau (couche 2 du modèle OSI) de relier des segments de réseau, généralement de technologies différentes. Nous allons l’utiliser ici pour relier un segment Ethernet à un segment WiFi. Nous aurons besoin du paquets bridge-utils
:
1 |
$ sudo apt-get install bridge-utils |
Nous allons commencer par séparer les différentes interfaces dans des fichiers de configuration différents exploitant le mécanisme de /etc/network/interfaces.d/
. Le premier contiendra l’interface de loopback et l’inclusion des autres :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' allow-auto lo iface lo inet loopback # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d |
Comme suggéré dans les commentaires, il peut-être pertinent de consulter les pages man interfaces (5), ifup (8), et ifdown (8).
L’interface Ethernet :
1 2 3 4 5 6 7 |
# interfaces(5) file used by ifup(8) and ifdown(8) allow-hotplug eth0 iface eth0 inet dhcp |
L’interface WiFi :
1 2 3 4 5 6 7 |
# interfaces(5) file used by ifup(8) and ifdown(8) allow-hotplug wlan0 iface wlan0 inet manual |
Et le pont réseau :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# interfaces(5) file used by ifup(8) and ifdown(8) allow-auto br0 iface br0 inet dhcp bridge_fd 1 bridge_hello 3 bridge_maxage 10 bridge_stp off bridge_ports eth0 wlan0 |
Ici on mettra notre point d’accès en DHCP, mais on peut très bien le fixer en static si on le souhaite.
Comme le montre la ligne 9, le pont relie entre elles les interfaces eth0 (Ethernet) et wlan0 (WiFi).
Il reste à redémarrer la pile réseau. Si vous êtes connecté en SSH sur le point d’accès et qu’il est en DHCP, la communication devrait couper quelques secondes puis réutiliser le bail précédent et rétablir la connexion :
1 |
$ sudo service networking restart |
Vous devriez maintenant avoir 4 interfaces :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000 link/ether b8:27:eb:f3:f5:23 brd ff:ff:ff:ff:ff:ff inet 192.168.2.14/24 brd 192.168.2.255 scope global eth0 valid_lft forever preferred_lft forever 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether e8:4e:06:19:47:ee brd ff:ff:ff:ff:ff:ff 4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether b8:27:eb:f3:f5:23 brd ff:ff:ff:ff:ff:ff inet 192.168.2.14/24 brd 192.168.2.255 scope global br0 valid_lft forever preferred_lft forever inet6 ****:****:****:****:****:****/64 scope link valid_lft forever preferred_lft forever |
Hostapd
Hostapd est le daemon qui va gérer le point d’accès WiFi et l’authentification. On l’installe par les dépôts :
1 |
$ sudo apt-get install hostapd hostap-utils |
S’il n’y a pas de configuration par défaut (et c’était mon cas), le fichier /etc/default/hostapd
nous indique que nous pouvons en trouver une dans /usr/share/doc/hostapd/examples/hostapd.conf.gz
. Comme souvent, ce fichier est plutôt bien documenté. Nous allons donc partir de ce dernier :
1 2 3 |
$ sudo cp /usr/share/doc/hostapd/examples/hostapd.conf.gz /etc/hostapd/ $ sudo gunzip /etc/hostapd/hostapd.conf.gz |
En cas de souci, nous pourrons toujours repartir du fichier d’origine.
Dans le lanceur (/etc/init.d/hostapd
), nous allons renseigner le chemin du fichier de configuration (/etc/hostapd/hostapd.conf
) dans la variable DAEMON_CONF
.
Dans sa configuration (/etc/hostapd/hostapd.conf
) nous allons créer un point d’accès WiFi de base, mais sécurisé quand même. Pour faire plus court, je vais ignorer ici les lignes de commentaires (grâce à la commande grep "^[^#]" /etc/hostapd/hostapd.conf
) , et je ne vais même vous montrer que les lignes qui ont changé par rapport aux valeurs par défaut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
interface=wlan0 bridge=br0 ssid=NomDuReseau channel=7 wpa=2 wpa_passphrase=MotDePasse wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP |
- L’interface doit correspondre à celle que nous avons vu plus haut. Le plus souvent ce sera wlan0.
- Le SSID est le nom sous lequel le point d’accès sera visible.
- Les canaux sont numérotés de 1 à 14. Nous allons nous placer vers le milieu.
- Les lignes suivantes paramètrent la sécurité WPA2.
Pour terminer, nous allons activer le transit des paquets à travers le pont :
1 |
$ sudo sysctl -w net.ipv4.ip_forward=1 |
Pour persister cette configuration sur disque afin de la retrouver après redémarrage, il faut la décommenter dans /etc/sysctl.conf
:
1 2 3 4 5 6 7 |
(...) # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 (...) |
Pour lus d’informations, voir la page man sysctl.conf (5).
Hormis la partie Hostapd, qui est spécifique aux réseaux WiFi, cette configuration peut aussi être utilisée telle quelle pour relier deux segments Ethernet, un segment Ethernet et un segment fibre, etc.
La différence avec un point d’accès routé réside dans le fait que les paquets transitent directement d’une interface à l’autre, sans être altérés, ce qui permet d’étendre le réseau sans en créer un nouveau. Tous les paramètres IP (masque, passerelle, broadcast, etc) restent inchangés, à part l’adresse, naturellement.
Retourner aux points d’accès WiFi.
Un commentaire