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 :
relever dans le fichier
/var/log/wtmp
les traces des connexions des comptes utilisateurs, et des redémarrages du système via le fameux comptereboot
;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 LinuxChaque type d'activité peut être tracé sous Linux (connexion, authentification, exécution, etc.)
La commande
dmesg
permet d'afficher les traces du noyauLes commandes
who
etw
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.