Placer /var/tmp sur une partition distincte
Monte /var/tmp sur un système de fichiers dédié afin que des options restrictives (noexec, nosuid, nodev) protègent cette zone temporaire accessible en écriture à tous.
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
/var/tmp est un stockage temporaire accessible en écriture à tous, utilisé par de nombreux programmes et lieu classique où un attaquant dépose et exécute une charge utile. Une partition dédiée permet d'appliquer des options de montage de durcissement, nodev, nosuid et surtout noexec, qui bloquent les nœuds de périphériques, l'escalade setuid et l'exécution de fichiers déposés là, tout en empêchant la croissance des fichiers temporaires de saturer le système de fichiers racine.
Ce que vérifie Pavois
Pavois vérifie la table de montage effective via la ressource mount('/var/tmp') (findmnt / /proc/self/mountinfo), et non /etc/fstab. fstab ne décrit qu'une intention, un montage peut échouer au démarrage ou être surchargé (par ex. par une unité systemd .mount ou un tmpfs). Lire l'état réel du noyau confirme que /var/tmp est réellement un système de fichiers monté séparément à l'instant T.
describe mount('/var/tmp') do
it { should be_mounted }
endComment vérifier qu’elle est appliquée
Exécutez findmnt /var/tmp. Une ligne renvoyée confirme un système de fichiers dédié ; une sortie vide signifie qu'il partage /var ou /, et la règle échoue. Vérifiez la colonne des options pour noexec,nosuid,nodev.
Inspecter et investiguer
Confirmez avec findmnt /var/tmp et df -h /var/tmp. Les problèmes de montage au démarrage apparaissent dans journalctl -b | grep -i var-tmp et systemctl status var-tmp.mount.
Remédiation
Il n'existe aucun plan de durcissement automatisé : cela nécessite un repartitionnement, peu sûr sur un système en fonctionnement. Appliquez-la manuellement, idéalement à l'installation, en allouant une partition ou un volume LVM dédié à /var/tmp (ou un tmpfs) et en le déclarant dans /etc/fstab avec noexec,nosuid,nodev.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | # /var/tmp should be its OWN filesystem (isolation + mount options). This needs (re)partitioning , # offline disk/LVM work, not a safe runtime change. findmnt /var/tmp >/dev/null 2>&1 && echo '/var/tmp is already a mount point' || echo '/var/tmp is NOT separate' # Then: dedicate an LVM volume / disk to /var/tmp and add it to /etc/fstab. # /var/tmp can instead be a tmpfs, add: tmpfs /var/tmp tmpfs defaults,rw,nosuid,nodev,noexec 0 0 |
|---|---|
| reason | a separate /var/tmp filesystem needs partitioning/LVM/tmpfs, not a safe runtime change |
| resource | manual |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Laisser /var/tmp sur la racine sacrifie la protection noexec/nosuid et laisse la croissance des fichiers temporaires menacer le système de fichiers racine. Précautions avant application : certains installateurs et paquets exécutent des scripts depuis /var/tmp, donc noexec peut casser certaines mises à jour ou outils de configuration tiers, testez d'abord. Migrez le système au repos, copiez avec rsync -aHAX en préservant le sticky bit (chmod 1777 /var/tmp) et conservez un accès console/secours au cas où le nouveau montage échouerait au démarrage.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R28 | direct | 2.0 | haute |
| CIS | 1.1.2.5.1 | 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.