Dans la série des points d’accès WiFi, nous allons voir le point d’accès WiFi multiple. Basé sur le point d’accès WiFi routé, il permet de créer plusieurs sous-réseaux dédiés au WiFi. Nous pourrons ensuite router chaque réseau différemment pour créer un réseau invité en entreprise, un réseau filtré pour les enfants à la maison, ou toute autre combinaison imaginable.
Cet article part du principe que vous avez déjà effectué toutes les manipulations de l’article Le point d’accès WiFi routé avant de commencer.
Configuration des interfaces
Pour pouvoir créer plusieurs réseaux WiFi, hostapd a besoin que l’adresse MAC de votre carte réseau WiFi soit corrigée comme suit :
- Le premier nombre va prendre la valeur
02
, qui est attribuée aux interfaces dont l’adresse MAC est gérée manuellement. - Le dernier chiffre doit valoir zéro. Hostapd créera ensuite des interfaces virtuelles qui auront une adresse MAC incrémentée.
Si je prends pour exemple mon interface réseau; son adresse MAC vaut 24:05:0f:6d:c0:f1
. Je l’ai donc modifié en 02:05:0f:6d:c0:f0
.
On ne peut modifier l’adresse MAC que d’une interface éteinte :
1 2 3 4 5 |
$ sudo ifconfig wlan0 down $ sudo ifconfig wlan0 hw ether 02:05:0f:6d:c0:f0 $ sudo ifconfig wlan0 up |
Ensuite, sachant qu’hostapd ajoutera un underscore et un incrément aux noms de ses interfaces virtuelles, nous allons créer leurs configurations sur le modèle de l’actuelle, puis nous y persisterons le changement d’adresse MAC :
1 |
$ sudo cp /etc/network/interfaces.d/wlan0 /etc/network/interfaces.d/wlan0_0 /etc/network/interfaces.d/wlan0_1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# interfaces(5) file used by ifup(8) and ifdown(8) allow-hotplug wlan0 iface wlan0 inet static address 192.168.3.1 netmask 255.255.255.0 pre-up ifconfig wlan0 hw ether 02:05:0f:6d:c0:f0 |
1 2 3 4 5 6 7 8 9 10 11 |
# interfaces(5) file used by ifup(8) and ifdown(8) allow-hotplug wlan0_0 iface wlan0_0 inet static address 192.168.4.1 netmask 255.255.255.0 |
1 2 3 4 5 6 7 8 9 10 11 |
# interfaces(5) file used by ifup(8) and ifdown(8) allow-hotplug wlan0_1 iface wlan0_1 inet static address 192.168.5.1 netmask 255.255.255.0 |
Note: Sur Raspbian, on utilise maintenant dhcpcd, un client DHCP qui semble plutôt envahissant. Vous devrez donc aussi mettre à jour sa configuration :
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
interface wlan0 static ip_address=192.168.3.1 interface wlan0_0 static ip_address=192.168.4.1 interface wlan0_1 static ip_address=192.168.5.1 |
Hostapd
Petite sauvegarde avant de modifier la configuration d’hostapd :
1 |
$ sudo cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.bak |
Nous allons renommer notre ancien réseau NomDuReseau
en Reseau-1
:
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
##### IEEE 802.11 related configuration ####################################### # SSID to be used in IEEE 802.11 management frames ssid=Reseau-1 # Alternative formats for configuring SSID # (double quoted string, hexdump, printf-escaped string) #ssid2="test" #ssid2=74657374 #ssid2=P"hello\nthere" |
Puis nous allons lui associer l’adresse MAC de base, celle que nous avons précédemment modifié, vers la fin du fichier :
1710 1711 1712 1713 1714 1715 1716 1717 1718 |
#corrupt_gtk_rekey_mic_probability=0.0 bssid=02:05:0f:6d:c0:f0 ##### Multiple BSSID support ################################################## |
Et enfin, nous ajoutons nos nouveaux réseaux à la fin du fichier :
1749 |
Comme indiqué dans les commentaires du fichier de configuration, les réseaux secondaires héritent de la configuration du réseau principal. Exception faite naturellement du SSID et des paramètres qui lui sont liés, comme l’authentification.
Dans chaque réseau secondaire, on peut surcharger à peu près tous les paramètres possible, tant qu’ils ne sont pas liés au matériel. Par exemple, il n’est pas possible de changer de canal, tous les réseaux d’un point d’accès donné utilisent la même radio sur le plan physique.
Bien sur nous devons redémarrer le service pour prendre en compte les modifications :
1 |
$ sudo service hostapd restart |
Dnsmasq
Petite sauvegarde avant de modifier la configuration de dnsmasq :
1 |
$ sudo cp /etc/dnsmasq.conf /etc/dnsmasq.bak |
Nous allons placer chacun de nos sous-réseaux WiFi sur des branches IP différentes :
- Réseau-1 sur 192.168.3.0/24
- Réseau-2 sur 192.168.4.0/24
- Réseau-3 sur 192.168.5.0/24
Pour cela, nous allons compléter la liste des interfaces que dnsmasq doit gérer :
102 103 104 105 106 107 108 109 110 111 112 113 114 |
# If you want dnsmasq to listen for DHCP and DNS requests only on # specified interfaces (and the loopback) give the name of the # interface (eg eth0) here. # Repeat the line for more than one interface. interface=wlan0 interface=wlan0_0 interface=wlan0_1 |
Puis nous allons faire de même avec nos tranches DHCP :
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# Uncomment this to enable the integrated DHCP server, you need # to supply the range of addresses available for lease and optionally # a lease time. If you have more than one network, you will need to # repeat this for each network on which you want to supply DHCP # service. dhcp-range=wlan0,192.168.3.2,192.168.3.254,12h dhcp-range=wlan0_0,192.168.4.2,192.168.4.254,12h dhcp-range=wlan0_1,192.168.5.2,192.168.5.254,12h |
Bien sur nous devons redémarrer le service pour prendre en compte les modifications :
1 |
$ sudo service dnsmasq restart |
Retourner aux points d’accès WiFi.
6 commentaires