Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sysadmin:tips:logcheck [2015/01/23 18:59] james ajout ignore monitoring dovecot |
sysadmin:tips:logcheck [2015/08/06 11:01] (Version actuelle) james [burp-backup] nouvelles regles |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
Pour tester une règle qui est une regexp on peut utiliser la commande grep, comme par exemple avec une règle pour postfix (donc sur le fichier /var/log/mail.log) : les lignes affichées ici seront ignorées par logcheck :<code>egrep "^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ postfix/smtpd\[[[:digit:]]+\]: (dis)?connect from [^[:space:]]+$" /var/log/syslog</code> | Pour tester une règle qui est une regexp on peut utiliser la commande grep, comme par exemple avec une règle pour postfix (donc sur le fichier /var/log/mail.log) : les lignes affichées ici seront ignorées par logcheck :<code>egrep "^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ postfix/smtpd\[[[:digit:]]+\]: (dis)?connect from [^[:space:]]+$" /var/log/syslog</code> | ||
+ | |||
+ | Un autre moyen est de lancer un dryrun de logcheck sur un fichier particulier (ici /var/log/syslog), pour se faire : <code> | ||
+ | su logcheck -s /bin/bash -c "/usr/sbin/logcheck -l /var/log/syslog -o -t"</code> | ||
===== Ajouter des regles ===== | ===== Ajouter des regles ===== | ||
Ligne 31: | Ligne 34: | ||
==== openvpn ==== | ==== openvpn ==== | ||
{{tag>logcheck sysadmin tips debian wheezy openvpn}} | {{tag>logcheck sysadmin tips debian wheezy openvpn}} | ||
- | pour gérer correctement certains messages : ajouter dans le fichier /etc/logcheck/ignore.d.server/openvpn :<code> | + | pour gérer correctement certains messages : ajouter dans le fichier /etc/logcheck/ignore.d.server/openvpn : |
- | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ (openvpn|ovpn-[._[:alnum:]-]+)\[[[:digit:]]+\]:( ([-_.@[:alnum:]]+/)?[.[:digit:]]{7,15}:[[:digit:]]{2,5})? CRL CHECK OK:.*$ | + | * CRL CHECK :<code> |
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ (openvpn|ovpn-[._[:alnum:]-]+)\[[[:digit:]]+\]:( ([-_.@[:alnum:]]+/)?[.[:digit:]]{7,15}:[[:digit:]]{2,5})? CRL CHECK OK:.*$</code> | ||
+ | * ajout de [AF_INET] devant les IP :<code> | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ (openvpn|ovpn-[._[:alnum:]-]+)\[[[:digit:]]+\]:(( ([-_.@[:alnum:]]+/)?[.[:digit:]]{7,15}:[[:digit:]]{2,5})?( \[[-._[:alnum:]]+\])?)? Peer Connection Initiated with (\[AF_INET\])?[[:digit:].]{7,15}:[[:digit:]]+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ (openvpn|ovpn-[._[:alnum:]-]+)\[[[:digit:]]+\]:( ([-_.@[:alnum:]]+/)?[.[:digit:]]{7,15}:[[:digit:]]{2,5})? TLS: Initial packet from (\[AF_INET\])?[.[:digit:]]{7,15}:[[:digit:]]+, sid=[[:xdigit:]]{8} [[:xdigit:]]{8}$ | ||
</code> | </code> | ||
+ | {{tag>logcheck sysadmin tips debian jessie openvpn}} | ||
+ | * VERIFY OK debian jessie :<code> | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ (openvpn|ovpn-[._[:alnum:]-]+)\[[[:digit:]]+\]:( ([-_.@[:alnum:]]+/)?[.[:digit:]]{7,15}:[[:digit:]]{2,5})? VERIFY (SCRIPT )?OK: depth=[[:digit:]]+, (/|C=)[-:_./=@[:alnum:], ]+$</code> | ||
==== amavisd-new ==== | ==== amavisd-new ==== | ||
{{tag>logcheck sysadmin tips debian wheezy amavisd-new amavis}} | {{tag>logcheck sysadmin tips debian wheezy amavisd-new amavis}} | ||
- | pour gérer correctement certains messages : ajouter dans le fichier /etc/logcheck/ignore.d.server/openvpn :<code> | + | pour gérer correctement certains messages : ajouter dans le fichier /etc/logcheck/ignore.d.server/amavisd-new :<code> |
^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ amavis\[[[:digit:]]+\]: \([-[:digit:]]+\) Passed (CLEAN|SPAM(MY)?)( {RelayedInbound})?,( LOCAL)?( \[(IPv6:)?[[:xdigit:].:]{3,39}\](:[[:xdigit:]]{0,5})?){0,2} <[^>]*> -> <[^>]*>(,<[^>]*>)*,( quarantine: ([[:alnum:]]/)?spam-[-+[:alnum:]]+(\.gz)?,)?( Queue-ID: [[:xdigit:]]*,)?( Message-ID: <[^>]+>( \((added by[^)]+|sfid-[_[:xdigit:]]+)\))?,)?( Resent-Message-ID: <[^>]+>,)? mail_id: [-+_[:alnum:]]+, Hits: (-?[.[:digit:]]*)+, size: [[:xdigit:]]+, queued_as: [[:xdigit:]]+( OK id=[-[:alnum:]]+)?, [[:digit:]]+ ms$</code>pour gérer les messages type <code> | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ amavis\[[[:digit:]]+\]: \([-[:digit:]]+\) Passed (CLEAN|SPAM(MY)?)( {RelayedInbound})?,( LOCAL)?( \[(IPv6:)?[[:xdigit:].:]{3,39}\](:[[:xdigit:]]{0,5})?){0,2} <[^>]*> -> <[^>]*>(,<[^>]*>)*,( quarantine: ([[:alnum:]]/)?spam-[-+[:alnum:]]+(\.gz)?,)?( Queue-ID: [[:xdigit:]]*,)?( Message-ID: <[^>]+>( \((added by[^)]+|sfid-[_[:xdigit:]]+)\))?,)?( Resent-Message-ID: <[^>]+>,)? mail_id: [-+_[:alnum:]]+, Hits: (-?[.[:digit:]]*)+, size: [[:xdigit:]]+, queued_as: [[:xdigit:]]+( OK id=[-[:alnum:]]+)?, [[:digit:]]+ ms$</code>pour gérer les messages type <code> | ||
Oct 16 22:51:57 mailserver amavis[32039]: (32039-11) Passed CLEAN {RelayedInbound}, [10.0.0.1]:39213 [10.0.0.1] <root@domain.com> -> <root@domain.com>, Queue-ID: 8589710013F, Message-ID: <20141016205157.1B85842A6@mailserver.domain.com>, mail_id: DpzmaAs5yyiC,Hits: 4.799, size: 786, queued_as: B5161100158, 140 ms</code> | Oct 16 22:51:57 mailserver amavis[32039]: (32039-11) Passed CLEAN {RelayedInbound}, [10.0.0.1]:39213 [10.0.0.1] <root@domain.com> -> <root@domain.com>, Queue-ID: 8589710013F, Message-ID: <20141016205157.1B85842A6@mailserver.domain.com>, mail_id: DpzmaAs5yyiC,Hits: 4.799, size: 786, queued_as: B5161100158, 140 ms</code> | ||
ou "[ADRESSE_IP]:PORT [ADRESSE_IP]" ne sont pas filtrés par défaut. De plus il peut y avoir des "_" dans le champs mail_id ajoutés dans cette règle. | ou "[ADRESSE_IP]:PORT [ADRESSE_IP]" ne sont pas filtrés par défaut. De plus il peut y avoir des "_" dans le champs mail_id ajoutés dans cette règle. | ||
+ | ==== burp-backup ==== | ||
+ | {{tag>logcheck sysadmin tips debian jessie burp backup sauvegarde}} | ||
+ | Pour [[http://burp.grke.org/|BURP]], un super logiciel de backup qui supporte aussi (tres bien) les clients windows en plus des linux, ici installé sur une debian jessie :<code> | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: auth ok for: [[:alnum:]]+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: Client [[:alnum:]]+ does not want a certificate signed$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: Client uses TLSv1/SSLv3 (-|[[:alnum:]])+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: Client supports being sent counters.$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: in do_backup_server$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: Do a backup of [[:alnum:]]+ now.$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: Running backup of [[:alnum:]]+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: Running timer script: [[:alnum:]]+ .*$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: (Out of|In) timeband: .*$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: (Last backup|Next after ): ([[:digit:]]|-)+ ([[:digit:]]|:)+( \(interval [[:digit:]]+h\))?$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: (Not yet time for a backup of|Not running backup of) [[:alnum:]]+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: (/etc/burp/timer_script returned: (0|1)|exit child)$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: forked( status server)? child pid [[:digit:]]+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: deleting [[:alnum:]]+ backup [[:digit:]]+$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: exit(ing| status server)$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: (Logging to|Compressing) /[[:alnum:]/]+([[:digit:][:space:]:-]+)?/log( to /[[:alnum:]/]+log.gz...)?$ | ||
+ | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ burp\[[[:digit:]]+\]: [[:digit:]-]+ [[:digit:]:]+ < [[:digit:]-]+ [[:digit:]:]+.$ | ||
+ | </code> | ||
==== Si comme moi vous utilisez des log custom ==== | ==== Si comme moi vous utilisez des log custom ==== | ||
Ligne 70: | Ligne 101: | ||
On valide cette règle avec un coup de <code>egrep -e "^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ postfix/(submission/|smtps/)?smtpd\[[[:digit:]]+\]: (dis)?connect from [^[:space:]]+$" /var/log/syslog | grep smtps</code> et si on obtient bien les resultats a filtrer on peut ajouter ce filtre au fichier "/etc/logcheck/ignore.d.server/postfix". | On valide cette règle avec un coup de <code>egrep -e "^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ postfix/(submission/|smtps/)?smtpd\[[[:digit:]]+\]: (dis)?connect from [^[:space:]]+$" /var/log/syslog | grep smtps</code> et si on obtient bien les resultats a filtrer on peut ajouter ce filtre au fichier "/etc/logcheck/ignore.d.server/postfix". | ||
- | ==== Le monitoring a une facheuse tendance à faire des faux positifs ==== | + | Autre règle a rajouter : <code>^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ postfix/(submission/|smtps/)?smtpd\[[[:digit:]]+\]: [[:alnum:]]+: client=[^[:space:]]+, sasl_method=[-[:alnum:]]+, sasl_username=[-_.@[:alnum:]]+$</code> |
+ | |||
+ | ===== Le monitoring a une facheuse tendance à faire des faux positifs ===== | ||
exemple de log obtenu (adapter à vos IPs de serveurs de monitoring 2607:f0d0:1002:51::1 et serveur dovecot 2607:f0d0:1002:51::2, mais vous ne voulez **pas** mettre ici des "[.:[:xdigit:]]+" pour ne pas cacher de vrais problèmes éventuels) : | exemple de log obtenu (adapter à vos IPs de serveurs de monitoring 2607:f0d0:1002:51::1 et serveur dovecot 2607:f0d0:1002:51::2, mais vous ne voulez **pas** mettre ici des "[.:[:xdigit:]]+" pour ne pas cacher de vrais problèmes éventuels) : | ||
<code> | <code> | ||
# Oct 21 09:05:02 monserveur dovecot: imap-login: Aborted login (no auth attempts in 1 secs): user=<>, rip=2607:f0d0:1002:51::1, lip=2607:f0d0:1002:51::2, TLS, session=<2DV5XVTN0gAqAQ41i0SEwAAAAAAAAAAC></code> | # Oct 21 09:05:02 monserveur dovecot: imap-login: Aborted login (no auth attempts in 1 secs): user=<>, rip=2607:f0d0:1002:51::1, lip=2607:f0d0:1002:51::2, TLS, session=<2DV5XVTN0gAqAQ41i0SEwAAAAAAAAAAC></code> | ||
et sa règle correspondante :<code> | et sa règle correspondante :<code> | ||
- | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ dovecot: (pop3|imap)-login: Aborted login( \([[:digit:]]+ authentication attempts\)| \(no auth attempts in [[:digit:]]+ secs\))?: (user=<[-_.@[:alnum:]]+>, method=[[:alnum:]-]+, |user=<>, )?rip=2607:f0d0:1002:51::1, lip=2607:f0d0:1002:51::2(, (TLS( handshake)?|secured))?(, session=<[[:alnum:]]+>)?$</code> | + | ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ dovecot: (pop3|imap)-login: Aborted login( \([[:digit:]]+ authentication attempts\)| \(no auth attempts in [[:digit:]]+ secs\))?: (user=<[-_.@[:alnum:]]+>, method=[[:alnum:]-]+, |user=<>, )?rip=2607:f0d0:1002:51::1, lip=2607:f0d0:1002:51::2(, (TLS( handshake)?|secured))?(, session=<[[:alnum:]/\+]+>)?$</code> |