Ressources informatiques

Ressources informatiques

Ressources informatiques

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

Objectif :

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

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 :

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 dhcpcd ne s'arrête pas, il sera nécessaire de redémarrer le 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 :

Modifiez le fichier /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 :

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.origin

Il 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

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

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