17/01/2025

Commandes et Système

Réseau : comment activer l’IP forwarding sous Linux ?

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).

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Réseau : comment activer l’IP forwarding sous Linux ?

  • 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

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.