Redirection IP Linux - Comment désactiver/activer l’utilisation de net.ipv4.ip_forward
Dans certains scénarios, il peut être nécessaire de configurer la redirection d’adresse IP Linux sur un système Linux. Si le serveur Linux agit comme un pare-feu, un routeur ou un périphérique NAT, il devra être capable de transférer des paquets destinés à d’autres destinations (autres que lui-même). Linux utilise la variable net.ipv4.ip_forward noyau pour activer ou désactiver ce paramètre.
À l’inverse, la redirection IP doit généralement être désactivée si vous n’utilisez pas l’une des configurations susmentionnées. En règle générale, vous ne voulez pas que votre système gaspille de la bande passante ou des ressources pour transférer des paquets ailleurs, à moins qu’il n’ait été conçu pour faire ce travail. L’utilisation du paramètre net.ipv4.ip_forward noyau pour contrôler la redirection IP vous assurera d’avoir un contrôle total sur vos paquets. Ce paramètre remplacera tous les autres paramètres du pare-feu et du logiciel.
Dans ce tutoriel, nous allons passer en revue les instructions étape par étape pour activer ou désactiver la redirection IP à l’aide d’exemples de ligne de commande. Vous pouvez appliquer ces commandes à n’importe quelle distribution Linux majeure, y compris des choix populaires comme Ubuntu et Red Hat. Vous verrez comment modifier le paramètre net.ipv4.ip_forward, qui contrôle si la redirection IP est activée ou désactivée pour IPv4.
Dans ce tutoriel, vous allez apprendre :
- Comment vérifier l’état actuel de la redirection IP
- Comment activer ou désactiver la redirection IP
- Étapes de dépannage courantes pour la redirection IP
Vérifier l’état actuel de la redirection IP
Vidéo
La plupart des systèmes seront en mesure d’utiliser la commande sysctl, qui peut appliquer des variables de noyau. Par conséquent, vous pouvez utiliser la commande sysctl suivante pour vérifier si le transfert IP est activé ou désactivé.
sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
Dans l’exemple ci-dessus, le paramètre net.ipv4.ip_forward du noyau est 0. Cela signifie qu’il est désactivé. S’il était défini sur 1, cela signifierait qu’il est activé.
Ce paramètre peut également être affiché dans le fichier /proc/sys/net/ipv4/ip_forward sur les systèmes avec systemd ou tout autre système d’initialisation.
cat /proc/sys/net/ipv4/ip_forward
0
La redirection IP est également connue sous le nom de routage. En ce qui concerne Linux, il peut également être appelé redirection IP du noyau car il utilise la variable net.ipv4.ip_forward du noyau pour activer ou désactiver la fonctionnalité de redirection IP. La valeur prédéfinie par défaut est ip_forward=0. Par conséquent, la fonction de transfert d’adresse IP Linux est désactivée par défaut.
Activer ou désactiver la redirection IP
Vous pouvez utiliser la commande sysctl suivante pour activer ou désactiver le transfert d’adresse IP Linux sur votre système.
sysctl -w net.ipv4.ip_forward=0
OR
sysctl -w net.ipv4.ip_forward=1
Vous pouvez également modifier le paramètre dans /proc/sys/net/ipv4/ip_forward pour activer ou désactiver le paramètre.
echo 0 > /proc/sys/net/ipv4/ip_forward
OR
echo 1 > /proc/sys/net/ipv4/ip_forward
L’utilisation de l’une ou l’autre des méthodes ci-dessus ne rendra pas la modification persistante. Pour vous assurer que le nouveau paramètre survit à un redémarrage, vous devez modifier le fichier /etc/sysctl.conf.
sudo nano /etc/sysctl.conf
Ajoutez l’une des lignes suivantes au bas du fichier, selon que vous souhaitez que la redirection d’IP Linux soit désactivée ou activée, respectivement. Ensuite, enregistrez vos modifications dans ce fichier. Le paramètre sera permanent lors des redémarrages. Le paramètre net.ipv4.ip_forward contrôle si la redirection IP est activée ou désactivée pour IPv4.
net.ipv4.ip_forward = 0
OR
net.ipv4.ip_forward = 1
Après avoir modifié le fichier, vous pouvez exécuter la commande suivante pour que les modifications prennent effet immédiatement.
sysctl -p
Dépannage
Notez que la commande sysctl si le service n’est pas en cours d’exécution. Vérifiez l’état de sysctl à l’aide de cette commande.
systemctl status sysctl
Le service doit indiquer qu’il est actif. Si ce n’est pas le cas, démarrez le service à l’aide de la commande suivante :
sudo systemctl start sysctl
Sur les installations Linux non-systemd, la vérification de l’état de sysctl sera différente. Par exemple, OpenRC utilise cette commande :
rc-service sysctl status
Si vous avez activé avec succès la redirection IP Linux (vérifiée en vérifiant la variable du noyau après le redémarrage), mais que vous ne recevez toujours pas de trafic sur les systèmes de destination, vérifiez les règles FORWARD d’iptables.
iptables -L -v -n
...
Chain FORWARD (policy ACCEPT 667 packets, 16724 bytes)
pkts bytes target prot opt in out source destination
Votre chaîne FORWARD doit soit être définie sur ACCEPT, soit avoir des règles répertoriées qui autorisent certaines connexions. Vous pouvez voir si le trafic atteint la chaîne FORWARD d’iptables en vérifiant la quantité de paquets et d’octets qui ont atteint la chaîne. S’il n’y en a pas, il se peut que vous ayez des règles plus élevées dans votre chaîne qui bloquent le trafic.
Réflexions finales
Dans ce tutoriel, nous avons vu comment activer ou désactiver la redirection IP dans les systèmes Linux en modifiant la variable du noyau. Les méthodes ici couvraient les systèmes qui utilisent systemd ou un autre système d’initialisation. Nous avons également appris à rendre les modifications persistantes et les étapes de dépannage courantes au cas où la redirection IP ne fonctionnerait toujours pas après la modification.
N’oubliez pas que ce paramètre doit toujours être désactivé pour les systèmes qui ne sont pas destinés à transférer le trafic réseau. Il peut les protéger contre l’utilisation pour masquer le trafic ou le gaspillage de bande passante et de ressources importantes pour traiter et transférer le trafic entrant vers d’autres destinations.

