72 lines
4 KiB
Markdown
72 lines
4 KiB
Markdown
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
||
|
||
# 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.
|
||
|
||
## Installation
|
||
|
||
Sous Debian, on l'installera via :
|
||
|
||
~~~
|
||
# 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_).
|
||
|
||
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.
|
||
|
||
~~~
|
||
REPORTLEVEL="server"
|
||
SENDMAILTO="OMG@example.com"
|
||
MAILASATTACH=0
|
||
FQDN=1
|
||
TMP="/tmp"
|
||
~~~
|
||
|
||
## 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 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 :
|
||
|
||
~~~
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ kernel: \[IPTABLES DROP\] : IN=eth0 OUT= MAC=.*
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ log2mail\[[0-9]+\]: Logfile [.[:alnum:]/]+ rotated. Listening to new file.$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ nrpe\[[0-9]+\]: Could not read request from client, bailing out...$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ nrpe\[[0-9]+\]: INFO: SSL Socket Shutdown.$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ ntpd\[[0-9]+\]: clock is now [[:alnum:]]+$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ suhosin\[[0-9]+\]: ALERT - Include filename \([^)]+\) is an URL that is not allowed \(attacker.+$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ suhosin\[[0-9]+\]: ALERT - tried to register forbidden variable '_REQUEST' through POST variables \(attacker.+$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ suhosin\[[0-9]+\]: ALERT - tried to register forbidden variable '_GET' through POST variables \(attacker.+$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ suhosin\[[0-9]+\]: ALERT - tried to register forbidden variable '_SERVER\[\w+\]' through POST variables \(attacker.+$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ suhosin\[[0-9]+\]: ALERT - ASCII-NUL chars not allowed within request variables.+$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ proftpd\[[0-9]+\]: [._[:alnum:]-]+ - ProFTPD killed \(signal 15\)$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ proftpd\[[0-9]+\]: [._[:alnum:]-]+ - ProFTPD 1.3.1 standalone mode SHUTDOWN$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ proftpd\[[0-9]+\]: [._[:alnum:]-]+ - ProFTPD 1.3.1 \(stable\) \(built Tue Oct 27 10:09:08 UTC 2009\) standalone mode STARTUP$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyncd\[[0-9]+\]: connect from [._[:alnum:]-]+ \([.[0-9]]+\)$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyncd\[[0-9]+\]: rsync allowed access on module [a-z]+ from [._[:alnum:]-]+ \([.[0-9]]+\)$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyslogd: -- MARK --$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ rsyslogd: \[origin software="rsyslogd" swVersion="3.18.6" x-pid="[0-9]+" x-info="<http://www.rsyslog.com"\>] restart$
|
||
^\w{3} [ :0-9]{11} [._[:alnum:]-]+ sshd\[[0-9]+\]: Received disconnect from [.[0-9]]+: 11:.*$
|
||
~~~
|
||
|
||
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'
|
||
~~~
|
||
|
||
On peut aussi faire un petit tour sur rubular.com
|
||
|
||
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'
|
||
~~~
|