← Toutes les règles
SOCLE-CLD-SYS-045// Kernel & network (sysctl)moyenneruntime effectif

Désactiver le paramètre noyau de routage IP sur les interfaces IPv4

Empêche l'hôte de router des paquets entre interfaces en positionnant net.ipv4.ip_forward à 0.

Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 4 normes

Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.

Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.

Pourquoi cette règle

Le routage IP transforme l'hôte en routeur qui relaie les paquets entre interfaces. Sur un système non destiné à router, l'activer permet à un attaquant de faire transiter du trafic entre segments réseau et de contourner les contrôles de segmentation, tout en pouvant exposer la topologie interne. Il doit rester désactivé sauf si l'hôte est une passerelle assumée.

Ce que vérifie Pavois

Pavois lit la valeur effective via kernel_parameter('net.ipv4.ip_forward'), qui reflète le noyau en cours après fusion de tous les drop-ins sysctl.conf / /etc/sysctl.d/ et des sysctl -w runtime. C'est important car des outils comme Docker, libvirt ou un VPN peuvent basculer ip_forward à 1 à chaud, seule la valeur effective le révèle, jamais /etc/sysctl.conf.

describe kernel_parameter('net.ipv4.ip_forward') do
  its('value') { should cmp 0 }
end
describe command("grep -hsE '^[[:space:]]*net.ipv4.ip_forward[[:space:]]*=[[:space:]]*0([[:space:]]|$)' /etc/sysctl.conf /etc/sysctl.d/*.conf /run/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf 2>/dev/null") do
  its('stdout') { should match(/\S/) }
end

Comment vérifier qu’elle est appliquée

Exécuter sysctl net.ipv4.ip_forward et attendre net.ipv4.ip_forward = 0.

Inspecter et investiguer

Confirmer avec sysctl net.ipv4.ip_forward. S'il revient sans cesse à 1, identifier la cause : vérifier un moteur de conteneurs ou un VPN actif, et inspecter les drop-ins avec sysctl --system 2>&1 | grep ip_forward et grep -r ip_forward /etc/sysctl.conf /etc/sysctl.d/.

Remédiation

Le plan de durcissement de Pavois positionne net.ipv4.ip_forward = 0 via la ressource sysctl, en le persistant dans un drop-in géré par Pavois et en l'appliquant à chaud (sans redémarrage). À exécuter avec pavois harden apply.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

keynet.ipv4.ip_forward
resourcesysctl
value0
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Fort impact en cas de mauvaise application. NE PAS appliquer sur une machine qui doit router : routeurs, passerelles NAT, concentrateurs VPN, nœuds Kubernetes, hôtes Docker/Podman en réseau bridgé, ou hyperviseurs libvirt/KVM nécessitent tous ip_forward = 1. Le désactiver casse la connectivité conteneurs/VM/inter-sous-réseaux. Précaution : confirmer que l'hôte est un simple terminal avant d'appliquer ; s'il exécute des charges conteneurs ou de virtualisation, exclure cette règle (ces plateformes le réactivent souvent de toute façon).

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R12direct2.0haute
CIS1.4.3, 3.3.1, 3.3.1.1directper OS, see the benchmark tablehaute
NIST3.1.20, CM-6(a), CM-7(a), CM-7(b), SC-5, SC-7(a)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS1.4.3support4.0.1moyenne

Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.

Sources & références