← Toutes les règles
SOCLE-CLD-GEN-030// Hardening (misc)moyenneconfig persistante

Définir un délai d'expiration des sessions interactives

Définit une valeur TMOUT du shell dans /etc/profile, /etc/profile.d/ ou /etc/bashrc afin que les shells interactifs inactifs soient automatiquement déconnectés.

Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.

Un PASS prouve? actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 5 normes

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

Terminer automatiquement une session inactive réduit la fenêtre durant laquelle une console ou une session SSH laissée connectée sans surveillance peut être détournée par une personne non autorisée. Sans TMOUT, un shell root oublié sur un terminal verrouillé mais non déconnecté constitue un risque permanent.

Ce que vérifie Pavois

Pavois recherche dans les fichiers d'initialisation du shell (/etc/profile, /etc/profile.d/*, /etc/bashrc) une affectation TMOUT= non commentée. Comme TMOUT est une variable interne du shell positionnée à la connexion par ces scripts (il n'y a pas de service à interroger), la source de vérité effective est les fichiers d'init eux-mêmes, Pavois vérifie précisément les fichiers que le shell source, y compris les drop-ins de /etc/profile.d/.

describe command('grep -qrE \'^[^#]*TMOUT=[0-9]\' /etc/profile /etc/profile.d/ /etc/bashrc 2>/dev/null && echo ok || echo ko') do
  its('stdout.strip') { should eq 'ok' }
end

Comment vérifier qu’elle est appliquée

Exécutez grep -rE '^[^#]*TMOUT=' /etc/profile /etc/profile.d/ /etc/bashrc. Attendez-vous à au moins une correspondance telle que readonly TMOUT=600. Dans un nouveau shell de connexion, echo $TMOUT doit afficher le nombre de secondes configuré.

Inspecter et investiguer

Les fins de session déclenchées par TMOUT ferment la session SSH/console, journalisées dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (RHEL). Vérifiez directement la variable avec echo $TMOUT dans un shell interactif.

Remédiation

Aucun plan de durcissement automatisé n'est fourni ; appliquez-la manuellement. Ajoutez un fichier comme /etc/profile.d/tmout.sh contenant TMOUT=600; readonly TMOUT; export TMOUT (10 minutes). L'usage de readonly empêche les utilisateurs de le désactiver. Attention : seuls /bin/sh/bash respectent TMOUT ; les autres shells (zsh, fish) nécessitent leur propre équivalent.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

contentTMOUT=900 readonly TMOUT export TMOUT
grouproot
mode0644
ownerroot
path/etc/profile.d/99-pavois-tmout.sh
resourcefile
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Définir TMOUT trop bas gêne le travail légitime, des commandes interactives longues à l'invite, un éditeur en pause ou un suivi de log peuvent se déconnecter en pleine utilisation, et une valeur readonly ne peut être contournée par session. Choisissez une valeur (souvent 600:900 s) équilibrant sécurité et ergonomie, et rappelez-vous qu'elle s'applique à tous les shells interactifs, y compris ceux des administrateurs. Elle n'affecte pas les tâches non interactives, cron ou les processus d'arrière-plan établis, donc aucun risque d'interruption de service.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R32direct2.0haute
CIS5.4.3.2, 8.6.1directper OS, see the benchmark tablehaute
NIST3.1.11, AC-12, AC-2(5), CM-6(a), SC-10support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS8.6.1support4.0.1moyenne
DISA STIGUBTU-22-412030, UBTU-24-200060directper OS STIG releasehaute

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.

Sources & références