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