CodeGym /Cours /Docker SELF /Surveillance des utilisateurs actifs et des connexions : ...

Surveillance des utilisateurs actifs et des connexions : commandes `who`, `w`, `last`

Docker SELF
Niveau 5 , Leçon 4
Disponible

Surveillance des utilisateurs actifs et des connexions : commandes who, w, last

1. Pourquoi est-il important de surveiller les utilisateurs ?

Linux, comme tout autre serveur (ou même une méchante boîte avec des sites web), permet à de nombreux utilisateurs de travailler simultanément. Mais que faire si votre serveur est compromis ? Ou si un collègue malveillant décide "par accident" de supprimer des fichiers importants pendant la nuit ? La surveillance des activités des utilisateurs nous aide à comprendre qui, quand et d'où ils se sont connectés, ainsi que quels processus ils exécutaient. C'est comme une caméra de surveillance, mais pour votre serveur.

Outils principaux de surveillance

Pour évaluer l'activité des utilisateurs sur un serveur, Linux propose trois commandes clés :

  • who — montre les utilisateurs actuels travaillant sur le système.
  • w — donne un peu plus d'infos : les actions des utilisateurs et la charge du système.
  • last — fournit un historique des connexions au système.

Chacune de ces commandes a ses particularités et est applicable dans différents scénarios. Voyons-les à travers des exemples.


2. Commande who

La commande who affiche une liste des utilisateurs actuellement connectés au système. C'est comme un "registre", où tu peux voir qui est actuellement sur le serveur.

who

Exemple de sortie de la commande :

user1    pts/0        2023-10-20 09:10 (192.168.1.100)
root     pts/1        2023-10-20 09:15 (192.168.1.101)

Qu'est-ce qu'on voit ici :

  • Nom d'utilisateur user1, root.
  • Le terminal par lequel ils sont connectés pts/0, pts/1.
  • Heure de connexion 2023-10-20 09:10.
  • D'où la connexion vient 192.168.1.100.

Options pour who :

  • who -a: Affiche aussi des données système, comme l'heure de démarrage, les processus actifs et les utilisateurs.
  • who am i: Affiche seulement les infos sur l'utilisateur qui a lancé la commande.

3. Commande w

Si who enregistre simplement qui s'est connecté, alors w donne plus d'infos - elle raconte ce que fait actuellement l'utilisateur. C'est utile pour comprendre s'il est en train de faire un truc utile ou quelque chose qui doit être immédiatement arrêté.

w

Exemple de sortie :

10:20:42 up 1 day,  5:12,  2 users,  load average: 0.00, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user1    pts/0    192.168.1.100    09:10    1:00   0.01s  0.01s nano app.py
root     pts/1    192.168.1.101    09:15    2:00   0.02s  0.02s htop

Qu'est-ce qui se passe ici :

  • La ligne du haut donne des infos système : l'heure actuelle, le temps de fonctionnement du serveur, le nombre d'utilisateurs et la charge système load average.
  • Le tableau montre :
    • Le nom de l'utilisateur user1, root.
    • Le terminal via lequel l'utilisateur est connecté pts/0, pts/1.
    • L'adresse IP de l'utilisateur 192.168.1.100.
    • L'heure de connexion au système 09:10.
    • Le temps d'inactivité IDLE.
    • L'action actuelle de l'utilisateur WHAT, par exemple, l'édition du fichier app.py avec nano.

Options pour w :

  • w -h : Supprime les en-têtes du tableau.
  • w username : Affiche des infos uniquement pour un utilisateur précis.

4. Commande last

Si who et w parlent du présent, alors last permet de jeter un œil au passé. Elle affiche l'historique de toutes les connexions au système. Cette commande lit le fichier /var/log/wtmp, où toutes les connexions des utilisateurs sont enregistrées.

last

Exemple de sortie :

user1    pts/0        192.168.1.100    Fri Oct 20 09:10 - 09:30  (00:20)
root     pts/1        192.168.1.101    Fri Oct 20 09:15 - down   (00:15)

Ce qu'on voit ici :

  • Le nom d'utilisateur user1, root.
  • Le terminal pts/0, pts/1.
  • L'adresse IP ou le nom d'hôte 192.168.1.100, 192.168.1.101.
  • Heure de connexion Fri Oct 20 09:10.
  • Heure de déconnexion 09:30 et durée totale de la session 00:20.

Options pour last :

  • last -n 10: Montre seulement les 10 dernières entrées.
  • last username: L'historique des connexions pour un utilisateur spécifique.
  • last reboot: Indique quand le serveur a été redémarré.

5. Exemple pratique : analyse de l’activité des utilisateurs

Imaginons que tu veux savoir qui a bossé sur le serveur la nuit pour comprendre s’il s’est passé quelque chose de louche. Commençons par vérifier les utilisateurs actuels :

who

Ensuite, regardons ce qu’ils font :

w

Si tu trouves quelque chose de bizarre (par exemple, un processus inconnu), il faut vérifier qui s’est connecté pendant la nuit. Pour ça, utilisons :

last

Regardons les logs pour un utilisateur spécifique qui a attiré l’attention :

last user1

Si tu vois une anomalie, par exemple, une connexion depuis une IP inconnue, il faut agir : restreindre l’accès, mettre en place une authentification à deux facteurs ou bloquer l’utilisateur.


6. Particularités et erreurs typiques

En utilisant les commandes de surveillance, il est important de se rappeler que :

  1. Le fichier des logs peut être vidé. Si quelqu'un a intentionnellement supprimé les entrées de /var/log/wtmp, la commande last ne montrera rien. C'est l'une des raisons pour lesquelles il est important de sauvegarder régulièrement les logs ou de les envoyer sur un serveur distant.

  2. Faciliter la lecture des résultats. Parfois, la sortie des commandes peut être surchargée (par exemple, s'il y a beaucoup d'utilisateurs). Utilisez des filtres comme grep pour trouver les informations nécessaires :

    last | grep user1
    
  3. Dépendance des paramètres du système. Certains systèmes peuvent ne pas enregistrer les logs de connexion si cela a été désactivé dans la configuration. Assurez-vous que /var/log/wtmp est régulièrement mis à jour.

Comment ces connaissances sont-elles utilisées en pratique ?

  • Administration des serveurs. Par exemple, vous êtes administrateur dans une entreprise et devez surveiller la sécurité du système pour que personne ne "casse tout" accidentellement ou intentionnellement.
  • Détection des menaces. Les outils de surveillance vous aideront à repérer les tentatives d'accès non autorisés.
  • Audit du système. Lors de l'inspection des serveurs pour garantir leur conformité aux normes de sécurité, ces commandes sont souvent utilisées pour analyser l'activité des utilisateurs.
  • Diagnostic. Vous remarquez que le serveur devient lent ? Regardez qui fait quoi dessus !

Maintenant, vous êtes prêt à surveiller votre système comme un pro ! N'oubliez pas que la protection du système commence par comprendre ce qui se passe sous le capot.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION