Ajouter l'option nodev à /home
Monte la partition /home avec l'option nodev afin que les fichiers de périphérique dans les répertoires des utilisateurs ne soient pas interprétés.
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
/home contient les données inscriptibles appartenant aux utilisateurs. Le seul emplacement légitime pour les fichiers de périphérique est /dev sur la partition racine (la seule exception étant les chroot). Monter /home avec nodev force le noyau à ignorer tout nœud de périphérique caractère ou bloc créé à cet endroit, de sorte qu'un utilisateur ne puisse pas déposer un fichier de périphérique (par ex. une copie d'un disque ou de la mémoire) dans son répertoire personnel pour contourner les contrôles d'accès.
Ce que vérifie Pavois
Pavois lit le montage effectif via mount('/home') et vérifie que les options résolues incluent nodev. La table de montage réelle reflète les options appliquées par les unités de montage systemd ou par un remontage ultérieur, qu'une lecture statique d'/etc/fstab manquerait. Si /home n'est pas un point de montage distinct, il n'y a pas de partition dédiée à durcir.
describe mount('/home') do
its('options') { should include 'nodev' }
end
describe command("{ findmnt --fstab -no OPTIONS /home 2>/dev/null; grep -hsE '[[:space:]]/home[[:space:]]' /etc/fstab 2>/dev/null; systemctl show -p Options -- $(systemd-escape -p --suffix=mount /home 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 /home (ou findmnt -no OPTIONS /home) et vérifiez la présence de nodev, par exemple rw,nosuid,nodev,relatime.
Inspecter et investiguer
Utilisez findmnt /home pour inspecter les options actives. Il n'y a pas de ligne de journal dédiée ; l'ouverture d'un nœud de périphérique sur un montage nodev échoue simplement. Les enregistrements auditd dans /var/log/audit/audit.log peuvent montrer des tentatives d'accès associées si des règles sur les nœuds de périphérique sont configurées.
Remédiation
Cette règle n'a pas de plan de durcissement automatisé : appliquez-la manuellement. Ajoutez nodev à la ligne /home d'/etc/fstab (par ex. defaults,nodev,nosuid), puis mount -o remount /home et vérifiez avec findmnt /home.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | awk -v m=/home -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 /home && mount -o remount,nodev /home || true |
|---|---|
| name | mount-home-nodev |
| not_if | awk -v m=/home '$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
Sans nodev, un utilisateur pourrait créer des nœuds de périphérique dans son répertoire personnel pour accéder aux périphériques bruts et contourner les permissions de fichiers. Appliquer nodev présente un risque faible : les données utilisateur légitimes ne contiennent jamais de fichiers de périphérique. Précautions : le remount est sans interruption ; si /home n'est pas une partition distincte, n'appliquez pas nodev à / (la racine a besoin des nœuds de périphérique de /dev).
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.1.2.3.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.