S'assurer que /tmp est sur une partition séparée
Vérifie que /tmp est monté sur sa propre partition ou un tmpfs, afin que des options restrictives (nodev, nosuid, noexec) protègent le stockage temporaire.
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
/tmp est un stockage temporaire accessible en écriture à tous, utilisé par de nombreux programmes et tout utilisateur. Le monter séparément (partition dédiée ou unité tmpfs) permet d'imposer nodev, nosuid et noexec, bloquant l'exécution de charges déposées et l'abus de setuid, et empêche un afflux de fichiers temporaires de saturer le système de fichiers racine.
Ce que vérifie Pavois
Pavois utilise la ressource InSpec mount('/tmp'), lisant la table de montage effective (/proc/self/mountinfo) plutôt que /etc/fstab. Cela capte un /tmp fourni par l'unité systemd tmp.mount ou un tmpfs créé à chaud, des montages qu'une simple analyse de fstab raterait, et confirme ce que le noyau a réellement monté.
describe mount('/tmp') do
it { should be_mounted }
endComment vérifier qu’elle est appliquée
Exécutez :
findmnt /tmp
Attendu : une ligne montrant /tmp comme montage à part (périphérique distinct ou tmpfs), idéalement avec nodev,nosuid,noexec. Aucune sortie signifie que /tmp réside sur le système de fichiers racine et la règle échoue.
Inspecter et investiguer
Vérifiez le montage actif avec findmnt /tmp ou mount | grep ' /tmp '. Si une unité systemd le fournit, inspectez systemctl status tmp.mount et journalctl -u tmp.mount ; la configuration fstab persistante est dans /etc/fstab. Activez l'unité avec systemctl enable --now tmp.mount le cas échéant.
Remédiation
Aucun plan de durcissement automatisé n'est fourni pour cette règle : appliquez-la manuellement. Le plus simple est l'unité systemd tmp.mount (systemctl enable --now tmp.mount), qui fournit un /tmp tmpfs durci sans repartitionnement ; sinon ajoutez une partition dédiée ou une ligne tmpfs /tmp tmpfs defaults,nodev,nosuid,noexec 0 0 à /etc/fstab et remontez.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | # /tmp must be its own filesystem. Simplest without repartitioning: make it a tmpfs via systemd: systemctl unmask tmp.mount && systemctl enable --now tmp.mount # (review /usr/share/systemd/tmp.mount first). A real disk partition requires offline disk work. |
|---|---|
| reason | a separate /tmp filesystem needs partitioning/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
Un /tmp en tmpfs est volatil (vidé au redémarrage) et dimensionné sur la RAM ; des charges écrivant de gros fichiers temporaires peuvent atteindre ENOSPC ; noexec peut casser des installeurs ou outils de build qui s'exécutent depuis /tmp. Précautions : dimensionnez correctement le tmpfs, identifiez tout service exécutant du code depuis /tmp avant d'activer noexec, et vérifiez les applications gourmandes en temporaire après le changement. Basculer /tmp vers une unité/un montage est réversible mais efface le contenu existant.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.1.2.1.1 | direct | per OS, see the benchmark table | haute |
| NIST | CM-6(a), SC-5(2) | 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.