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.
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 !



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