Nous utiliserons le dnsmasqpackage à cet effet car il est un serveur DHCP et DNS combiné et également facile à configurer.
Si vous voulez quelque chose d'un peu plus «lourd», vous pouvez utiliser les
packages isc-dhcp-serveret bind9pour DHCP et DNS respectivement, mais pour nos besoins, cela dnsmasqfonctionne très bien.
sudo apt-get install dnsmasq
Nous devons configurer des interfaces. Nous allons attribuer une adresse IP statique à
eth0laquelle sera utilisée comme passerelle. Ouvrez le fichier d'interface
sudo nano /etc/network/interfaces
Modifiez la eth0section comme ceci:
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
Ensuite, nous allons configurer dnsmasq. Le dnsmasqfichier de configuration livré contient de nombreuses informations sur son utilisation. Je conseillerai donc de le déplacer et d'en créer un nouveau.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Collez ce qui suit dans le nouveau fichier
interface=eth0 # Use interface eth0
listen-address=192.168.2.1 # listen on
# Bind to the interface to make sure we aren't sending things
# elsewhere
bind-interfaces
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Assign IP addresses between 192.168.2.2 and 192.168.2.100 with a
# 12 hour lease time
dhcp-range=192.168.2.2,192.168.2.100,12h
Modifiez le /etc/sysctl.conffichier pour activer le transfert de paquets
sudo nano /etc/sysctl.conf
Supprimez le #du début de la ligne contenant
net.ipv4.ip_forward=1Cela permettra le transfert de paquets au prochain redémarrage. Mais si vous voulez l'essayer maintenant sans redémarrer, faites-le.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Nous devons également partager la connexion Internet de RPi avec les appareils connectés via Wi-Fi. Nous allons configurer un NAT entre eth0et
wlan0:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Cependant, nous avons besoin que ces règles soient appliquées à chaque redémarrage du Pi, alors exécutez sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
pour enregistrer les règles dans le fichier /etc/iptables.ipv4.nat. Maintenant, nous devons l'exécuter après chaque redémarrage, alors ouvrez le /etc/rc.localfichier avec
sudo nano /etc/rc.localet juste au-dessus de la ligne exit 0, ajoutez la ligne suivante:
iptables-restore < /etc/iptables.ipv4.nat
Et c'est tout! Redémarrez maintenant votre RPi et vous pourrez accéder à Internet
sudo reboot
La configuration ci-dessus ne fonctionnera pas dans la nouvelle version de Raspbian. J'ai donc créé un script pour cela qui le rend possible en moins de douleur.
Assurez-vous que vous avez indiqué le chemin d'accès complet au fichier. Et tu as fini. Redémarrez maintenant pour voir les changements