Configurer le filtrage ARP pour toutes les interfaces IPv4
Impose net.ipv4.conf.all.arp_filter=0, le mode de gestion ARP référencé pour un comportement multi-rattaché prévisible.
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.
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
net.ipv4.conf.all.arp_filter contrôle la façon dont le noyau répond aux requêtes ARP sur un hôte multi-rattaché. Par défaut (0), le noyau traite la table ARP de manière globale et peut répondre à une requête ARP reçue sur une interface avec l'adresse MAC d'une autre interface. La valeur attendue et référencée ici est 0 : modifier ce réglage affecte la façon dont l'hôte annonce ses adresses et doit correspondre à la conception réseau documentée. Pavois applique la valeur prescrite par le standard afin que le comportement ARP de l'hôte soit prévisible et cohérent avec le reste de la base de durcissement.
Ce que vérifie Pavois
Pavois lit la valeur noyau effective via kernel_parameter('net.ipv4.conf.all.arp_filter') et vérifie qu'elle vaut 0. Le comportement ARP est déterminé par la valeur noyau effective, et non par ce qu'indique un fichier : une entrée de sysctl.d écrite mais non rechargée, ou écrasée par une clé d'interface, ferait que l'hôte se comporte différemment de ce que la configuration laisse croire. Lire la valeur effective est le seul moyen de confirmer le mode ARP réellement en vigueur.
describe kernel_parameter('net.ipv4.conf.all.arp_filter') do
its('value') { should cmp 1 }
end
describe command("grep -hsE '^[[:space:]]*net.ipv4.conf.all.arp_filter[[:space:]]*=[[:space:]]*1([[: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/) }
endComment vérifier qu’elle est appliquée
Exécutez sysctl net.ipv4.conf.all.arp_filter. Sortie attendue :
net.ipv4.conf.all.arp_filter = 0
Inspecter et investiguer
sysctl net.ipv4.conf.all.arp_filteraffiche la valeur courante.cat /proc/sys/net/ipv4/conf/all/arp_filterest la valeur brute du noyau.- Inspectez le comportement ARP réel avec
ip neigh show(table des voisins résolus) etsysctl -a | grep arp_filterpour voir les valeursallet par interface, qui se combinent.
Remédiation
Le plan de durcissement de Pavois utilise la ressource sysctl pour positionner net.ipv4.conf.all.arp_filter à 0. Il écrit la clé dans un drop-in géré par Pavois puis le recharge, de sorte que la valeur soit active immédiatement et persistante 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 :
| key | net.ipv4.conf.all.arp_filter |
|---|---|
| resource | sysctl |
| value | 1 |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Définir arp_filter=0 correspond à la valeur par défaut du noyau, donc sur les hôtes à interface unique il n'y a aucun impact. Sur les hôtes multi-rattachés ayant plusieurs interfaces sur le même sous-réseau, la gestion ARP peut provoquer un flux ARP (réponses depuis la « mauvaise » interface) ; si votre conception dépend d'un filtrage ARP par interface, le 0 global de cette règle peut entrer en conflit. Avant d'appliquer, examinez les hôtes multi-rattachés et combinez ceci avec le réglage de arp_ignore/arp_announce selon votre topologie. Aucun risque de blocage d'accès distant sur les serveurs ordinaires à interface unique.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R12 | direct | 2.0 | haute |
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.