• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 22/11/2023

Analysez les principaux fichiers de traces

Unix est un système d'exploitation conçu dès le départ pour accueillir plusieurs utilisateurs simultanément. Linux a bien évidemment hérité de cette propriété. Il est donc tout à fait possible que plusieurs comptes exécutent plusieurs tâches simultanément sur un serveur Linux (service web, service FTP, service mail, etc.).

Du coup, l'exercice d'analyse de l'activité du système pourrait paraître un peu compliqué. Mais il n'en est rien, en réalité, c'est même assez simple : Linux vous fournit tous les outils nécessaires pour auditer l'activité des utilisateurs ou des processus.

Les audits systèmes sont très utiles notamment dans le cadre de supervision de service : l’exemple le plus commun est le service de messagerie, qui est souvent très sensible !

Consultez les répertoires des fichiers de traces de  rsyslog

Comme nous avons pu l'évoquer dans le chapitre "Adoptez l'arborescence des systèmes Linux", le répertoire /var contient toutes les données variables du système et notamment les fichiers de traces dans le sous-répertoire /var/log

Chacun des processus du système proposant au noyau Linux de tracer ses activités déclenche le traitement de ses informations par un service particulier :rsyslog.

Ce dernier présente l'avantage de centraliser la configuration des fichiers de traces et donc de regrouper dans les fichiers concernés les informations de même nature.

Par exemple :

  • toutes les traces émises par le noyau Linux (que l'on appelle "kernel ring buffer") seront stockées dans un fichier particulier,

  • toutes les traces concernant l'authentification des utilisateurs seront dans un autre fichier.

Par ailleurs, rsyslog dispose également de fonctionnalités supplémentaires intéressantes.

Elles permettent notamment :

  • d'envoyer ces traces sur le réseau afin de centraliser toutes celles d'un parc de machines sur un même serveur de logs,

  • de gérer la rotation automatique des fichiers,

  • ou encore d'utiliser des formats de dates très précis (jusqu'au millième de seconde).

Comme tout bon processus système sous Linux, rsyslog se paramètre à l'aide d'un fichier de configuration, en l'occurrence : le fichier /etc/rsyslog.conf.

Nous allons parcourir ce fichier pour comprendre la gestion des fichiers de traces. Vous verrez notamment quelques différences entre Debian et CentOS (pour RedHat). Du coup je vous propose d’utiliser ce fichier pour transférer les traces d’un serveur à un autre.

Analysez les traces d’authentification

En s’appuyant sur la configuration de rsyslog vu précédemment, je vous propose d’effectuer un petit audit des fichiers

  • /var/log/auth.log(pour Debian)

  • /var/log/secure(pour RedHat)

…afin de relever les traces d’authentification sur le serveur.

Dans la vidéo suivante, vous pourrez constater qu’il est finalement assez simple de relever :

  • toutes les connexions aux terminaux physiques de la machine ;

  • toutes les connexions via le serveur SSH ;

  • toutes les élévations de privilèges (qui sont bien des opérations d’authentification) :

Analysez l’initialisation des cartes réseau depuis les fichiers de traces

Second exemple d'informations très utiles disponibles dans les fichiers de traces : l'initialisation des cartes réseau.

Souvenez-vous, dans le chapitre "Configurez les cartes réseaux", nous avions lancé la commande suivante pour vérifier la détection du matériel par le noyau :

[root@thor ~]# dmesg | grep e1000

Et je vous avais indiqué que :

"La commande dmesg(pour display message) permet d'afficher les messages du noyau pendant le processus de démarrage et notamment lorsque ce dernier charge les pilotes des périphériques qui vérifient si un matériel connecté leur est compatible".

Et bien, cette commande s'appuie sur les fichiers syslog pour Debian et messages pour CentOS en filtrant leur contenu sur les messages du noyau pendant le processus de démarrage de la machine.

Voyons donc comment utiliser ces deux fichiers pour relever l’initialisation des cartes réseau du serveur directement dans les traces du système :

Relevez les redémarrages du système

Dans la prochaine vidéo, je vous propose de :

  1. relever dans le fichier/var/log/wtmp les traces des connexions des comptes utilisateurs, et des redémarrages du système via le fameux compte reboot;

  2. voir la commande last qui permet de lire ce fichier :

Auditez qui fait quoi en direct sur le système

Enfin, dernières commandes très utiles :w(comme "work") et who. Ces commandes permettent de relever qui sont les utilisateurs connectés à l’instant T et quelles sont leurs activités. 

Voyons tout cela en vidéo :

En résumé

  • Le répertoire des traces sous Linux est/var/log

  • rsyslog est le processus de gestion et de centralisation des traces sous Linux

  • Chaque type d'activité peut être tracé sous Linux (connexion, authentification, exécution, etc.)

  • La commande dmesg permet d'afficher les traces du noyau

  • Les commandes who et w permettant de relever les comptes connectés

Dans le chapitre suivant, je vous propose d'approfondir ce petit audit du système en nous penchant notamment sur les processus et la mémoire. 

Exemple de certificat de réussite
Exemple de certificat de réussite