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

Désactiver le transfert IPv4 (forwarding) sur toutes les interfaces IPv4

Définit net.ipv4.conf.all.forwarding=0 pour qu'un hôte non routeur ne route pas les paquets entre ses interfaces.

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é →
FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0
Un seul check, mappé sur 1 norme

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 transfert IP permet au noyau de router des paquets d'une interface à une autre, transformant l'hôte en routeur. Sur un système qui n'est pas censé router, laisser le transfert activé permet à un attaquant ayant pris pied d'utiliser l'hôte comme pivot pour atteindre les réseaux qu'il relie, contournant la segmentation et les pare-feux. Définir net.ipv4.conf.all.forwarding=0 garantit que l'hôte ne traite que le trafic qui lui est destiné. Le transfert ne doit être activé que sur les machines dont le rôle explicite est le routage (passerelles, boîtiers NAT, hôtes de conteneurs/VM).

Ce que vérifie Pavois

Pavois lit la valeur noyau effective via kernel_parameter('net.ipv4.conf.all.forwarding') et vérifie qu'elle vaut 0. Le fait que l'hôte transfère réellement le trafic dépend de la valeur noyau effective, et des outils comme Docker, libvirt ou un VPN démarré l'activent souvent à l'exécution, indépendamment de ce qu'indiquent les fichiers de sysctl.d. Lire la valeur effective détecte cette dérive ; un scanner basé sur les fichiers qui n'inspecte que la configuration rapporterait à tort le transfert comme désactivé.

describe kernel_parameter('net.ipv4.conf.all.forwarding') do
  its('value') { should cmp 0 }
end
describe command("grep -hsE '^[[:space:]]*net.ipv4.conf.all.forwarding[[: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écutez sysctl net.ipv4.conf.all.forwarding (équivalent à sysctl net.ipv4.ip_forward). Sortie attendue :

net.ipv4.conf.all.forwarding = 0

Inspecter et investiguer

  • sysctl net.ipv4.conf.all.forwarding affiche la valeur courante.
  • cat /proc/sys/net/ipv4/ip_forward est le commutateur global brut.
  • Pour trouver ce qui l'a réactivé, vérifiez systemctl status docker libvirtd ainsi que toute unité VPN/masquerade firewalld ; beaucoup d'entre elles activent le transfert à leur démarrage.

Remédiation

Le plan de durcissement de Pavois utilise la ressource sysctl pour positionner net.ipv4.conf.all.forwarding à 0. Il écrit la clé dans un drop-in géré par Pavois puis le recharge, de sorte que le transfert soit désactivé immédiatement et durablement. Appliquez-le avec pavois harden apply. Remarque : un service nécessitant le routage peut le réactiver à l'exécution ; relancez donc un scan après le démarrage de tels services.

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

keynet.ipv4.conf.all.forwarding
resourcesysctl
value0
pavois harden plan local

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

Impact & précautions

Désactiver le transfert casse tout rôle de routage. N'appliquez pas (ou excluez explicitement) les hôtes qui sont des passerelles, points de terminaison NAT/VPN, nœuds Kubernetes, ou hôtes Docker/libvirt, ceux-ci ont besoin du transfert pour le réseau des conteneurs/VM et leurs invités perdront la connectivité. Avant d'appliquer, vérifiez que le seul rôle de l'hôte est d'être un point de terminaison. Sur de tels serveurs terminaux, il n'y a aucun impact ni blocage d'accès distant, car leur propre SSH entrant/sortant ne nécessite pas le transfert.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS3.3.1.2directper OS, see the benchmark tablehaute

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