Désactiver les interfaces réseau sans fil
Désactive toutes les radios sans fil (Wi-Fi, etc.) afin que l'hôte n'ait aucune interface sans fil active, nmcli radio signalant chaque radio comme éteinte.
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
Une radio sans fil activée sur un serveur constitue une bordure réseau non contrôlée. Un attaquant peut déployer un point d'accès pirate et attirer l'hôte vers une association malveillante ou une connexion ad hoc, puis mener une interception de type homme du milieu, une capture de trafic ou un déni de service, contournant totalement le périmètre filaire et le pare-feu. Sur les systèmes ne nécessitant que le réseau filaire, éteindre toutes les radios supprime entièrement cette surface d'attaque.
Ce que vérifie Pavois
Pavois interroge NetworkManager sur l'état réel des radios avec nmcli radio all et ne réussit que si rien n'est signalé comme enabled. Cela reflète le statut d'exécution effectif des radios, y compris celles activées après le démarrage, qu'un examen statique des fichiers de configuration ou des listes noires de modules noyau pourrait manquer ; c'est l'état en cours qu'un attaquant peut atteindre.
only_if { command('ls -d /sys/class/net/*/wireless 2>/dev/null | grep -q .').exit_status == 0 }
describe command('nmcli radio all 2>/dev/null | grep -qiw enabled && echo ko || echo ok') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez nmcli radio all. La sortie attendue affiche WIFI, WWAN (et autres) comme disabled/missing, aucune n'étant enabled. Pour rendre cela persistant, nmcli radio all off plus la mise en liste noire des modules noyau sans fil.
Inspecter et investiguer
NetworkManager journalise les changements de radio via journalctl -u NetworkManager. La présence et l'état des périphériques sans fil s'inspectent avec nmcli device status, rfkill list et ip link ; les chargements de modules noyau apparaissent dans dmesg.
Remédiation
Aucun plan de durcissement automatisé n'est défini ; cela doit donc être appliqué manuellement : éteignez les radios maintenant avec nmcli radio all off, et rendez-le durable en mettant les pilotes sans fil en liste noire (par ex. ajoutez des entrées install <module> /bin/false sous /etc/modprobe.d/) pour qu'ils ne puissent être rechargés, puis vérifiez avec nmcli radio all et rfkill list.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | nmcli radio all 2>/dev/null || rfkill list # nmcli radio all off (or: rfkill block wifi), only on hosts that must not use wireless |
|---|---|
| reason | disabling wireless can cut connectivity, confirm the host is wired |
| resource | manual |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
N'appliquez ceci que sur des hôtes reposant uniquement sur le réseau filaire. Sur un portable ou toute machine dont la seule connectivité est le Wi-Fi, désactiver les radios coupera l'accès réseau, y compris votre session distante, ne l'exécutez donc jamais via le lien sans fil dont vous dépendez. Confirmez d'abord un chemin filaire actif, et rappelez-vous que les radios peuvent se réactiver au redémarrage si vous ne mettez pas aussi les modules en liste noire.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.3.3, 3.1.2 | direct | per OS, see the benchmark table | haute |
| NIST | 3.1.16, AC-18(3), AC-18(a), CM-6(a), CM-7(a), CM-7(b), MP-7 | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 1.3.3 | support | 4.0.1 | moyenne |
| DISA STIG | UBTU-22-291015, UBTU-24-600230 | direct | per OS STIG release | 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.