22
0
Fork 0

relecture

This commit is contained in:
gcolpart 2017-11-05 15:40:09 +01:00
parent 92aa739dac
commit 891cae7988
1 changed files with 59 additions and 19 deletions

View File

@ -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