Comment utiliser la dernière commande sur Linux

Qui, quand et d'où? Selon les bonnes pratiques de sécurité, vous devez savoir qui accède à 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 existe un journal contenant à 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 être d'accord. La partie "tmp" signifie probablement "temporaire", mais peut aussi signifier "horodatage".

Ce que nous savons, c'est que wtmp est un journal qui enregistre et enregistre chaque événement de connexion et de déconnexion. La vérification des données dans le journal wtmp est une étape fondamentale de l’adoption d’une approche axée sur la sécurité dans vos tâches d’administrateur système. Pour un ordinateur familial typique, la sécurité n’est peut-être pas aussi critique, mais il est intéressant de pouvoir examiner votre utilisation combinée de l’ordinateur.

Contrairement à la plupart des 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 commande last .

La dernière commande

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

Si vous tapez last et appuyez sur Entrée, tous les enregistrements du fichier journal seront affichés.

last

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

De gauche à droite, chaque ligne contient:

  • The username of the person who logged in.
  • The terminal they were logged into. A terminal entry of :0 means they were logged in on the Linux computer itself.
  • The IP address of the machine they were logged into.
  • The login time and date stamp.
  • The duration of the session.

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 fois que l’ordinateur est démarré. 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 disponibilité de l'ordinateur.

Affichage d'un nombre spécifique de lignes

L'utilisation de la commande last seule génère un vidage de l'intégralité du journal, la plupart d'entre eux dépassant 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 indiquer à last 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 saisir -5 et non 5 :

last -5

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

Affichage des noms de réseau pour les utilisateurs distants

L’option -d (système de noms de domaine) indique à last d’essayer de résoudre les adresses IP des utilisateurs distants en un nom de machine ou de réseau.

last -d

Il n’est pas toujours possible que last convertisse l’adresse IP en un nom de réseau, mais la commande le fera quand elle le pourra.

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.

Dans la mesure où cela donne une sortie plus nette sans enveloppes laides, cette option a été utilisée dans tous les exemples suivants. Si vous utilisiez last pour tenter d'identifier une activité inhabituelle ou suspecte, ne supprimez pas ce champ.

Sélection des enregistrements par date

Vous pouvez utiliser l'option -s (since) pour limiter la sortie afin d'afficher uniquement les événements de connexion ayant eu lieu depuis une date donnée.

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

last -R -s 2019-05-26

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.

Recherche jusqu'à une date de fin

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

Cette commande demande à last de récupérer et d'afficher les enregistrements de connexion à partir 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 seulement.

Formats d'heure et de date

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

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

  • YYYYMMDDhhmmss
  • YYYY-MM-DD hh:mm:ss
  • YYYY-MM-DD hh:mm – seconds are set to 00
  • YYYY-MM-DD – time is set to 00:00:00
  • hh:mm:ss – date is set to today
  • hh:mm – date will be set to today, seconds to 00
  • now
  • yesterday – time is set to 00:00:00
  • today – time is set to 00:00:00
  • tomorrow – time is set to 00:00:00
  • +5min
  • -5days

Pourquoi "soi-disant"?

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 familles principales de la distribution Linux.

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

Comme vous pouvez le constater, la commande n'a renvoyé aucun enregistrement.

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

last -R -s 20190526110000 -t 20190527130000

Recherche par unités relatives

Vous spécifiez également des périodes mesurées en minutes ou en jours, par rapport à la date et à l'heure actuelles. Ici, nous demandons des disques de deux jours à un jour.

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

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

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

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

last -R -s today -t now

Ceci affichera tous les événements de connexion jusqu’à présent, y compris ceux qui sont toujours connectés.

L'option actuelle

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

Peu importe le moment de la connexion ou de la déconnexion, 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, last suppose que vous entendez «aujourd'hui».

last -R -p 09:30

Les personnes qui sont toujours connectées (évidemment) ne disposent pas d’une heure de déconnexion; ils sont décrits comme toujours connecté . Si l'ordinateur n'a pas été redémarré depuis l'heure spécifiée, il sera répertorié comme toujours en cours d'exécution .

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

last -R -p now

C’est une façon un peu longue d’atteindre ce qui peut être accompli en utilisant la commande who .

La dernière commande

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» fait toujours l’objet d’un débat.

lastb répertorie les mauvaises tentatives de connexion ( ayant échoué ). Il accepte les mêmes options que dernier . Comme les tentatives de connexion ont échoué, elles auront toutes une durée de 00:00.

Vous devez utiliser sudo avec lastb .

sudo lastb -R

Le dernier mot sur la matière

Savoir qui a ouvert une session sur votre ordinateur Linux, quand et de quel endroit est utile. En combinant ces informations avec les détails des tentatives de connexion infructueuses, vous êtes familiarisé avec les premières étapes de la recherche d'un comportement suspect.