Fatmawati Achmad Zaenuri / Shutterstock.com
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. Examen des données dans le wtmp
log est une étape fondamentale dans l’adoption d’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 le last
commander.
La dernière commande
le last
la commande lit les données du wtmp
log et l’affiche dans une fenêtre de terminal.
Si vous tapez last
et appuyez sur Entrée, afficher tous les enregistrements à partir du fichier journal.
last
Chaque enregistrement de wtmp
s’affiche dans la fenêtre du terminal.
De gauche à droite, chaque ligne contient:
- Le de la personne qui s’est connectée.
- Ils étaient connectés. Une entrée terminale de
:0
signifie qu’ils étaient connectés sur l’ordinateur Linux lui-même. - Le de la machine à laquelle ils ont été connectés.
- L’heure et la date.
- Le de la 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 «redémarrage» 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
En utilisant le last
La commande à elle seule produit un vidage de l’intégralité 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.
Tu peux dire last
pour 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 pas 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
le -d
L’option (Domain Name System) indique last
pour essayer de résoudre les adresses IP des utilisateurs distants en un nom de machine ou de réseau.
last -d
Ce n’est pas toujours possible pour last
pour convertir l’adresse IP en 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 le -R
(pas de nom d’hôte) pour supprimer ce champ.
É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 supprimeriez ce champ.
Sélection d’enregistrements par date
Vous pouvez utiliser le -s
(depuis) option pour restreindre la sortie pour n’afficher que les événements de connexion qui ont eu lieu depuis une date spécifique.
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
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 le -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.
Cette commande demande last
pour récupérer et afficher les enregistrements de connexion de 00h00 (aube) le 26 à 00h00 (aube) le 27. Cela réduit la liste aux sessions de connexion qui ont eu lieu le 26 uniquement.
Formats d’heure et de date
Vous pouvez utiliser les heures ainsi que les dates avec le -s
et -t
options.
Les différents formats d’heure utilisables avec le last
les options qui utilisent 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
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
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
Hier, aujourd’hui et maintenant
Vous pouvez utiliser yesterday
et tomorrow
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 de la date de début à la date de fin. Il n’enregistre pas à partir de la date de fin.
le now
L’option 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
Cela affichera tous les événements de connexion à l’heure actuelle, y compris ceux qui sont toujours connectés.
L’option actuelle
le -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 last
suppose que vous voulez dire «aujourd’hui».
last -R -p 09:30
Les personnes qui sont toujours connectées (évidemment) n’ont pas d’heure de déconnexion; ils sont décrits comme still logged in
. Si l’ordinateur n’a pas été redémarré depuis l’heure que vous spécifiez, il sera répertorié comme still running
.
Si vous utilisez le now
sténographie avec le -p
(présent), vous pouvez savoir qui est connecté au moment où vous émettez la commande.
last -R -p now
C’est une façon quelque peu longue de réaliser ce qui peut être accompli en utilisant le who
commander.
La commande lastb
le lastb
la commande 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 (). Il accepte les mêmes options que last
. Comme il s’agissait de tentatives de connexion infructueuses, leurs entrées auront toutes une durée de 00:00.
Tu dois utiliser sudo
avec lastb
.
sudo lastb -R
Le dernier mot sur la matière
Savoir qui s’est connecté à votre ordinateur Linux, et 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.