Vérifier les permissions des fichiers /var/log/localmessages(.*)
Garantit que /var/log/localmessages ne porte aucun bit d'exécution, setuid, setgid ou sticky et n'est pas accessible en écriture au groupe ou aux autres, afin que les messages locaux de démarrage et de service ne puissent être modifiés.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
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/localmessages rassemble les messages de certains scripts de démarrage et des facilités syslog local0:local7 (client DHCP, services personnalisés, etc.). S'il est accessible en écriture au groupe ou aux autres, un attaquant peut injecter des entrées trompeuses ou effacer les traces de son activité ; des bits d'exécution ou setuid/setgid sur un fichier journal signalent une altération. Restreindre l'accès maintient la fiabilité de ces journaux locaux.
Ce que vérifie Pavois
Pavois lit l'inode réel de /var/log/localmessages et vérifie l'absence de bit d'exécution, setuid, setgid ou sticky et d'écriture groupe/autres. Lire l'objet réel du système de fichiers détecte les dérives de permissions qu'une vérification de fichier de configuration ou de paquet manquerait, le mode effectif est celui qui régit l'accès à l'exécution.
only_if { file('/var/log/localmessages').exist? }
describe file('/var/log/localmessages') do
it { should_not be_executable.by('owner') }
it { should_not be_setuid }
it { should_not be_executable.by('group') }
it { should_not be_writable.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 }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%A %U:%G' /var/log/localmessages. Attendez un mode du type -rw-r----- root:adm (0640 ou plus strict), sans x, s, S, t, T, ni bit d'écriture groupe/autres.
Inspecter et investiguer
Ce fichier est un journal ; inspectez son contenu avec tail -n 50 /var/log/localmessages. Pour détecter une altération des permissions, ajoutez auditctl -w /var/log/localmessages -p wa et consultez /var/log/audit/audit.log. État courant : ls -l /var/log/localmessages.
Remédiation
Aucun plan de durcissement automatisé n'est fourni pour cette règle ; elle doit donc être appliquée manuellement : chown root:adm /var/log/localmessages et chmod u-x,g-wx,o-rwx,u-s,g-s,-t /var/log/localmessages (généralement chmod 0640).
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| mode | 0644 |
|---|---|
| path | /var/log/localmessages |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Un journal local accessible en écriture peut être empoisonné ou tronqué, compromettant l'analyse d'incident. Précautions : logrotate recrée ce fichier d'après /etc/logrotate.d et le $FileCreateMode de rsyslog ; alignez donc la directive create 0640 root adm, sinon la rotation suivante réintroduira le mode permissif. Conservez le propriétaire root:adm pour que le groupe adm puisse lire les journaux ; évitez 0600 si des outils de lecture s'exécutent sous le groupe adm.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 6.1.4.1, 6.2.2.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.