Désactiver le paramètre noyau d'acceptation des paquets à routage par la source sur les interfaces IPv4 par défaut
Force net.ipv4.conf.default.accept_source_route à 0 afin que chaque interface IPv4 nouvellement créée refuse par défaut les paquets à routage par la source.
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 paquets à routage par la source transportent un chemin explicite choisi par l'émetteur, ordonnant aux routeurs de les acheminer par une route autre que celle qu'aurait choisie la table de routage. Les attaquants s'en servent pour contourner les pare-feu et les contrôles fondés sur le routage, atteindre des hôtes autrement injoignables et usurper les chemins de retour. Les usages légitimes se limitent essentiellement aux routeurs délibérés ; un hôte ordinaire doit définir le modèle default à 0 afin que chaque nouvelle interface refuse les paquets à routage par la source.
Ce que vérifie Pavois
Pavois lit la valeur d'exécution en direct de net.ipv4.conf.default.accept_source_route depuis le noyau (ressource InSpec kernel_parameter, équivalente à sysctl), et non un fichier /etc/sysctl.d/. La clé default définit le modèle des interfaces créées ultérieurement, donc seule la valeur en cours reflète la posture que les futures interfaces hériteront. Un drop-in pourrait déclarer 0 alors qu'un fichier ultérieur ou un sysctl -w l'a surchargé ; le paramètre effectif fait autorité.
describe kernel_parameter('net.ipv4.conf.default.accept_source_route') do
its('value') { should cmp 0 }
end
describe command("grep -hsE '^[[:space:]]*net.ipv4.conf.default.accept_source_route[[: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.ipv4.conf.default.accept_source_route. Sortie attendue :
net.ipv4.conf.default.accept_source_route = 0
Inspecter et investiguer
Aucun journal dédié n'existe. Avec log_martians activé, les paquets à routage par la source rejetés apparaissent via dmesg | grep -i martian et journalctl -k. Inspectez l'état avec sysctl net.ipv4.conf.default.accept_source_route et toutes les valeurs associées avec sysctl -a | grep accept_source_route.
Remédiation
Le plan de durcissement de Pavois utilise la ressource sysctl pour définir net.ipv4.conf.default.accept_source_route à 0, en l'appliquant au noyau en cours d'exécution et en le persistant dans un drop-in géré par Pavois sous /etc/sysctl.d/ afin qu'il survive au 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.default.accept_source_route |
|---|---|
| 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
Sûr pour la quasi-totalité des hôtes ; le routage par la source est obsolète et presque universellement indésirable. La seule exception légitime est un système fonctionnant comme routeur avec le transfert IPv4 activé qui doit honorer les paquets à routage par la source, un besoin très rare. C'est le modèle default ; associez-le à la règle all.accept_source_route pour une couverture complète. Définir cette valeur à 0 ne présente aucun risque de perte d'accès distant.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R12 | direct | 2.0 | haute |
| CIS | 3.3.8, 3.3.1.15 | direct | per OS, see the benchmark table | haute |
| NIST | 3.1.20, CM-7(a), CM-7(b), SC-5, SC-7(a) | 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.