Installation et paramétrage logwatch
Définition :
Il s’agit d’un utilitaire Linux qui va lire les fichiers de log des divers applications installés disposant de fichiers de logs stockés dans le dossier /var/log.
Cet outil va lister tous les activités dans les logs : warning, erreur, tentative de connexion, sur une période donnée avec un niveau de détail plus au moins fin.
En plus de réaliser un suivi de l’ensemble des fichiers de log importants comme auth.log, mail.log ou encore syslog, cette utilitaire transmet des rapports, sous forme de fichier ou d’email, faisant la synthèse de l’activité bizarre de la veuille.
Logwatch est extrêmement utile pour réaliser un suivi de votre machine au quotidien et voir s’il y a eu des attaques par force brut sur des services comme le FTP, SSH, HTTP etc.
Attention, cette outil ne va pas bloquer les attaques, comme Fail2Ban ou Iptables.
Il va permet, après lecture du rapport, de mettre en place des stratégies de blocage contre les attaques : durcir les mots de passe, mis en place d’un .htpasswd, bloquer des ip, ajout d’une règle iptables, suppression de boitemail etc.
Distribution utilisée :
sur une Debian GNU Linux 7.1 (wheezy)
Installation :
Shell
sudo apt-get install logwatch
Paramétrages de base :
Créer un dossier pour le fonctionnement de Logwatch
Shell
mkdir /var/cache/logwatch
La customisation de logwatch se fait dans le fichier le fichier /usr/share/logwatch/default.conf/logwatch.conf mais il est conseillé de le copier et de réaliser dans le fichier de copie les adaptations :
Shell
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
Contenu du fichier logwatch.conf :
Les paramètres intéressants à modifier :
Shell
sudo vi /etc/logwatch/conf/logwatch.conf
Fichier logwatch.conf
Pour envoyer des emails, remplacer :
Output = stdout
par
Output = mail
Pour formater le mail, remplacer :
Format = text
par :
Format = html
(pour avoir testé les deux formats, je préfère le format text)
Pour les destinataires des mails, remplacer :
MailTo = root
par (mettre un espace s’il y a plusieurs destinataires) :
MailTo = mail1@webdevpro.net mail2@webdevpro.net
Pour le niveau de détail (longueur du mail), remplacer :
Detail = Low
par :
Detail = High # ou Medium ou un chiffre de 0 à 10
Exemple de sortie (en format text) :
L’outil va générer des emails qui vont ressembler à ça : une section correspond à un fichier de log traité.
Vous devriez retrouver certaine section et pas d’autre, tout dépend de votre distribution et des logiciels installés.
Fichier email
################### Logwatch 7.3.6 (05/19/07) #################### Processing Initiated: Sat Mar 14 02:00:21 2015 Date Range Processed: yesterday ( 2015-Mar-13 ) Period is day. Detail Level of Output: 10 Type of Output: mail Logfiles for Host: domain_de_votre_machine.fr ################################################################## --------------------- courier mail services Begin ------------------------ ---------------------- courier mail services End ------------------------- --------------------- Cron Begin ------------------------ ---------------------- Cron End ------------------------- --------------------- httpd Begin ------------------------ ---------------------- httpd End ------------------------- --------------------- IMAP Begin ------------------------ ---------------------- IMAP End ------------------------- --------------------- Named Begin ------------------------ ---------------------- Named End ------------------------- --------------------- pam_unix Begin ------------------------ ---------------------- pam_unix End ------------------------- --------------------- proftpd-messages Begin ------------------------ ---------------------- proftpd-messages End ------------------------- --------------------- qmail-send Begin ------------------------ ---------------------- qmail-send End ------------------------- --------------------- Connections (secure-log) Begin ------------------------ ---------------------- Connections (secure-log) End ------------------------- --------------------- SSHD Begin ------------------------ ---------------------- SSHD End ------------------------- --------------------- vpopmail Begin ------------------------ ---------------------- vpopmail End ------------------------- --------------------- Disk Space Begin ------------------------ ---------------------- Disk Space End ------------------------- ###################### Logwatch End #########################
Lancer Logwatch en ligne de commande :
pour lancer Logwatch rien de plus simple, dans votre shell saisir :
Shell
logwatch
ou (si le programme n’est pas dans le Path)
Shell
/usr/share/logwatch/scripts/logwatch.pl
Enfin, logwatch.pl n’est pas situé à cet emplacement dans votre distribution, lancer une rechercher et exécuter le résultat :
Shell
cd / # find ./ -name logwatch.pl -type f ./usr/sbin/logwatch.pl
Vous devriez recevoir un mail avec votre rapport.
Remarque : il faut bien attendre 40 secondes avant que la rapport soit généré.
Lancer Logwatch via un Cronjob :
Il ne reste plus désormais qu’à demander à la machine de lancer Logwatch une fois par jour pour obtenir le rapport via un cronjob.
Par défaut, lors de l’installation de Logwach, un fichier de cron est ajouté dans le dossier /etc/cron.daily :
Shell
sudo vi /etc/cron.daily/00logwatch
Ce script va lancer le rapport tous les jours.
Si ce fichier n’existe pas, il faut l’ajouter à la liste des cronjob :
Shell
sudo crontab -e
puis ajouter au niveau de la dernière ligne du fichier :
Fichier cron
15 1 * * * /usr/share/logwatch/scripts/logwatch.pl >/dev/null 2>&1 #logwatch
Dans mon exemple, je lance la tâche tous les matins à 1h15, moment où la machine est peu solicité et peut être réaliser tranquille sans surcharger l’activité du processeur.
Lire les rapports et agir :
Maintenant que l’outil est prêt, vous allez avoir de nombreuses informations sur l’état de la machine et surtout voir s’il y a pas des activités bizarres comme par exemple de très nombreuses tentatives de connexion erronées pour accéder à vos comptes mails, FTP, SSH.
Il s’agit là de la technique de brut force pour trouver vos mots de passes. Il faut alors s’assurer que les logins et les mots de passes sont durs à trouver (supérieur à 12 caractères avec caractères spéciaux, minuscules, majuscules).
Il est aussi possible de voir des messages d’erreur qui vont apparaitre de très nombreuses fois, ce qui signifie qu’il y a un problème de paramétrage ou autre chose.
En cas d’attaque par forcebrut, je vous invite à installer Fail2ban qui est un essentiel Linux.
L’interprétation des logs peut faire l’objet de milliers d’articles et est souvent l’objet de discussion sur les forums.
Logwatch va vous faire prendre conscience qu’il y a des problèmes, de ces informations de départ, il faut alors chercher sur le net d’autres utilisateurs qui ont eu ce type de problème et voir si la ou les solutions proposées sont transposables dans votre Distribution.