Configurer l'acceptation des annonces de routeur sur toutes les interfaces IPv6
Fixe le paramètre noyau net.ipv6.conf.all.accept_ra à 0 afin que l'hôte ignore les messages d'annonce de routeur (RA) IPv6 sur toutes les 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.
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
Les annonces de routeur (RA) IPv6 ne sont pas authentifiées. Un nœud malveillant sur le segment local peut diffuser de fausses RA pour se faire passer pour la passerelle par défaut, puis intercepter, dérouter ou modifier le trafic (attaque de l'homme du milieu). Accepter les RA permet aussi à un attaquant d'injecter des préfixes et des routes qui réécrivent la table de routage de l'hôte. Sur un serveur à adressage statique, le traitement des RA n'apporte aucun bénéfice et ne fait qu'élargir la surface d'attaque.
Ce que vérifie Pavois
Pavois lit la valeur effective au runtime via la ressource kernel_parameter (équivalent à sysctl net.ipv6.conf.all.accept_ra) et vérifie qu'elle vaut 0. Lire la valeur réelle du noyau est supérieur à l'analyse de /etc/sysctl.conf ou /etc/sysctl.d/* : un réglage peut figurer dans un fichier tout en étant écrasé par un drop-in ultérieur, un argument de démarrage GRUB ou un gestionnaire réseau, et un fichier peut déclarer la valeur sans qu'elle soit jamais appliquée. La lecture effective reflète ce que fait réellement le noyau maintenant.
describe kernel_parameter('net.ipv6.conf.all.accept_ra') do
its('value') { should cmp 0 }
end
describe command("grep -hsE '^[[:space:]]*net.ipv6.conf.all.accept_ra[[: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/) }
endComment vérifier qu’elle est appliquée
Exécutez sysctl net.ipv6.conf.all.accept_ra (ou cat /proc/sys/net/ipv6/conf/all/accept_ra). Sortie attendue :
net.ipv6.conf.all.accept_ra = 0
Inspecter et investiguer
Aucun journal dédié n'existe pour ce paramètre. Inspectez la valeur active avec sysctl net.ipv6.conf.all.accept_ra, listez les clés liées avec sysctl -a | grep accept_ra, et vérifiez l'origine du réglage avec sysctl --system (qui affiche chaque fichier appliqué). Les changements de routage induits par des RA s'observent avec ip -6 route show et ip -6 neigh.
Remédiation
Le plan de durcissement de Pavois utilise la ressource sysctl pour fixer net.ipv6.conf.all.accept_ra à 0, le rend persistant via un drop-in /etc/sysctl.d/ géré par Pavois et l'applique à chaud (aucun redémarrage requis). Appliquez-le avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| key | net.ipv6.conf.all.accept_ra |
|---|---|
| resource | sysctl |
| value | 0 |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Sur un hôte qui dépend de l'autoconfiguration IPv6 (SLAAC) pour son adresse et sa route par défaut, désactiver l'acceptation des RA supprimera sa connectivité IPv6, il n'apprendra plus de passerelle automatiquement. Avant d'appliquer, vérifiez que l'hôte utilise un adressage IPv6 statique ou obtient ses adresses via DHCPv6 avec des routes configurées manuellement ; c'est le cas normal pour un serveur. Les routeurs et passerelles devant traiter les RA ne doivent pas se voir appliquer cette règle. Aucun risque pour les systèmes IPv4 uniquement ou à IPv6 statique.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 3.3.11, 3.3.2.7 | direct | per OS, see the benchmark table | haute |
| NIST | 3.1.20, CM-6(a), CM-7(a), CM-7(b) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
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.