Comment utiliser la dernière commande sous Linux

Qui, quand et d’où? Les bonnes pratiques de sécurité indiquent que vous devez savoir qui a accédé à votre ordinateur Linux. Nous vous montrons comment.

Le fichier wtmp

Linux et d’autres systèmes d’exploitation de type Unix tels que MacOS sont très bons pour la journalisation. Quelque part dans les entrailles du système, il y a un journal pour à peu près tout ce à quoi vous pouvez penser. Le fichier journal qui nous intéresse s’appelle wtmp. Le «w» pourrait signifier «quand» ou «qui» – personne ne semble d’accord. La partie «tmp» signifie probablement «temporaire», mais elle peut également signifier «horodatage».

Ce que nous savons, c’est que wtmp est un journal qui capture et enregistre chaque événement de connexion et de déconnexion. L’examen des données dans le journal wtmp est une étape de base pour adopter une approche axée sur la sécurité dans vos tâches d’administrateur système. Pour un ordinateur familial typique, ce n’est peut-être pas si critique du point de vue de la sécurité, mais il est intéressant de pouvoir revoir votre utilisation combinée de l’ordinateur.

Contrairement à de nombreux fichiers journaux textuels sous Linux, wtmp est un fichier binaire. Pour accéder aux données qu’il contient, nous devons utiliser un outil conçu pour cette tâche.

Cet outil est la dernière commande.

La dernière commande

La dernière commande lit les données du journal wtmp et les affiche dans une fenêtre de terminal.

Si vous tapez le dernier et appuyez sur Entrée, afficher tous les enregistrements à partir du fichier journal.

last

dernière commande dans une fenêtre de terminal

Chaque enregistrement de wtmp est affiché dans la fenêtre du terminal.

De gauche à droite, chaque ligne contient:

Le nom d’utilisateur de la personne qui s’est connectée.
Le terminal auquel ils étaient connectés. Une entrée de terminal de: 0 signifie qu’ils ont été connectés sur l’ordinateur Linux lui-même.
L’adresse IP de la machine à laquelle ils ont été connectés.
L’heure et la date de connexion.
La durée de la session.

  Comment désactiver les iMessages sur Mac

sortie du dernier dans une fenêtre de terminal

La dernière ligne nous indique la date et l’heure de la première session enregistrée dans le journal.

Une entrée de connexion pour l’utilisateur fictif «reboot» est inscrite dans le journal à chaque démarrage de l’ordinateur. Le champ terminal est remplacé par la version du noyau. La durée de la session connectée pour ces entrées représente le temps de fonctionnement de l’ordinateur.

Affichage d’un nombre spécifique de lignes

L’utilisation de la dernière commande seule produit un vidage de l’ensemble du journal, la plupart passant devant la fenêtre du terminal. La partie qui reste visible correspond aux données les plus anciennes du journal. Ce n’est probablement pas ce que vous vouliez voir.

Vous pouvez dire au dernier de vous donner un nombre spécifique de lignes de sortie. Pour ce faire, indiquez le nombre de lignes que vous souhaitez sur la ligne de commande. Notez le trait d’union. Pour voir cinq lignes, vous devez taper -5 et non 5:

last -5

dernier -5 dans une fenêtre de terminal

Cela donne les cinq premières lignes du journal, qui sont les données les plus récentes.

cinq premières lignes de twmp dans une fenêtre de terminal

Affichage des noms de réseau pour les utilisateurs distants

L’option -d (Domain Name System) indique au dernier d’essayer de résoudre les adresses IP des utilisateurs distants en un nom de machine ou de réseau.

last -d

dernier -d dans une fenêtre de terminal

Il n’est pas toujours possible pour le dernier de convertir l’adresse IP en nom de réseau, mais la commande le fera quand elle le pourra.

sortie du dernier -d dans une fenêtre de terminal

Masquage des adresses IP et des noms de réseau

Si vous n’êtes pas intéressé par l’adresse IP ou le nom du réseau, utilisez l’option -R (pas de nom d’hôte) pour supprimer ce champ.

dernier -R dans une fenêtre de terminal

Étant donné que cela donne une sortie plus nette sans enveloppements laids, cette option a été utilisée dans tous les exemples suivants. Si vous utilisiez last pour essayer d’identifier une activité inhabituelle ou suspecte, vous ne supprimeriez pas ce champ.

sortie du dernier -R dans une fenêtre de terminal

Sélection des enregistrements par date

Vous pouvez utiliser l’option -s (depuis) ​​pour restreindre la sortie afin d’afficher uniquement les événements de connexion qui ont eu lieu depuis une date spécifique.

  Comment retourner une vidéo sur Windows 10 avec Handbrake

Si vous ne vouliez voir que les événements de connexion qui ont eu lieu à partir du 26 mai 2019, vous utiliseriez la commande suivante:

last -R -s 2019-05-26

last -R -s 2019-05-26 dans une fenêtre de terminal

La sortie affiche les enregistrements avec les événements de connexion qui ont eu lieu à partir de l’heure 00:00 le jour spécifié, jusqu’aux enregistrements les plus récents du fichier journal.

Sortie du dernier -R -s 2019-05-26 dans une fenêtre de terminal

Recherche jusqu’à une date de fin

Vous pouvez utiliser l’option -t (jusqu’à) pour spécifier une date de fin. Cela vous permet de sélectionner un ensemble d’enregistrements de connexion qui ont eu lieu entre deux dates d’intérêt.

last -R -s 2019-05-26 -t 2019-05-27 dans une fenêtre de terminal

