diff --git a/HowtoLogcheck.md b/HowtoLogcheck.md index dfed6072..84d5e3a9 100644 --- a/HowtoLogcheck.md +++ b/HowtoLogcheck.md @@ -1,39 +1,75 @@ -**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** +--- +categories: sécurité sysadmin +title: Howto Logcheck +... -# Howto Logcheck -[Logcheck](http://logcheck.org/) est un outil qui permet d'envoyer les logs par mail, plus précisément les lignes inconnues (non répertoriées dans ses règles) trouvées dans certains journaux. +[Logcheck](http://logcheck.org/) est un script Bash qui permet d'envoyer les logs inconnus par email. Il est lancé toutes les heures et surveille par défaut `/var/log/syslog` et `/var/log/auth.log`. C'est un complément idéal de [Log2mail](HowtoLog2mail) car il va détecter des nouveaux termes dans les logs, que l'on considèrera comme normaux (on les ajoutera alors à la liste des termes connus) ou anormaux (que l'on ajoutera à _Log2mail_ pour avoir une alerte immédiate). + ## Installation -Sous Debian, on l'installera via : +~~~ +# apt install logcheck logcheck-database +~~~ -~~~ -# aptitude install logcheck logcheck-database -~~~ ## Configuration -Par défaut, Logcheck va lire les journaux suivants dans /var/log/ : syslog, auth.log, mail.log, cron.log et user.log (voir dans _/etc/logcheck/logcheck.logfiles_). +Fichiers de configuration : -Sa configuration se passe dans le fichier _/etc/logcheck/logcheck.conf_ où l'on précisera principalement REPORTLEVEL (pour choisir quel jeu d'exceptions l'on veut utiliser), -et bien sûr SENDMAILTO qui précise à qui doit être envoyé les résultats. +~~~ +/etc/logcheck/ +├── logcheck.conf +├── logcheck.logfiles +├── header.txt +├── cracking.d/ +│   ├── kernel +│   ├── [...] +│   └── uucico +├── cracking.ignore.d/ +├── ignore.d.paranoid/ +│   ├── bind +│   ├── [...] +│   └── xinetd +├── ignore.d.workstation +│   ├── automount +│   ├── [...] +│   └── xlockmore +├── logcheck.logfiles.d/ +├── violations.d/ +│   ├── kernel +│   ├── [...] +│   └── sudo +└── violations.ignore.d + ├── logcheck-su + └── logcheck-sudo +~~~ + +Le fichier de configuration principal est `/etc/logcheck/logcheck.conf` où l'on précisera notamment l'option `REPORTLEVEL` pour choisir quel jeu d'exceptions l'on veut utiliser et `SENDMAILTO` pour la destination de l'email : ~~~ REPORTLEVEL="server" -SENDMAILTO="OMG@example.com" +SENDMAILTO="monitoring@example.com" MAILASATTACH=0 FQDN=1 TMP="/tmp" ~~~ +La liste des fichiers de journaux à surveiller se trouve dans le fichier `/etc/logcheck/logcheck.logfiles` : + +~~~ +/var/log/syslog +/var/log/auth.log +/var/log/user.log +~~~ + + ## Utilisation -Logcheck s'exécute toutes les heures et à chaque reboot... et on est souvent rebuté par la quantité de logs reçus. Pourtant, le but est bien de ne *rien* recevoir sauf exception ! -Pour cela, il est important de passer par une "phase de test" où l'on ajoutera des règles d'exception pour prendre en compte les particularités de son système. +Par défaut Logcheck s'exécute toutes les heures et à chaque reboot comme indiqué dans le fichier `/etc/cron.d/logcheck`. On est parfois surpris par la quantité de lignes reçues. Pourtant, le but est bien de ne **rien** recevoir sauf exception ! Pour cela, il est important de passer par une « phase de test » où l'on ajoutera des règles d'exception pour prendre en compte les particularités de son système. -Par exemple, si vous utilisez le _REPORTLEVEL="server"_ vous ajouterez des expressions régulières dans un fichier situé dans le répertoire _ignore.d.server/_. -Voici par exemple, quelques règles que l'on a pu ajouter pour diverses raisons : +Si vous utilisez le `REPORTLEVEL="server"` vous ajouterez des expressions régulières dans un fichier situé dans le répertoire `/etc/logcheck/ignore.d.server/`. Voici par exemple, quelques règles que l'on a pu ajouter pour diverses raisons : ~~~ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ kernel: \[IPTABLES DROP\] : IN=eth0 OUT= MAC=.* @@ -59,13 +95,17 @@ Voici par exemple, quelques règles que l'on a pu ajouter pour diverses raisons Pour tester une expression régulière que l'on écrit, on utilisera "egrep" ainsi : ~~~ -$ sed -e 's/[[:space:]]*$//' /var/log/syslog | egrep 'MA-SUPER-EXPRESSION-REGULIERE' +$ sed -e 's/[[:space:]]*$//' /var/log/syslog | egrep 'MON-EXPRESSION-REGULIERE' ~~~ -On peut aussi faire un petit tour sur rubular.com - -Si on pourra aussi faire tout simplement : +On peut aussi faire tout simplement : ~~~ $ echo "Oct 8 23:59:33 foo sshd[24123]: Received disconnect from 192.0.2.51: 11: disconnected by user" | egrep 'MA-SUPER-EXPRESSION-REGULIERE' ~~~ + +## FAQ + +### Comment apprendre les expressions + +On peut aussi faire un petit tour sur rubular.com \ No newline at end of file