On peut configurer un serveur Linux en tant que routeur NAT pour fournir un accès à Internet aux ordinateurs du réseau local. Je vous montrerai un exemple de configuration en utilisant le serveur Debian 11. Le serveur Ubuntu aura une configuration similaire.
Pour la démonstration je vais utiliser GNS3 où j’utilise:
- Réseau NAT pour accès à internet
- Serveur Debian 11
- Hub
- 2 PC (VPCS)
Debian a deux carte réseau:
- ens4: connecté a NAT et a accès à internet
- ens5: connecté au réseau interne (hub et quelques ordi)
Configuration des interfaces réseau Debian
Vérification de la configuration réseau
Tout d’abord, nous allons vérifier la configuration réseau de Debian :
ip a
Ici, nous avons vu que ens4 a reçu une adresse IP du serveur DHCP de notre GNS3, mais ens5 n’a aucune adresse IP.
Vérifions si notre serveur a accès à Internet :
ping google.com
Notre serveur Debian a accès à Internet.
Configuration de l’adresse IP sur ens5
Pour attribuer une adresse IP statique à ens5, créons le fichier 10-ens5 dans /etc/network/interfaces.d/ :
sudo nano /etc/network/interfaces.d/10-ens5
Et ajoutons les informations suivantes (je vais ajouter l’adresse IP 192.168.0.1/24) :
auto ens5
#iface ens4 inet dhcp
iface ens5 inet static
address 192.168.0.1/24
gateway 192.168.0.1
dns-nameservers 192.168.0.1
Ensuite, appliquons les changements au démarrage du réseau :
systemctl restart networking
Ou redémarrons le serveur Debian complètement :
sudo init 6
Vérifions la configuration du réseau :
ip a
Vérification de la connexion entre notre PC et le serveur Debian
Maintenant, vérifions la connexion avec le PC. Comme nous n’avons pas de serveur DHCP, configurons manuellement l’adresse IP sur PC1 pour vérifier si le réseau fonctionne correctement.
Pour PC1, attribuons l’adresse 192.168.0.11/24. Les ordinateurs VPCS dans GNS3 ont configuré le réseau avec la commande :
ip 192.168.0.11/24
Après la configuration, essayons de faire un ping vers notre serveur Debian :
Essayons de faire un ping vers Google (8.8.8.8) :
ping 8.8.8.8
Ping ne marche pas, c’est normal, car nous n’avons pas encore configuré le transfert IP (IP forwarding).
Installation du serveur DHCP sur Debian
Comme serveur DHCP, installons et configurons DNSmasq.
Commençons par mettre à jour notre système :
sudo apt update
sudo apt dist-upgrade -y
Installation de DNSmasq :
sudo apt install dnsmasq -y
Pour configurer le serveur DHCP, ajoutons dans /etc/dnsmasq.conf :
sudo nano /etc/dnsmasq.conf
Les informations suivantes :
interface=ens5
listen-address=127.0.0.1
domain=mynetwork.lan
dhcp-range=192.168.0.20,192.168.0.150,12h
Pour appliquer les changements, redémarrons DNSmasq :
debian@debian:~$ sudo systemctl restart dnsmasq.service
Et vérifions le statut de DNSmasq :
debian@debian:~$ systemctl status dnsmasq.service
Et si tout est correct, vérifions si le serveur DHCP fonctionne :
Configuration du transfert IP (IP forwarding)
Pour activer le routage, ouvrons le fichier de configuration /etc/sysctl.conf avec un éditeur de texte et recherchons la ligne suivante :
net.ipv4.ip_forward=1
Décommentons cette ligne en supprimant le “#” au début, ou ajoutons-la si elle n’existe pas. Enregistrons et fermons le fichier.
Pour appliquer les modifications sans redémarrer le serveur, exécutons la commande suivante :
sysctl -p
Configuration d’iptables
Vous devez également configurer iptables pour transférer le trafic.
Commencez par masquer les paquets (NAT) qui sortent via l’interface ens4 :
sudo iptables -t nat -A POSTROUTING -o ens4 -j MASQUERADE
Pour enregistrer cette règle iptables, utilisez l’outil iptables-save et enregistrez-la dans un fichier:
sudo sh -c 'iptables-save > /etc/iptables.ipv4.nat'
Ajoutons maintenant une commande pour restaurer ces règles au démarrage du système. Créons le script /etc/network/if-pre-up.d/iptables :
sudo nano /etc/network/if-pre-up.d/iptables
Le script :
#!/bin/sh
iptables-restore < /etc/iptables.ipv4.nat
Rendons-le exécutable :
sudo chmod +x /etc/network/if-pre-up.d/iptables
Ensuite, appliquons les changements au démarrage du réseau :
systemctl restart networking
Ou redémarrons complètement le serveur Debian :
sudo init 6
Vérifions notre configuration IPTABLES :
sudo iptables -t nat -L
Pour vérification, faisons un ping vers le serveur Google à partir de PC1 :
Voilà, nous avons configuré le serveur Debian comme routeur !
Bonne chance !