Aller au contenu

Gestion des Logs

La gestion des logs est très importante sur Linux, que ce soit pour débugger ou bien par souci de sécurité en cas de compromission d’une machine sur le réseau.

Envoi des logs sur le réseau

Pour envoyer automatiquement des logs sur le réseau à une autre machine.
1. Activer la réception des logs sur la machine 1
nano /etc/rsyslog.conf
Il faut décommenter les lignes suivantes et sauvegarder le fichier de configuration
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
2. Redémarrer le daemon
systemctl restart rsyslog
3. Vérifier si la réception de logs est activée, on doit voir deux connexions UDP en :514
┌──(root㉿kalivm)-[/]
└─# ss -lptun
Netid  State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  Process
udp    UNCONN  0       0              0.0.0.0:514           0.0.0.0:*      users:(("rsyslogd",pid=21746,fd=7))
udp    UNCONN  0       0                 [::]:514              [::]:*      users:(("rsyslogd",pid=21746,fd=8))
4. Activer l’envoi des logs sur la machine 2
nano /etc/rsyslog.conf
5. Ajouter à la fin du fichier la ligne :
authpriv.* @adressipmachine1:514
6. Sauvegarder le fichier et redémarrer le daemon
systemctl restart rsyslog
7. Vérifier que les logs arrivent correctement sur la machine 1 Il faut lancer la commande sur la machine 1, et se connecter sur la machine 2 en SSH pour voir le log d’authentification arriver.
┌──(root㉿kalivm)-[/]
└─# tail -f /var/log/auth.log

2023-01-30T11:59:09+01:00 addok sshd[26027]: pam_unix(sshd:session): session closed for user alliance
2023-01-30T11:59:17+01:00 addok sshd[26114]: pam_unix(sshd:session): session opened for user alliance(uid=1000) by (uid=0)

Voir l'historique des connexions / boot / reboot

Pour voir rapidement les dernieres connexions au serveur ou connaitre la date et heure des extinctions système.
last 
ou 
last | grep reboot 

reboot   system boot  6.0.0-kali6-amd6 Thu Jan 26 08:43   still running
reboot   system boot  6.0.0-kali6-amd6 Tue Jan 24 15:40   still running

Voir l'historique des authentifications

Pour voir l’historique des authentifications du serveur.
cat /var/log/auth.log
ou
cat /var/log/auth.log | grep user

Voir les journaux

Pour voir les journaux sur un système Linux récent :
journalctl | grep sshd

Voir la configuration des canaux des journaux

Pour connaitre la configuration des canaux de journaux Linux et savoir ou sont les logs que l’on cherche
grep /var/log /etc/rsyslog.conf

Voir les utilisateurs connectés sur son serveur

Pour voir les utilisateurs en ligne sur le serveur, connaitre leur état et ce qu’ils ont lancé.
w 
ou 
who 

┌──(root㉿kalivm)-[/]
└─# w
 12:18:36 up 4 days,  3:35,  2 users,  load average: 0,26, 0,09, 0,02
UTIL.    TTY      DE               LOGIN@   IDLE   JCPU   PCPU QUOI
kali     pts/0    129.2.32.84      10:13    2:05m  0.78s  0.70s sudo su
kali     pts/1    129.2.32.84      10:13    0.00s  5.28s  0.70s sudo su

Voir les traces du noyau

Pour voir les journaux du démarrage du noyau Linux.
dmesg

Les processus Linux

La commande pour la gestion des processus sous Linux est ps. Voici quelques commandes intéressantes pour la gestion des processus.

Lister les processus de l’utilisateur
ps
Lister tout les processus en cours
ps -edf
Afficher l’arbre des processus
pstree
Afficher le gestionnaire des tâches en mode terminal
top
Afficher une version amméliorée de top
htop
Afficher les processus d’un utilisateur donné
ps | grep Utilisateur
Afficher les 5 processus les plus gourmands en mémoire
ps -edf --sort=+pmem | tail -5
Afficher les 5 processus les plus gourmands en processeur
ps -edf --sort=+pcpu | tail -5
Gérer les priorités des processus. Il faut récupérer le PID (process ID) et lancer la commande renice afin d’ajouter ou de retirer de la priorité à un processus. L’intervalle va de -20 à 20, plus la valeur est élevée, moins le processus est prioritaire.
renice +10 PID
Tuer un processus Linux, -2 correspond à un arrêt propre et -9 à un arrêt forcé.
kill -2 PID
kill -9 PID