← Toutes les règles
SOCLE-CLD-FSP-172// File permissionsmoyenneconfig persistante

Vérifier les permissions des fichiers /var/log/lastlog(.*)

Garantit que /var/log/lastlog ne porte aucun bit d'exécution, setuid, setgid ou sticky et n'est pas accessible en écriture aux autres, afin que l'enregistrement des dernières connexions ne puisse être falsifié.

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 1 norme

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/log/lastlog enregistre la dernière connexion de chaque utilisateur. S'il est accessible en écriture aux autres, un attaquant peut réécrire ou effacer son horodatage de dernière connexion pour effacer ses traces ; des bits d'exécution ou setuid/setgid parasites sur un simple fichier de données signalent une altération ou une mauvaise configuration exploitable. Le restreindre maintient un historique de connexions fiable pour l'investigation et la détection d'intrusion.

Ce que vérifie Pavois

Pavois lit l'inode réel de /var/log/lastlog et vérifie l'absence de tout bit d'exécution, setuid, setgid ou sticky et d'écriture pour les autres. Examiner l'objet réel du système de fichiers détecte les dérives laissées par un chmod manuel, une restauration ou un outil défaillant, ce qui compte est le mode effectif appliqué par le noyau, pas ce qu'un fichier de configuration ou un manifeste de paquet prétend.

only_if { file('/var/log/lastlog').exist? }
describe file('/var/log/lastlog') do
  it { should_not be_executable.by('owner') }
  it { should_not be_setuid }
  it { should_not be_executable.by('group') }
  it { should_not be_setgid }
  it { should_not be_executable.by('other') }
  it { should_not be_writable.by('other') }
  it { should_not be_sticky }
end

Comment vérifier qu’elle est appliquée

Exécutez stat -c '%A %U:%G' /var/log/lastlog. Attendez un résultat du type -rw-rw-r-- root:utmp (CIS tolère 0664 ici), sans x, s, S, t ni T, et sans bit d'écriture pour other.

Inspecter et investiguer

Le fichier est consommé par lastlog et last ; exécutez lastlog pour voir les enregistrements protégés. Pour surveiller toute altération, ajoutez auditctl -w /var/log/lastlog -p wa et consultez /var/log/audit/audit.log. État courant : ls -l /var/log/lastlog.

Remédiation

Aucun plan de durcissement automatisé n'est fourni pour cette règle ; elle doit donc être appliquée manuellement : chown root:utmp /var/log/lastlog et chmod ug-x,o-wx,u-s,g-s,-t /var/log/lastlog (généralement chmod 0664).

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

mode0664
path/var/log/lastlog
resourcefile
pavois harden plan local

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

Impact & précautions

Laisser le fichier accessible en écriture aux autres permet aux utilisateurs de falsifier leur historique ; un bit d'exécution erroné pourrait être exploité si le fichier était remplacé. Précautions : lastlog appartient à root:utmp et doit rester lisible par le groupe utmp pour que les programmes de connexion le mettent à jour, ne retirez pas l'accès du groupe et ne changez pas le propriétaire utmp, sous peine de voir pam_lastlog/login échouer à enregistrer les sessions. Retirer des bits est sûr ; durcir jusqu'à 0600 est généralement inutile et peut casser la comptabilité des sessions.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS6.1.4.1, 6.2.2.1directper OS, see the benchmark tablehaute

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