relecture
This commit is contained in:
parent
92aa739dac
commit
891cae7988
|
@ -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
|
## Installation
|
||||||
|
|
||||||
Sous Debian, on l'installera via :
|
~~~
|
||||||
|
# apt install logcheck logcheck-database
|
||||||
|
~~~
|
||||||
|
|
||||||
~~~
|
|
||||||
# aptitude install logcheck logcheck-database
|
|
||||||
~~~
|
|
||||||
|
|
||||||
## Configuration
|
## 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"
|
REPORTLEVEL="server"
|
||||||
SENDMAILTO="OMG@example.com"
|
SENDMAILTO="monitoring@example.com"
|
||||||
MAILASATTACH=0
|
MAILASATTACH=0
|
||||||
FQDN=1
|
FQDN=1
|
||||||
TMP="/tmp"
|
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
|
## 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 !
|
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.
|
||||||
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/_.
|
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 :
|
||||||
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=.*
|
^\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 :
|
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
|
On peut aussi faire tout simplement :
|
||||||
|
|
||||||
Si on pourra 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'
|
$ 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
|
Loading…
Reference in a new issue