Configurer le Raspberry Pi en point d'accès WiFi
Objectif :

Configurer les adresses IP Ethernet (eth0) et WiFI du Raspberry PI
Sauvegarder la configuration initiale
Il est conseillé de copier le fichier /etc/network/interfaces
d'origine.
pi@raspberrypi:~ $ sudo cp /etc/network/interfaces /etc/network/interfaces.origin
Modifier le fichier /etc/network/interfaces
Exemple :
- L'interface
eth0
est configurée de la façon suivante : adresseIP
:192.168.1.11
, masque :255.255.255.0
, passerelle (gateway
) :192.168.1.254
, serveurDNS
:192.168.1.254
. - L'interface
wlan0
est configurée de la façon suivante : adresseIP
:192.168.2.254
Modifiez le fichier /etc/network/interfaces
à l'aide de l'éditeur de votre choix : nano
, ...
Résultat de la modification :
pi@raspberrypi:~ $ cat /etc/network/interfaces # 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' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d # interface eth0 auto eth0 iface eth0 inet static address 192.168.1.11/24 gateway 192.168.1.254 dns-nameservers 192.168.1.254 # interface eth0 auto wlan0 iface wlan0 inet static address 192.168.2.254/24
Désactiver le processus dhcpcd
pi@raspberrypi:~ $ sudo systemctl disable dhcpcd pi@raspberrypi:~ $ sudo systemctl stop dhcpcd
Remarque : si le processus RPi
.
Redémarrer le Raspberry Pi
pi@raspberrypi:~ $ sudo shutdown -r now
Valider la configuration
L'adresse IP et le masque
pi@raspberrypi:~ $ ip a | grep -A2 -E '(eth0:|wlan0:)' 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.11/24 brd 192.168.1.255 scope global eth0 -- 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b8:27:eb:yy:yy:yy brd ff:ff:ff:ff:ff:ff inet 192.168.2.254/24 brd 192.168.2.255 scope global wlan0
La passerelle
pi@raspberrypi:~ $ ip route default via 192.168.1.254 dev eth0 onlink 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.11 192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.254 linkdown
La configuration client DNS
pi@raspberrypi:~ $ cat /etc/resolv.conf # Generated by resolvconf nameserver 192.168.1.254
Configurer et installer un serveur DHCP
Installer
pi@raspberrypi:~ $ sudo apt-get install dnsmasq
Configurer
Sauvegarder la configuration d'origine
pi@raspberrypi:~ $ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.sav
Configurer le serveur DHCP
Exemple :
- Plage DHCP :
192.168.2.1
à192.168.2.4
- Interface :
wlan0
(WiFi) - Masque de sous-réseau :
255.255.255.0
- Durée du bail :
24h
/etc/dnsmasq.conf
à l'aide de l'éditeur de votre choix : nano
, ...
Résultat de la modification :
pi@raspberrypi:~ $ sudo cat /etc/dnsmasq.conf interface=wlan0 dhcp-range=192.168.2.1,192.168.2.4,255.255.255.0,24h
Redémarrer le service
pi@raspberry:~ $ sudo systemctl restart dnsmasq
pi@raspberry:~ $ sudo systemctl status dnsmasq ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server ... Active: active (running) ... raspberry dnsmasq[1057]: dnsmasq: vérification de syntaxe OK. ... raspberry dnsmasq-dhcp[1065]: DHCP, plage d'adresses IP 192.168.2.1 -- 192.168.2.4, durée de bail 1d raspberry dnsmasq[1065]: Lecture de /run/dnsmasq/resolv.conf raspberry dnsmasq[1065]: utilise le serveur de nom 192.168.1.254#53 raspberry dnsmasq[1065]: lecture /etc/hosts - 5 adresses raspberry dnsmasq[1066]: Too few arguments. raspberry systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Configurer le point d'accès WiFi
Installer
pi@raspberrypi:~ $ sudo apt-get install hostapd
Configurer
Modifier le fichier /etc/hostapd/hostapd.conf
Exemple de configuration :
- ssid : myRPiAccessPoint
- Méthode de sécurité du réseau WiFi : WPA-PSK
- code de sécurité : monPointAccesWiFiAccessCode=1346
pi@raspberry:~ $ sudo cat /etc/hostapd/hostapd.conf country_code=FR interface=wlan0 ssid=myRPiAccessPoint hw_mode=g channel=7 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=monPointAccesWiFiAccessCode=1346 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Indiquer au processus hostapd où se trouve le fichier de configuration
Il faut pour cela modifier le fichier /etc/default/hostapd
Sauvegarde :
pi@raspberrypi:~ $ sudo cp /etc/default/hostapd /etc/default/hostapd.originIl faut décommenter (en suppriment le caractère #) et renseigner la directive DAEMON_CONF. Effectuez la modification du fichier /etc/default/hostapd à l'aide de l'éditeur de votre choix : nano, ... Résultat de la modification :
pi@raspberrypi:~ $ sudo cat /etc/default/hostapd DAEMON_CONF="/etc/hostapd/hostapd.conf" #DAEMON_OPTS=""
Redémarrer le service hostapd
pi@raspberrypi:~ $ sudo systemctl unmask hostapd pi@raspberrypi:~ $ sudo systemctl enable hostapd pi@raspberrypi:~ $ sudo systemctl start hostapd
Valider l'installation
Vérifier l'état du service hostapd
pi@raspberrypi:~ $ sudo systemctl status hostapd ● hostapd.service - Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator ... Active: active (running) ... raspberry systemd[1]: Starting Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator... raspberry hostapd[1868]: Configuration file: /etc/hostapd/hostapd.conf raspberry hostapd[1868]: wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE raspberry systemd[1]: Started Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator.
Activer le routage
Dans le fichier /etc/sysctl.conf, Décommentez
net.ipv4.ip_forward=1
Mettre en place le NAT et les règles de sécurité
Activer le NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Autoriser wlan0 -> eth0
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Autoriser eth0 -> wlan0 uniquement pour les connexions établies
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Sauvegarder la configuration en mémoire
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Ajouter la ligne ci-dessous avant le exit 0 dans le fichier /etc/rc.local
Permet de recharger la configuration au émarrage du RPi
iptables-restore < /etc/iptables.ipv4.nat
Valider la configuration
Le réseau WiFi est visible

Connexion d'un équipement mobile
pi@raspberry:~ $ sudo journalctl -xe | grep DHCP nov. 08 11:56:07 raspberry systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... nov. 08 11:56:08 raspberry dnsmasq[652]: options à la compilation : IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfile nov. 08 11:56:08 raspberry dnsmasq-dhcp[652]: DHCP, plage d'adresses IP 192.168.2.1 -- 192.168.2.4, durée de bail 1d nov. 08 11:56:08 raspberry systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server. nov. 08 13:11:12 raspberry dnsmasq-dhcp[652]: DHCPDISCOVER(wlan0) xx:xx:xx:xx:xx:xx nov. 08 13:11:12 raspberry dnsmasq-dhcp[652]: DHCPOFFER(wlan0) 192.168.2.2 xx:xx:xx:xx:xx:xx nov. 08 13:11:14 raspberry dnsmasq-dhcp[652]: DHCPDISCOVER(wlan0) xx:xx:xx:xx:xx:xx nov. 08 13:11:14 raspberry dnsmasq-dhcp[652]: DHCPOFFER(wlan0) 192.168.2.2 xx:xx:xx:xx:xx:xx nov. 08 13:11:14 raspberry dnsmasq-dhcp[652]: DHCPREQUEST(wlan0) 192.168.2.2 xx:xx:xx:xx:xx:xx nov. 08 13:11:14 raspberry dnsmasq-dhcp[652]: DHCPACK(wlan0) 192.168.2.2 xx:xx:xx:xx:xx:xx
Tester la connexion Internet
L'accès à Internet depuis l'équipement mobile fonctionne