Ajouter l'option nodev à /var/tmp
Monter /var/tmp avec l'option nodev afin que les nœuds de périphérique qui s'y trouvent soient ignorés par le noyau.
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
Le seul emplacement légitime pour les fichiers de périphérique est /dev sur la partition racine (les chroots étant la rare exception). Monter /var/tmp avec nodev force le noyau à ignorer tout nœud de périphérique caractère ou bloc qui s'y trouve, empêchant un attaquant d'introduire un fichier de périphérique (par ex. accès disque brut) dans un répertoire temporaire inscriptible par tous.
Ce que vérifie Pavois
Pavois lit les options de montage effectives via mount('/var/tmp'). Comme /var/tmp est souvent un montage lié (bind) ou un tmpfs géré par systemd, la vue réelle du noyau est la seule source fiable, analyser uniquement /etc/fstab manquerait les montages liés et les remontages à l'exécution.
describe mount('/var/tmp') do
its('options') { should include 'nodev' }
end
describe command("{ findmnt --fstab -no OPTIONS /var/tmp 2>/dev/null; grep -hsE '[[:space:]]/var/tmp[[:space:]]' /etc/fstab 2>/dev/null; systemctl show -p Options -- $(systemd-escape -p --suffix=mount /var/tmp 2>/dev/null) 2>/dev/null; } | grep -ow 'nodev'") do
its('stdout') { should match(/\S/) }
endComment vérifier qu’elle est appliquée
Exécutez findmnt -no OPTIONS /var/tmp et vérifiez la présence de nodev. Exemple de sortie : rw,nosuid,nodev,noexec,relatime.
Inspecter et investiguer
Inspectez l'état de montage avec findmnt /var/tmp et mount | grep ' /var/tmp '. Les événements de montage du noyau apparaissent dans journalctl -k / dmesg. Pour repérer des nœuds de périphérique existants : find /var/tmp -type c -o -type b.
Remédiation
Il n'existe aucun plan de durcissement automatisé pour cette règle, car /var/tmp doit être un système de fichiers ou montage lié séparé pour porter ses propres options. Appliquez-la manuellement : configurez /var/tmp comme un montage distinct, ajoutez nodev à son entrée /etc/fstab (ou à l'unité de montage systemd), puis mount -o remount /var/tmp et redémarrez pour confirmer la persistance.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | awk -v m=/var/tmp -v o=nodev '$0!~/^[[:space:]]*#/&&$2==m{n=split($4,a,",");h=0;for(i=1;i<=n;i++)if(a[i]==o)h=1;if(!h)$4=$4","o}{print}' /etc/fstab >/etc/.fstab.pav && cat /etc/.fstab.pav >/etc/fstab && rm -f /etc/.fstab.pav; mountpoint -q /var/tmp && mount -o remount,nodev /var/tmp || true |
|---|---|
| name | mount-var-tmp-nodev |
| not_if | awk -v m=/var/tmp '$2==m&&$0!~/^[[:space:]]*#/{print $4}' /etc/fstab | tr , '\n' | grep -qx nodev |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Ce qui peut casser : quasiment rien en fonctionnement normal, aucune charge légitime n'a besoin de nœuds de périphérique sous /var/tmp. Précautions : si /var/tmp n'est pas déjà un montage séparé, l'essentiel du travail consiste à le rendre tel (souvent un montage lié de /tmp ou un système de fichiers dédié). Testez le remontage en pré-production et redémarrez pour confirmer que l'option persiste.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.1.2.5.2 | direct | per OS, see the benchmark table | 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.