Logwatch est un système d\'analyse de logs hautement personnalisable. Il parcourt les logs de votre système pour une période donnée et crée un rapport analysant les domaines qui vous intéressent. C\'est un outil essentiel pour être informé de l\'activité de vos serveurs sans avoir à manuellement éplucher des fichiers de logs volumineux.
Pourquoi utiliser Logwatch ?
- Gain de temps : Reçoit un résumé quotidien ou hebdomadaire de l\'activité du système par email.
- Détection d\'anomalies : Met en évidence les tentatives de connexion échouées, les erreurs de disque, les problèmes de service, etc.
- Sécurité : Aide à repérer rapidement les activités suspectes ou les tentatives d\'intrusion.
- Personnalisable : Vous pouvez facilement définir le niveau de détail des rapports et les services à surveiller.
Prérequis
- Un serveur Linux (Ubuntu/Debian, CentOS/RHEL).
- Accès root ou privilèges sudo.
- Un agent de transport de mail (MTA) comme Postfix ou msmtp, pour que le serveur puisse envoyer des emails.
Installation
# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y logwatch
# Sur CentOS / RHEL
sudo yum install -y epel-release
sudo yum install -y logwatch
L'installation configure une tâche cron dans /etc/cron.daily/00logwatch qui s'exécutera chaque jour.
Configuration
La configuration par défaut se trouve dans /usr/share/logwatch/default.conf/logwatch.conf. Pour la personnaliser, on crée une copie dans /etc/logwatch/conf/ que l'on va modifier. C'est cette dernière qui sera prioritaire.
sudo mkdir -p /etc/logwatch/conf
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
sudo nano /etc/logwatch/conf/logwatch.conf
Paramètres clés à modifier
Voici les lignes les plus importantes à ajuster dans votre nouveau fichier /etc/logwatch/conf/logwatch.conf :
# Envoyer le rapport par email au lieu de l'afficher en sortie standard
Output = mail
# Format du rapport (text ou html)
Format = html
# Adresse email qui recevra le rapport
MailTo = [email protected]
# Adresse email de l'expéditeur
MailFrom = [email protected]
# Période de temps à analyser. "yesterday" est le plus courant pour un rapport quotidien.
Range = yesterday
# Niveau de détail du rapport. Les valeurs possibles sont : Low, Med, High ou un nombre de 0 à 10.
# "Med" est un bon point de départ.
Detail = Med
Avec ces réglages, vous recevrez chaque matin un rapport HTML de l'activité de la veille sur l'adresse email spécifiée.
Personnalisation des services
Vous pouvez affiner les rapports pour des services spécifiques. Par exemple, pour avoir plus de détails sur les connexions SSH, vous pouvez créer un fichier de configuration pour ce service :
sudo nano /etc/logwatch/conf/services/sshd.conf
Et y ajouter :
# Obtenir un rapport plus détaillé pour le service sshd
Detail = High
Inversement, si vous ne voulez pas de rapport pour un service (ex: `http` pour Apache), vous pouvez le désactiver :
sudo nano /etc/logwatch/conf/services/http.conf
# Désactiver les rapports pour Apache
Detail = None
Tester la configuration
Vous n'avez pas besoin d'attendre le lendemain pour voir si ça marche. Vous pouvez lancer Logwatch manuellement :
# Exécute logwatch avec les options du fichier de conf et affiche le résultat à l'écran
sudo logwatch --output stdout --format text --detail Med --range today
Cette commande vous donnera un aperçu du rapport qui sera envoyé.
Pour que l\'envoi d\'email fonctionne (
Output = mail), votre serveur doit être capable d\'envoyer des emails. Assurez-vous d\'avoir un MTA fonctionnel (comme Postfix, ou un relais SMTP comme msmtp) et que votre serveur n\'est pas blacklisté.
Conclusion
Logwatch est un outil indispensable pour l'hygiène de sécurité de base de tout serveur Linux. Il transforme le bruit des fichiers de logs en informations digestes et exploitables, vous permettant de rester au courant de ce qu\'il se passe sur vos systèmes avec un minimum d\'effort. Le configurer pour recevoir un rapport quotidien par email est l\'une des premières actions à entreprendre lors de la mise en service d\'une nouvelle machine.