Petite astuce du jour dont je me suis souvent servie par le pass√© pour des maquettes (avant de succomber √† gns3 qui m’a fait r√©viser mes commandes Cisco), comment transformer un serveur en routeur NAT pour que les clients d’un r√©seau local acc√®dent √† Internet.


Transformer son Debian en passerelle d’acc√®s √† Internet

Avant de démarrer, on va faire une petite mise au point au niveau des 2 notions de cet article : le routage et le NAT

Dans une infrastructure, le routeur est l√† pour diriger les paquets d’un r√©seau √† un autre. C’est l’√©quipement de l’infra qui doit avoir une “patte“, une interface, sur au minimum 2 r√©seaux diff√©rents et qui va faire en sorte que ces deux l√† communiquent, c’est pour cela que pour cette manipulation, il vous faudra une machine avec 2 cartes r√©seaux.

Concernant le NAT, le “Network Address Translating” c’est un service qui vient s’ajouter aux routeurs et qui est l√† pour faire de la traduction d’adresse r√©seau. Un routeur NAT sera situ√© entre le r√©seau Internet (WAN) et un r√©seau local (LAN). Le r√īle du NAT sera de traduire, de “translater“, les adresses IP internes, c’est √† dire les adresses IP du r√©seau local, en adresses IP routables sur internet qu’on appelle des IP publiques. En r√©sum√©, gr√Ęce au NAT, vos adresses locales seront substitu√©es par votre adresse IP publique √† chaque fois que vous allez √©mettre une requ√™te √† destination d’Internet.

 

Votre box internet est un parfait exemple de routeur NAT ! Nous allons ici voir comment utiliser un serveur sous Debian comme routeur NAT au lieu d’investir dans un √©quipement d√©di√©. Personnellement, je n’utilise des serveurs en tant que routeurs que pour des plateformes de tests. C’est parti !

Les manipulations sous Debian sont très simples et rapides.

 

Le serveur utilisé en tant que routeur doit avoir 2 cartes réseaux, chacune activée et paramétrée dans un réseau différent.

 

 

La 1√®re carte r√©seau est d√©finie sur DHCP pour simuler l’attribution automatique d’une configuration IP via Internet.

Une fois les cartes configur√©es, on commence par activer le routage sur le serveur. On dit techniquement qu’on active “l’ip forwarding“. Pour cela √©ditez le fichier /etc/sysctl.conf :

nano /etc/sysctl.conf

Cherchez la ligne ” #net.ipv4.ip_forward = 1 ” et d√©commentez la (supprimez le # devant celle-ci).

Après avoir modifié ce fichier, il faut réactiver la configuration pour prendre en compte les changements avec la commande :

sysctl -p /etc/sysctl.conf

Le routage est maintenant activé sur le serveur.

On passe au NAT n√©cessaire pour faire sortir les paquets sur l’ext√©rieur. C’est le firewall interne √† Linux qui g√®re cette partie. Il faut donc d√©finir une r√®gle dans le pare-feu qui va masquer la provenance des paquets, c’est √† dire remplacer l’IP source par l’adresse IP dite “publique”. Voici la commande :

iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

La partie “ens33” doit √™tre l’interface r√©seau du serveur par laquelle les paquets vont sortir sur internet.

/!\ Attention ! Cette règle sera supprimée au prochain redémarrage de la machine. Pour la rendre persistante, il faut commencer par enregistrer les règles iptables dans un fichier avec la commande suivante :

iptables-save > /etc/iptables-rules.save

Et ensuite, il faut restaurer ces r√®gles au d√©marrage, plus pr√©cis√©ment juste apr√®s l’activation (le “up”) des cartes r√©seau. Pour cela, il faut ajouter la ligne suivante √† la suite dans le fichier /etc/network/interfaces¬†:

post-up iptables-restore < /etc/iptables-rules.save

Et c’est tout ! Oui vraiment ! Le routeur NAT est pr√™t !

Pour le v√©rifier, on utilise un client sur le r√©seau local. On d√©fini sur ce client que l’adresse de sa passerelle est l’adresse IP de l’interface “LAN” du serveur.

 

On lance un ping √† destination d’une adresse sur Internet comme par exemple le DNS de google : 8.8.8.8.

Le ping fonctionne, les clients du r√©seau local peuvent d√©sormais acc√©der √† internet gr√Ęce au serveur transformer en routeur NAT !

[Tips] Configurer un routeur NAT sous Debian

Articles pouvant vous intéresser