Configurer un routeur NAT sous Debian dans GNS3

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 à 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 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 !