Introduction #
Dans ce laboratoire, nous allons transformer une machine Linux en point d’accès Wi-Fi.
L’architecture sera simple :
INTERNET
│
│
eth0
│
┌────────┴────────┐
│ Linux Router │
│ │
│ hostapd │
│ dnsmasq │
│ iptables │
└────────┬────────┘
│
wlan0
Alfa AWUS1900
│
Wi-Fi LAB
│
┌────────┴────────┐
│ │
Client 1 Client 2
192.168.50.10 192.168.50.11Dans cette configuration :
eth0est connectée à Internet ;wlan0est l’interface Wi-Fi de l’Alfa AWUS1900 ;hostapdcrée le point d’accès ;dnsmasqfournit le DHCP et le DNS ;iptablesréalise le NAT ;192.168.50.1sera la passerelle du réseau Wi-Fi.
1. Installer les outils #
Sur Debian, Ubuntu ou une distribution dérivée :
sudo apt updateInstaller les paquets :
sudo apt install hostapd dnsmasq iptables iwVérifier les interfaces :
ip addrNous devons identifier :
eth0
wlan02. Vérifier l’Alfa AWUS1900 #
Avant de configurer hostapd, vérifions que la carte Wi-Fi supporte le mode Access Point.
iw listPour rechercher directement les modes supportés :
iw list | grep -A 10 "Supported interface modes"Nous devons retrouver une ligne similaire à :
* APVérifier également le pilote utilisé :
ethtool -i wlan0Si ethtool n’est pas installé :
sudo apt install ethtoolLe fonctionnement de l’Alfa AWUS1900 dépend du pilote utilisé et de sa compatibilité avec le noyau Linux.
3. Configurer l’interface wlan0 #
Nous allons utiliser :
Réseau : 192.168.50.0/24
AP : 192.168.50.1
DHCP : 192.168.50.10 - 192.168.50.100Configurer wlan0 :
sudo ip addr flush dev wlan0
sudo ip addr add 192.168.50.1/24 dev wlan0
sudo ip link set wlan0 upVérifier :
ip addr show wlan0Résultat attendu :
inet 192.168.50.1/244. Configurer hostapd #
hostapd va transformer wlan0 en point d’accès Wi-Fi.
Sauvegarder la configuration existante :
sudo cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.bakÉditer le fichier :
sudo nano /etc/hostapd/hostapd.confConfiguration :
interface=wlan0
driver=nl80211
ssid=LAB-LINUX
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=ChangeMe-Lab-2026!Principaux paramètres #
interface=wlan0Utilise l’interface Wi-Fi wlan0.
driver=nl80211Utilise l’interface Linux moderne pour communiquer avec le pilote Wi-Fi.
ssid=LAB-LINUXNom du réseau Wi-Fi.
hw_mode=gUtilisation de la bande 2,4 GHz.
channel=6Canal utilisé par le point d’accès.
wpa=2Active WPA2.
wpa_key_mgmt=WPA-PSKAuthentification avec une clé pré-partagée.
rsn_pairwise=CCMPChiffrement AES-CCMP.
5. Tester hostapd #
Avant de lancer le service avec systemd, testons directement hostapd.
sudo hostapd /etc/hostapd/hostapd.confSi tout fonctionne, l’interface wlan0 devrait passer en mode Access Point.
Pour arrêter :
CTRL+CEn cas d’erreur :
iw listpuis :
ethtool -i wlan0Vérifiez également qu’aucun autre service ne contrôle l’interface Wi-Fi.
6. Configurer dnsmasq #
dnsmasq va fournir les adresses IP aux clients Wi-Fi.
Sauvegarder la configuration :
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bakÉditer :
sudo nano /etc/dnsmasq.confConfiguration :
interface=wlan0
bind-interfaces
dhcp-range=192.168.50.10,192.168.50.100,255.255.255.0,12h
dhcp-option=3,192.168.50.1
dhcp-option=6,192.168.50.1
server=1.1.1.1
server=8.8.8.8La plage DHCP sera donc :
192.168.50.10
↓
192.168.50.100La passerelle sera :
192.168.50.17. Vérifier la configuration dnsmasq #
Avant de démarrer le service :
sudo dnsmasq --testRésultat attendu :
dnsmasq: syntax check OK.8. Activer le routage IPv4 #
Vérifier l’état du forwarding :
sysctl net.ipv4.ip_forwardSi le résultat est :
net.ipv4.ip_forward = 0activer :
sudo sysctl -w net.ipv4.ip_forward=1Pour rendre le changement permanent :
sudo nano /etc/sysctl.d/99-wifi-router.confAjouter :
net.ipv4.ip_forward=1Appliquer :
sudo sysctl --systemVérifier :
sysctl net.ipv4.ip_forward9. Configurer le NAT avec iptables #
Les clients Wi-Fi utilisent :
192.168.50.0/24Internet est accessible par :
eth0Nous devons donc effectuer du NAT.
Ajouter le masquerading :
sudo iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o eth0 -j MASQUERADEAutoriser le trafic du Wi-Fi vers Internet :
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPTAutoriser les réponses :
sudo iptables -A FORWARD -i eth0 -o wlan0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTVérifier :
sudo iptables -L -n -vVérifier la table NAT :
sudo iptables -t nat -L -n -v10. Démarrer les services #
Démarrer dnsmasq :
sudo systemctl start dnsmasqVérifier :
sudo systemctl status dnsmasqDémarrer hostapd :
sudo systemctl start hostapdVérifier :
sudo systemctl status hostapdActiver les services au démarrage :
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq11. Tester depuis un client Wi-Fi #
Depuis un ordinateur ou un smartphone :
SSID : LAB-LINUX
Mot de passe : ChangeMe-Lab-2026!Le client devrait recevoir une adresse comprise entre :
192.168.50.10et :
192.168.50.100Sur le client Linux :
ip addrPuis :
ip routeLa passerelle devrait être :
192.168.50.112. Tester la connectivité #
Depuis le client Wi-Fi :
Tester le point d’accès #
ping 192.168.50.1Tester Internet par adresse IP #
ping 8.8.8.8Tester le DNS #
ping google.comSi 8.8.8.8 fonctionne mais que google.com ne fonctionne pas, le problème se situe probablement au niveau de la résolution DNS.
13. Observer les clients DHCP #
Sur le serveur Linux :
ip neighOn peut également observer les logs de dnsmasq :
sudo journalctl -u dnsmasq -fPour hostapd :
sudo journalctl -u hostapd -f14. Observer le trafic réseau #
Identifier les interfaces :
ip linkObserver le trafic sur wlan0 :
sudo tcpdump -i wlan0Observer le trafic sur eth0 :
sudo tcpdump -i eth0Observer uniquement le DHCP :
sudo tcpdump -i wlan0 port 67 or port 68Observer le DNS :
sudo tcpdump -i wlan0 port 53Ces commandes sont particulièrement utiles pour comprendre ce qui circule réellement entre les clients, le point d’accès et Internet.
15. Arrêter le laboratoire #
Arrêter les services :
sudo systemctl stop hostapd
sudo systemctl stop dnsmasqSupprimer les règles NAT :
sudo iptables -t nat -D POSTROUTING -s 192.168.50.0/24 -o eth0 -j MASQUERADESupprimer les règles de forwarding :
sudo iptables -D FORWARD -i wlan0 -o eth0 -j ACCEPTsudo iptables -D FORWARD -i eth0 -o wlan0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTComprendre le fonctionnement #
Le chemin d’un paquet est essentiellement :
Client Wi-Fi
│
▼
wlan0
│
▼
dnsmasq
DHCP + DNS
│
▼
Linux Kernel
IP Forwarding
│
▼
iptables
NAT
│
▼
eth0
│
▼
INTERNETChaque composant possède donc une responsabilité différente :
| Composant | Fonction |
|---|---|
hostapd |
Point d’accès Wi-Fi |
dnsmasq |
DHCP + DNS |
iptables |
NAT + filtrage |
| Kernel Linux | Routage IPv4 |
wlan0 |
Réseau Wi-Fi |
eth0 |
Accès Internet |
Conclusion #
Avec seulement quelques composants Linux, il est possible de construire un véritable laboratoire Wi-Fi :
Alfa AWUS1900
│
wlan0
│
hostapd
│
dnsmasq
│
iptables
│
eth0
│
INTERNETCette architecture constitue une excellente base pour comprendre le fonctionnement d’un réseau Wi-Fi, du DHCP, du DNS, du routage, du NAT et de l’analyse réseau sous Linux.
Elle peut ensuite servir de base à des laboratoires plus avancés autour de Wireshark, tcpdump, FreeRADIUS, WPA2-Enterprise, WPA3, IPv6 et de l’analyse de sécurité Wi-Fi.
⚠️ Utilisez ce laboratoire uniquement sur votre propre matériel ou sur un réseau pour lequel vous disposez d’une autorisation explicite.