6. Pour aller plus loin : surveiller les logs

Enregistrer les logs, c'est bien. Les surveiller, c'est mieux...

Le programme LogCheck est fait pour ça : il est capable de vous envoyer par courriel tous les événements qui ne sont pas référencés dans une base de connaissance.

Installer Logcheck et le configurer

Logcheck est intégré dans la plupart des distributions : vous pouvez l'installer avec un petit apt-get install logcheck.

Par défaut, le programme d'installation va :

    • créer un utilisateur logcheck
    • programmer l'exécution du programme toutes les heures.

Configurer le courriel de destination des messages

Éditez le fichier /etc/logcheck/logcheck.conf, et modifiez la directive :

SENDMAILTO="moncompte@societe.com":q

Modifier la programmation de l'exécution

Éditez le fichier /etc/cron.d/logcheck, et adaptez la programmation à vos besoins :

@reboot logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi
2 * * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

Par défaut, Logcheck s'exécute au reboot du serveur, et toutes les heures (ici, à hh:02). Il n'enverra des messages que s'il trouve des évènements à signaler.

Paramétrer les fichiers à scruter

Par défaut, LogCheck va analyser uniquement /var/log/syslog et /var/log/auth.log. Si vous voulez qu'il étudie, en plus, d'autres fichiers (dans le cas où vous avez limité les stockages dans syslog), éditez le fichier /etc/logcheck/logcheck.logfiles, et rajoutez-les dans la liste.

Paramétrer les événements à éliminer

LogCheck analyse chaque ligne de log, et ne conserve que celles qui ne figurent pas dans une base de messages « connus ».

Par défaut, LogCheck est configuré pour travailler dans trois modes d'analyse différents :

    • un mode station de travail (workstation)
    • un mode serveur (server)
    • un mode « parano » (paranoid).

À chaque mode sont associés des règles différentes. Le mode paranoid contient très peu d'exclusions, le mode serveur en contient beaucoup plus que le mode workstation, en raison du plus grand nombre de services susceptibles d'être scrutés.

Les exclusions sont stockées dans le dossier /etc/logccheck/ignore.d.mode (par exemple, ignore.d.server pour le mode serveur).

Il existe de nombreux fichiers, qui correspondent chacun à un service particulier. Si vous souhaitez rajouter de nouvelles exclusions, mettez-les dans le fichier local (à créer), et non dans les fichiers déjà existants : en cas de mise à jour de la base de données, vous pourriez perdre vos rajouts...

Les exclusions sont bâties sur les expressions régulières. Pour retrouver rapidement la syntaxe, un petit man regex ne fera pas de mal...

Pour vous faciliter la vie, appuyez-vous sur les expressions déjà déclarées. De préférence, quand vous rajoutez une règle, assurez-vous que la syntaxe que vous avez mise en place couvre l'ensemble de la ligne, et pas seulement une partie (utilisez les expressions régulières si certaines valeurs sont variables dans celles-ci, comme un numéro de processus).

Assurez-vous toutefois, avant de créer une règle, que celle-ci correspond bien à un exclusion légitime !

Le processus de mise en place des exclusions peut être long et complexe, surtout si vous surveillez plusieurs serveurs ou services différents. Mais cela vous permettra probablement, au final, de repérer plus vite des incidents ou des tentatives d'intrusion.

5. Enregistrer les logs Windows dans rsyslog Mettre en place un serveur central de logs avec RSYSLOG