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.

Cet article a été publié sous la catégorie tutos. Enregistrer cet article permalink.