Réseau : comment activer l’IP forwarding sous Linux ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à activer l'IP forwarding sous Linux, en utilisant sysctl en ligne de commande. Cette manipulation est assez simple et nous allons voir comment rendre ce changement temporaire ou permanent sur le système.
Mais, au fait, c'est quoi l'IP forwarding ? Cela permet à un système d'exploitation, en l'occurrence ici Linux, de faire suivre des paquets comme le fait un routeur ou plus généralement de les router au travers d'autres réseaux. L'activation de l'IP forwarding peut être utile dans différents scénarios, notamment pour de l'écoute réseau dans le contexte de la cybersécurité (attaque man-in-the-middle, notamment). Plus simplement, cela peut s'avérer utile lorsque l'on souhaite utiliser une machine Linux pour assurer la fonction de routeur entre plusieurs réseaux.
Remarque : pour suivre ce tutoriel, vous avez besoin d'un accès root sur votre machine Linux (ou un accès via sudo).
Version originale de l'article : 2 juin 2014.
II. Afficher l'état de l'IP forwarding sur Linux
Avant d'évoquer la configuration, nous allons regarder l'état actuel de la machine. Pour savoir si l'IP forwarding est activé ou désactivé sur votre machine, saisissez cette commande :
sysctl net.ipv4.ip_forward
En principe, c'est désactivé par défaut. Vous devriez donc obtenir ce résultat :
net.ipv4.ip_forward = 0
Cela donne l'état de la fonctionnalité au niveau du noyau Linux de votre machine.
L'activation et la désactivation de l'IP forwarding, en IPv4 comme en IPv6, s'effectue dans les fichiers "/proc" du système. Il s'agit de "/proc/sys/net/ipv4/ip_forward" pour l'IPv4 et "/proc/sys/net/ipv6/conf/all/forwarding" pour IPv6.
Ainsi, vous pouvez aussi obtenir cette information pour l'IPv4 via la commande suivante :
cat /proc/sys/net/ipv4/ip_forward
Dans ce cas, la commande retournera "0" (désactivé) ou "1" (activé).
III. Activer temporairement l'IP forwarding
Pour activer l'IP forwarding de façon temporaire, il suffit de mettre l'IP forwarding à "1" en IPv4 et en IPv6. Vous pouvez modifier le fichier de configuration à la main, mais il est recommandé d'utiliser la commande sysctl :
- Pour IPv4 :
sudo sysctl -w net.ipv4.ip_forward=1
- Pour IPv6 :
sudo sysctl -w net.ipv6.conf.all.forwarding=1
Le changement temporaire veut bien sûr dire que les paramètres reviendront à leur valeur par défaut au redémarrage de la machine ou au redémarrage de "sysctl" s'il est fait manuellement.
IV. Activation permanente de l'IP forwarding
Pour activer ces changements de manière permanente, il faut aller modifier le fichier de configuration de sysctl pour qu'il charge nos modifications à chaque démarrage. Cette phrase fait référence au fichier "/etc/sysctl.conf". Pour activer l'IP forwarding de façon permanente, nous allons modifier ce fichier afin de décommenter deux lignes :
sudo nano /etc/sysctl.conf
Décommentez cette option pour IPv4 :
net.ipv4.ip_forward=1
Puis, un peu plus bas dans le fichier, nous ferrons de même avec cette ligne pour IPv6 :
net.ipv6.conf.all.forwarding=1
Ce qui donne :
Nous pourrons ensuite recharger la configuration pour que les changements prennent effet immédiatement :
sysctl -p /etc/sysctl.conf
Voilà, même après redémarrage de la machine, l'IP forwarding restera actif sur votre machine.
V. Conclusion
Nous venons de voir comment activer ou désactiver l'IP forwarding sur une machine Linux en ajustant les paramètres du noyau. La méthode détaillée dans cet article fonctionne sur de nombreuses distributions : Debian, Ubuntu, AlmaLinux, Rocky Linux, etc... Si votre machine n'est pas destinée à router du trafic, vous devez impérativement désactiver ce paramètre (configuration par défaut).
Bonjour It connect Moi c’est Dominique. Je veux rediriger les paquets qui viennent sur une interface vers une deuxieme interface. Comment puis je proceder ? Merci