Le point d'accès WiFi bridgé

Le point d’accès WiFi routé

Facebooktwitterredditpinterestlinkedinmail

Dans la série des points d’accès WiFi, nous allons voir le point d’accès WiFi routé, qui permet d’étendre un réseau existant d’un nouveau sous-réseau dédié au WiFi. Il met en œuvre le cas échéant ses propres services d’infrastructure (passerelle, serveur DHCP, serveur DNS, etc).

Configuration des interfaces

Ici pas de bridge, mais on configure les interfaces réseau de la même manière que pour le point d’accès WiFi bridgé, que je trouve plus propre. Chaque interface réseau est configurée dans un fichier à part qui prendra place dans le dossier /etc/network/interfaces.d/.

Le premier contiendra l’interface de loopback et l’inclusion des autres :

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 :

L’interface WiFi. Contrairement au réseau bridgé, elle aura une adresse IP statique :

Mon sous-réseau Ethernet est en 192.168.2.0/24, je vais donc utiliser le sous-réseau 192.168.3.0/24 pour le WiFi.

Nous allons ensuite redémarrer le réseau pour appliquer les modifications. Si vous êtes connecté en SSH par l’interface eth0 et que vous ne l’avez pas modifié, le réseau reviendra de lui même. Dans le cas contraire, vous devrez connaître ou retrouver la nouvelle adresse par vos propres moyens.

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 :

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 :

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. La seule différence avec le réseau bridgé, c’est le paramètre bridge, qui disparaît.
  2. L’interface doit correspondre à celle que nous avons vu plus haut. Le plus souvent ce sera wlan0.
  3. Le SSID est le nom sous lequel le point d’accès sera visible.
  4. Les canaux sont numérotés de 1 à 14. Nous allons nous placer vers le milieu.
  5. Les lignes suivantes paramètrent la sécurité WPA2.

Nous allons ensuite (re) démarrer le service hostapd pour prendre en compte la configuration :

À ce stade, vous devriez pouvoir visualiser votre nouveau réseau WiFi et vous authentifier dessus. En revanche, vous ne pourrez pas encore obtenir d’adresse IP.

Dnsmasq

Dnsmasq est à la fois un cache DNS (comme son nom l’indique) et un serveur DHCP. Son comportement est assez intéressant puisque la partie serveur DNS peut convertir les données plusieurs sources (serveur DNS, fichier /etc/hosts, etc) en données DNS qu’elle servira de façon conventionnelle. La partie DHCP n’est pas en reste malgré son rôle secondaire, avec un niveau de configuration qui n’a rien à envier à des serveurs DHCP dédiés.

Comme pour la configuration d’hostapd, je ne vais reporter que les lignes modifiées de la configuration :

  1. Le serveur DNS refusera les requêtes incomplètes, sans nom de domaine après le nom d’hôte.
  2. Les serveurs DNS et DHCP ne seront à l’écoute que sur l’interface WiFi. On ne peut avoir qu’un seul serveur DHCP par sous-réseau.
  3. Les machines clients du serveur DHCP se verront attribuer une adresse IP comprise entre 192.168.3.2 et 192.168.3.254; et la durée de bail sera de 12h.

Nous allons ensuite (re) démarrer le service dnsmasq pour prendre en compte la configuration :

À ce stade, vous devriez pouvoir visualiser votre nouveau réseau WiFi et vous authentifier dessus. Vous pourrez obtenir une adresse IP faisant partie du réseau 192.168.3.0/24, et résoudre des noms de domaine. Mais ce dernier point sera difficile à confirmer puisque vous ne serez pas encore routé vers l’extérieur

Le routage

Nous allons maintenant activer le transit des paquets entre les interfaces :

Pour persister cette configuration sur disque afin de la retrouver après redémarrage, il faut la décommenter dans /etc/sysctl.conf :

Pour lus d’informations, voir la page man sysctl.conf (5).

Et enfin, nous allons activer la translation d’adresse. Les paquets ne feront plus que transiter. Ils seront altérés au fur et à mesure pour être redirigés vers la prochaine passerelle. À leur retour, ils seront reconnus et altérés à nouveau pour atteindre leur cible. La translation d’adresse nécessite l’installation de Netfilter, plus connu sous le nom d’iptables :

Lorsqu’on manipule iptables, chaque erreur peut être fatale. Le pire que l’on puisse faire est de verrouiller le port sur lequel nous sommes connecté. Sur mon Raspberry Pi 2 de test, ce n’est pas trop grave. Il me suffirait de brancher un écran et un clavier pour rattrapper le coup. Sur une machine hébergée en revanche, cela peut devenir très délicat. Heureusement il existe une procédure qui nous protège de toute mauvaise manipulation.

Créer le fichier iptables.conf :

Puis appeler iptables-apply, qui est capable en cas de perte de communication de rétablir les précédents réglages valides :

Cette fois vous avez accès à Internet depuis votre réseau WiFi.

Pour que les règles de pare-feu se chargent automatiquement au démarrage, il faut les persister sur disque, comme pour le reste :

Retourner aux points d’accès WiFi.

 

Facebooktwitterredditpinterestlinkedinmail

2 commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *