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

Désactiver l'acceptation des paquets routés entre interfaces locales

Définit net.ipv4.conf.all.accept_local=0 pour que le noyau rejette les paquets entrants usurpant l'une des adresses sources locales de l'hôte.

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

Lorsque net.ipv4.conf.all.accept_local=1, le noyau accepte les paquets arrivant sur une interface dont l'adresse source est l'une des adresses locales de l'hôte (y compris le bloc de bouclage 127.0.0.0/8). Un attaquant sur le réseau peut forger de tels paquets usurpés pour faire passer l'hôte pour lui-même et contourner des filtres qui font confiance aux adresses sources locales. Le mettre à 0 fait que le noyau les considère comme des paquets invalides (martiens) et les rejette, fermant un vecteur d'usurpation d'adresse locale. Ce comportement est rarement nécessaire hors de configurations de routage spécifiques.

Ce que vérifie Pavois

Pavois lit la valeur noyau effective via kernel_parameter('net.ipv4.conf.all.accept_local') et vérifie qu'elle vaut 0. La clé all fixe la valeur par défaut effective appliquée par le noyau ; lire la valeur effective détecte un drop-in écrit mais jamais rechargé, ou écrasé par un fichier ultérieur. Un balayage limité aux fichiers de sysctl.d ne peut pas prouver ce que le noyau applique réellement aux paquets entrants.

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

net.ipv4.conf.all.accept_local = 0

Inspecter et investiguer

  • sysctl net.ipv4.conf.all.accept_local affiche la valeur courante.
  • cat /proc/sys/net/ipv4/conf/all/accept_local est la valeur brute du noyau.
  • Les paquets rejetés comme martiens ne sont journalisés que si log_martians est activé, voir la règle associée sysctl-net-ipv4-conf-all-log_martians, après quoi les paquets usurpés rejetés apparaissent dans dmesg / journalctl -k sous forme d'entrées martian source.

Remédiation

Le plan de durcissement de Pavois utilise la ressource sysctl pour positionner net.ipv4.conf.all.accept_local à 0. Il écrit la clé dans un drop-in géré par Pavois puis le recharge, de sorte que le réglage soit actif immédiatement et persistant après redémarrage. Appliquez-le avec pavois harden apply.

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

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

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

Impact & précautions

Pour un hôte standard, c'est la valeur sûre par défaut et elle n'a aucun effet sur le trafic normal. L'exception est une topologie de niche où l'on route délibérément des paquets entre deux interfaces de l'hôte par le réseau (certaines conceptions de répartition de charge ou de routeur multi-rattaché reposent sur accept_local=1). Avant d'appliquer, vérifiez que l'hôte n'est pas un tel routeur ; si c'est le cas, cette règle cassera ce chemin et il faudra restreindre l'assouplissement à l'interface concernée plutôt que désactiver la protection globalement.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R12direct2.0haute

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