Cette commande demande au dernier de récupérer et d’afficher les enregistrements de connexion de 00:00 (aube) le 26 jusqu’à l’heure 00:00 (aube) le 27. Cela réduit la liste aux sessions de connexion qui ont eu lieu le 26 uniquement.

Sortie du dernier -R -s 2019-05-26 -t 2019-05-27 dans une fenêtre de terminal

Formats d’heure et de date

Vous pouvez utiliser des heures ainsi que des dates avec les options -s et -t.

Les différents formats d’heure pouvant être utilisés avec les dernières options utilisant des dates et des heures sont (prétendument):

AAAAMMJJhhmmss
AAAA-MM-JJ hh: mm: ss
AAAA-MM-JJ hh: mm – les secondes sont définies sur 00
AAAA-MM-JJ – l’heure est réglée sur 00:00:00
hh: mm: ss – la date est définie sur aujourd’hui
hh: mm – la date sera définie sur aujourd’hui, les secondes sur 00
maintenant
hier – l’heure est réglée à 00:00:00
aujourd’hui – l’heure est réglée à 00:00:00
demain – l’heure est réglée à 00:00:00
+ 5min
-5 jours

Pourquoi «prétendument»?

Les deuxième et troisième formats de la liste n’ont pas fonctionné pendant la recherche de cet article. Ces commandes ont été testées sur les distributions Ubuntu, Fedora et Manjaro. Ce sont des dérivés des distributions Debian, RedHat et Arch, respectivement. Cela couvre toutes les principales familles de distribution Linux.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Sortie d'une dernière commande ayant échoué dans une fenêtre de terminal

Comme vous pouvez le voir, la commande n’a renvoyé aucun enregistrement.

L’utilisation du premier format de date et d’heure de la liste avec la même date et heure que la commande précédente renvoie des enregistrements:

last -R -s 20190526110000 -t 20190527130000

last -R -s 20190526110000 -t 20190527130000 dans une fenêtre de terminal

Recherche par unités relatives

Vous spécifiez également des périodes de temps mesurées en minutes ou en jours, par rapport à la date et à l’heure actuelles. Ici, nous demandons des enregistrements d’il y a deux jours jusqu’à il y a un jour.

last -R -s -2days -t -1days

last -R -s -2days -t -1days dans une fenêtre de terminal

Hier, aujourd’hui et maintenant

Vous pouvez utiliser hier et demain comme raccourci pour la date d’hier et la date d’aujourd’hui.

last -R -s yesterday -t today

dernier -R -s hier -t aujourd'hui dans une fenêtre de terminal

Non pas que cela n’inclura aucun enregistrement pour aujourd’hui. C’est le comportement attendu. La commande demande des enregistrements de la date de début à la date de fin. Il n’inclut pas les enregistrements de la date de fin.

  Comment configurer les paramètres du mode sans échec sur Windows 10

Sortie du dernier -R -s hier -t aujourd'hui dans une fenêtre de terminal

L’option maintenant est un raccourci pour «aujourd’hui à l’heure actuelle». Pour voir les événements de connexion qui ont eu lieu depuis 00h00 (aube) jusqu’au moment où vous émettez la commande, utilisez cette commande:

last -R -s today -t now

dernier -R -s aujourd'hui - t maintenant dans une fenêtre de terminal

Cela affichera tous les événements de connexion à l’heure actuelle, y compris ceux qui sont toujours connectés.

sortie du dernier -R -s aujourd'hui -t maintenant

L’option actuelle

L’option -p (présent) vous permet de savoir qui était connecté à un moment donné.

Peu importe le moment où ils se sont connectés ou déconnectés, mais s’ils étaient connectés à l’ordinateur au moment que vous spécifiez, ils seront inclus dans la liste.

Si vous spécifiez une heure sans date pour la dernière fois, vous supposez que vous voulez dire « aujourd’hui ».

last -R -p 09:30

dernier -R -p 09h30 dans une fenêtre de terminal

Les personnes qui sont toujours connectées (évidemment) n’ont pas d’heure de déconnexion; ils sont décrits comme toujours connectés. Si l’ordinateur n’a pas été redémarré depuis l’heure que vous spécifiez, il sera répertorié comme toujours en cours d’exécution.

Sortie du dernier -R -p 09:30

Si vous utilisez le raccourci now avec l’option -p (present), vous pouvez savoir qui est connecté au moment où vous exécutez la commande.

last -R -p now

dernier -R -p maintenant dans une fenêtre de terminal

C’est une façon quelque peu longue de réaliser ce qui peut être accompli en utilisant la commande who.

Sortie du dernier -R -p maintenant dans une fenêtre de terminal

La commande lastb

La commande lastb mérite d’être mentionnée. Il lit les données d’un journal appelé btmp. Il y a un peu plus de consensus sur ce nom de journal. Le «b» signifie mauvais, mais la partie «tmp» est toujours sujette à débat.

lastb répertorie les mauvaises tentatives de connexion (échouées). Il accepte les mêmes options que le dernier. Comme il s’agissait de tentatives de connexion infructueuses, leurs entrées auront toutes une durée de 00:00.

Vous devez utiliser sudo avec lastb.

sudo lastb -R

lastb - R dans une fenêtre de terminal

Le dernier mot sur la matière

Savoir qui s’est connecté à votre ordinateur Linux, quand et d’où sont des informations utiles. Combiner cela avec les détails des tentatives de connexion infructueuses vous donne les premières étapes pour enquêter sur un comportement suspect.