14/06/2024

Commandes et Système

Linux : qu’est-ce que le fichier /var/log/auth.log ou /var/log/secure ?

I. Présentation

Dans ce tutoriel, nous allons nous intéresser au fichier journal "/var/log/auth.log" que l'on retrouve sur de nombreuses distributions Linux comme Debian et Ubuntu. S'il est stocké dans le répertoire "/var/log/" ce n'est pas un hasard, car le système et les services enregistrent leurs journaux à cet emplacement, que ce soit à la racine ou dans un sous-répertoire.

Le fichier "auth.log" permet de surveiller l'accès au système, car il référence les tentatives d'authentification, que ce soit une connexion réussie ou en échec. Que ce soit un utilisateur qui s'authentifie en local, ou à distance, via un accès SSH par exemple, l'accès sera enregistré dans ce fichier journal.

Il est à noter que sur Red Hat (RHEL) et les systèmes basés sur RHEL comme Rocky Linux, Fedora, AlmaLinux ou encore CentOS Stream, le fichier "auth.log" n'existe pas, car il s'appelle autrement : /var/log/secure.

II. Lire et interpréter le fichier auth.log

Maintenant que vous sachez à quoi correspond le fichier "auth.log", vous vous demandez surement comment le lire et comment l'interpréter ?

Tout d'abord, vous pouvez utiliser la commande suivante pour consulter les 10 dernières lignes du fichier. Autrement dit, il s'agit des 10 lignes les plus récentes du fichier.

sudo tail /var/log/auth.log

Voici un exemple de trois lignes de log issues d'une machine Linux et que vous êtes susceptibles de rencontrer :

Jul 31 19:10:27 SRV-DEB-1 sshd[3388103]: Accepted password for flo from 192.168.200.6 port 55690 ssh2
Jul 31 19:10:27 SRV-DEB-1 sshd[3388103]: pam_unix(sshd:session): session opened for user flo(uid=1000) by (uid=0)
Jul 31 19:10:27 SRV-DEB-1 systemd-logind[597]: New session 10009 of user flo.

Chaque ligne commence avec la date et l'heure, ce qui permet de situer l'événement dans le temps. Dans cet exemple, on peut déterminer que l'utilisateur "flo" s'est connecté au serveur SRV-DEB-1 en SSH (sshd) depuis une machine dont l'adresse IP est 192.168.200.6. La machine a accepté le mot de passe : l'authentification est réussie. Le fait d'avoir la présence de "pam_unix" signifie que l'authentification a été réalisée à partir du système PAM qui est utilisé par défaut sur Linux.

Si vous avez besoin d'afficher un plus grand nombre de lignes, vous pouvez spécifier un nombre de lignes de cette façon (exemple pour 20 lignes) :

sudo tail -n20 /var/log/auth.log

Lorsque la connexion est refusée, que ce soit parce que l'utilisateur n'existe pas ou que le mot de passe est incorrect, ceci sera aussi visible dans les logs :

Jul 31 19:22:49 SRV-DEB-1 sshd[3388513]: Invalid user mechant from 192.168.200.6 port 55813
Jul 31 19:22:52 SRV-DEB-1 sshd[3388513]: pam_unix(sshd:auth): check pass; user unknown
Jul 31 19:22:52 SRV-DEB-1 sshd[3388513]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.200.6
Jul 31 19:22:54 SRV-DEB-1 sshd[3388513]: Failed password for invalid user mechant from 192.168.200.6 port 55813 ssh2

Ici, quelqu'un a cherché s'authentifié sur le serveur avec "mechant" comme nom d'utilisateur. La présence de l'état "authentication failure" montre bien qu'il y a eu un échec d'authentification.

Debian auth.log tentative échouée

Pour obtenir toutes les lignes correspondantes à une adresse IP source, ou avec la mention "Failed password", on peut s'appuyer sur "grep". Voici un exemple :

sudo grep "Failed password" /var/log/auth.log

Sinon, pour obtenir la liste des tentatives de connexion échouées sur votre machine Linux, vous pouvez passer au crible ce fichier journal, ou utiliser la commande "lastb" dont l'objectif est d'afficher uniquement les tentatives infructueuses (contrairement à la commande "last").

Une information exploitable à partir d'outils de détection puisque cette tentative en échec peut être une simple erreur de saisie de l'admin système, comme il peut s'agir aussi d'une attaque par brute force effectuée par un cyberattaquant. C'est pour cette raison qu'il est important de protéger sa machine avec un outil tel que CrowdSec pour détecter et bloquer les adresses IP malveillantes.

III. Conclusion

Suite à la lecture de cet article, vous savez à quoi sert le fichier "auth.log" sous Linux (ou le fichier "secure" selon la distribution) et vous êtes capable de mieux interpréter son contenu ! Puisqu'il est très utile pour suivre les tentatives de connexion à une machine, les applications tierces aiment bien parser son contenu à la recherche de tentatives malveillantes ou suspectes !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Linux : qu’est-ce que le fichier /var/log/auth.log ou /var/log/secure ?

  • Remplace
    Maintenant que vous sachez à quoi correspond
    Par
    Maintenant que vous savez à quoi correspond
    😉

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.