Administrer un serveur sans surveillance, c’est naviguer à l’aveugle. Logwatch est un outil simple qui analyse chaque nuit les logs de ton serveur et t’envoie un résumé par email: tentatives d’intrusion SSH, requêtes HTTP suspectes, tâches cron, erreurs système. Un coup d’œil quotidien dans ta boîte mail suffit pour garder un œil sur ce qui se passe réellement sur ta machine.
Qu’est-ce que Logwatch ?
Logwatch est un analyseur de logs open-source disponible dans les dépôts Ubuntu. Il agrège et résume les logs de nombreux services (SSH, nginx, cron, PAM, systemd…) et produit un rapport lisible envoyé par email ou affiché en console.
Contrairement à un outil de monitoring en temps réel, Logwatch fonctionne en mode batch, il traite les logs de la veille et produit un rapport consolidé. C’est suffisant pour détecter des patterns d’attaque, des erreurs récurrentes ou des comportements anormaux.
Prérequis: un relais SMTP
Logwatch a besoin d’un agent de transport de mail (MTA) pour envoyer ses rapports. Sur un VPS sans serveur mail dédié, la solution la plus simple est msmtp qui relaie les emails vers un compte Gmail via SMTP.
Installation:
sudo apt install logwatch msmtp msmtp-mta mailutils -y
Durant l’installation, msmtp te demandera si tu veux activer le support AppArmor: réponds Oui pour une sécurité optimale!
Créer un mot de passe d’application Google
Gmail n’accepte plus les mots de passe classiques pour les connexions SMTP externes. Il faut créer un mot de passe d’application :
- Va sur myaccount.google.com
- Sécurité → Validation en deux étapes (doit être activée)
- Mots de passe des applications → Autre → tape un nom (ex:
VPS) - Clique Générer — note le mot de passe à 16 caractères
Configuration de msmtp
sudo nano /etc/msmtprc
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
syslog on
account gmail
host smtp.gmail.com
port 587
from TON_ADRESSE@gmail.com
user TON_ADRESSE@gmail.com
password MOTDEPASSE_APPLICATION_SANS_ESPACES
account default : gmail
Protection du fichier, il contient ton mot de passe :
sudo chmod 600 /etc/msmtprc
sudo chown root:root /etc/msmtprc
Test d’envoi:
echo "Test msmtp" | sudo msmtp -v TON_ADRESSE@gmail.com
La sortie doit se terminer par exitcode=EX_OK et smtpstatus=250 l’email est bien parti. Note que les logs transitent par syslog grâce à la directive syslog on :
sudo grep msmtp /var/log/syslog | tail -3
Configuration de Logwatch
sudo nano /etc/logwatch/conf/logwatch.conf
Output = mail
MailTo = TON_ADRESSE@gmail.com
MailFrom = logwatch@monsite.fr
Detail = Med
Range = yesterday
Format = text
Test
Lance Logwatch manuellement pour vérifier que tout fonctionne :
sudo logwatch --output mail --mailto TON_ADRESSE@gmail.com --detail med
Tu dois recevoir un email dans les secondes qui suivent avec le rapport du serveur.
Un rapport Logwatch typique sur un serveur web contient plusieurs sections :
Cron — liste des tâches planifiées exécutées dans la journée (sauvegardes, certbot, nettoyages système).
httpd — statistiques des requêtes nginx : volume transféré, codes de réponse, tentatives d’exploitation de failles connues, scans de fichiers sensibles. C’est souvent la section la plus révélatrice — on y voit clairement les bots qui cherchent des fichiers .env, .git/config, wp-config.php ou tentent d’exploiter des vulnérabilités PHPUnit.
pam_unix — échecs d’authentification par service. Sur un serveur exposé, la section SSH peut afficher des milliers de tentatives en une seule journée, avec les noms d’utilisateurs testés (admin, root, ubuntu, test…).
sshd — détail des connexions SSH échouées avec les IPs sources et les logins tentés.
Automatisation
Logwatch s’installe avec une tâche cron quotidienne dans /etc/cron.daily/ — le rapport est envoyé automatiquement chaque nuit sans intervention supplémentaire. Vérifie sa présence :
ls /etc/cron.daily/ | grep logwatch
Interpréter le rapport
Un rapport sur un serveur exposé contiendra systématiquement des tentatives d’attaque — c’est inévitable et normal. L’objectif n’est pas d’avoir un rapport vide mais de repérer des anomalies par rapport aux jours précédents :
- Une IP qui tente des milliers de connexions SSH → action Fail2ban attendue
- Des requêtes vers des fichiers inexistants (
.env,.git) → scans automatisés normaux - Une augmentation soudaine du volume de requêtes → potentiel incident à investiguer
- Des erreurs PHP ou nginx inhabituelles → problème applicatif à corriger
Conclusion
Logwatch transforme des gigaoctets de logs bruts en un résumé lisible en quelques minutes. C’est un outil indispensable pour tout administrateur qui veut garder un œil sur son infrastructure sans y passer ses journées. Le rapport quotidien devient vite un réflexe matinal, comme consulter ses emails, on jette un œil au rapport Logwatch pour s’assurer que tout s’est bien passé dans la nuit.
Dans le prochain article, nous verrons comment Fail2ban complète Logwatch en bannissant automatiquement les IP malveillantes détectées dans ces mêmes logs.
Laisser un commentaire