Analyse des logs SSH & Apache

Introduction sur les logs en général

Changement du système de gestion des logs sur les versions récentes debian

Sur les dernières versions Debian, la gestion des logs à changé (les traditionnels /var/log/auth.log, syslog, rsyslog … sont remplacés par journalctl); on peut avoir plus d’infos en allant consulter le fichier /usr/share/doc/systemd/README.logs :

Plus d’infos en tapant man journalctl

Tous les logs sont désormais dans le dossier /var/log/journal

Gérer l’espace disque utilisé par les logs

On peut voir l’espace disque utilisé par les logs en tapant une des 2 commandes ci-dessous:
du -sh /var/log/journal/
journalctl --disk-usage

Normalement, le système gère automatiquement l’espace disque utilisé par les logs (taille max 4GB) et effectue une rotation quand la taille max est atteinte

Si l’on veut gérer l’espace disque utilisé manuellement, voici quelques commandes :
sudo journalctl --rotate # effectue une rotation
journalctl --vacuum-time=2d # supprime tous les logs vieux de plus de 2 jours
journalctl --vacuum-size=100M # ramène la taille des logs à 100M

On peut aussi modifier les paramètres directement dans le fichier /etc/systemd/journald.conf :
(d’abord faire une sauvegarde du fichier de base : cp /etc/systemd/journald.conf /etc/systemd/journald.conf.back
Puis ajuster les paramètres que l’on veut changer

Logs SSH

Pour voir tous les logs de tentatives de connexion : (il faut être en root pour consulter les logs)
journalctl -u ssh ou (selon l’OS) journalctl -u sshd

  • -u : paramètre qui filtre le champ global _SYSTEMD_UNIT (on indique le nom du service utilisé à sa suite)
  • -e : voir les derniers logs
  • -f : voir les logs en temps réel
  • -n 100 : affiche les 100 derniers logs

On peut afficher les logs avec tous les champs dans un format json : journalctl -u ssh -o json-pretty

Logs Apache

Ici : /var/log/apache2 : 2 fichiers : access.log et error.log