Fail2ban pour Zimbra

Memo

Tout est basé sur l’utilisation de fail2ban, avec les bons fichiers de configuration…

 

sudo apt-get install fail2ban

Créer le filtre zimbra /etc/fail2ban/filter.d/zimbra.conf
# Fail2Ban configuration file
#
# $Revision: 1 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named “host”. The tag “<HOST>” can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[w-.^_]+)
# Values:  TEXT
#
failregex = [ip=<HOST>;] account – authentication failed for .* (no such account)$
[ip=<HOST>;] security – cmd=Auth; .* error=authentication failed for .*, invalid password;$
;oip=<HOST>;.* security – cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
[oip=<HOST>;.* SoapEngine – handler exception: authentication failed for .*, account not found$
WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security – cmd=AdminAuth; .* error=authentication failed for .*;$
NOQUEUE: reject: RCPT from .*[<HOST>]: 550 5.1.1 .*: Recipient address rejected:

# .*[ip=<HOST>;] .* – authentication failed for .* (invalid password)
#
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Il faut modifier le filtre sasl pour qu’il fonctionne avec zimbra
/etc/fail2ban/filter.d/sasl.conf
failregex = [<HOST>]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed
On édite le fichier /etc/fail2ban/jail.conf et on modifie la partie Mail servers

#

# Mail servers

#

[zimbra-account]

enabled  = true

filter   = zimbra

action   = iptables-allports[name=Zimbra-account]

sendmail-whois-lines[name=Zimbra-account,dest=mon@domaine.re,sender=admin@domaine.re,logpath=/opt/zimbra/log/mailbox.log]

logpath  = /opt/zimbra/log/mailbox.log

bantime  = 360

maxretry = 5

[zimbra-audit]

enabled  = true

filter   = zimbra

action   = iptables-allports[name=Zimbra-audit]

sendmail-whois-lines[name=Zimbra-audit,dest=mon@domaine.re,sender=admin@domaine.re,logpath=/opt/zimbra/log/audit.log]

logpath  = /opt/zimbra/log/audit.log

bantime  = 360

maxretry = 5

[zimbra-recipient]

enabled  = false

filter   = zimbra

action   = iptables-allports[name=Zimbra-recipient]

sendmail-whois-lines[name=Zimbra-recipient,dest=mon@domaine.re,sender=admin@domaine.re,logpath=/var/log/mail.log]

logpath  = /var/log/mail.log

findtime = 604800

bantime  = 172800

maxretry = 5

[postfix]

enabled  = true

filter   = postfix

action   = iptables-multiport[name=Postfix, port=smtp, protocol=tcp]

sendmail-whois-lines[name=Postfix,dest=mon@domaine.re,sender=admin@domaine.re,logpath=/var/log/mail.log]

logpath  = /var/log/mail.log

bantime  = 3600

maxretry = 3

[sasl-iptables]

enabled  = true

filter   = sasl

action   = iptables-allports[name=sasl]

sendmail-whois-lines[name=sasl,dest=mon@domaine.re,sender=admin@domaine.re,logpath=/var/log/mail.log]

logpath  = /var/log/mail.log

bantime  = 18000

maxretry = 3

[zimbra-account]

Va filtrer les erreurs de login  sur les comptes mails
 
[zimbra-audit]
Va filtrer les erreurs de mot de passe sur les comptes mails
 
[sasl-iptables]
Va filtrer les erreurs d’authentification sasl
 
[postfix]
Va filtrer les erreurs de connexion a postfix
 
[zimbra-recipient] 
Pour les adresses erronées , je ne l’utilise pas car on a pas mal de demande suppression de mail et ces comptes supprimés reçoivent encore des mails ce qui risque de bloquer des Serveurs innocents
 
Notez que dans action je souhaite recevoir un email du bannissement de l’IP avec des infos sur l’IP et les logs associés
 
Par défaut dans les actions l’envoi de mail se fait avec sendmail seulement fail2ban le localise ici: /usr/sbin/sendmail au lieu de /opt/zimbra/postfix/sbin/sendmail
Pour corriger cela, on efface l’ancien lien symbolique s’il y en a un et on en créé un nouveau
mail:~$ sudo rm  /usr/sbin/sendmail
mail:~$ sudo ln -s /opt/zimbra/postfix/sbin/sendmail /usr/sbin/sendmail

Maintenant on relance FAIL2BAN

3 thoughts on “Fail2ban pour Zimbra

  1. hi,

    we did implement this tutorial on redhat 7, but when we weren’t able to restart the fail2ban service and we’re having this error (account zimbra ) on the zimbra.conf file .

    thanks.

  2. Hello
    Did you follow these two instructions correctly?

    mail:~$ sudo rm /usr/sbin/sendmail
    mail:~$ sudo ln -s /opt/zimbra/postfix/sbin/sendmail /usr/sbin/sendmail

    Your zimbra is installed on /opt ?

Leave a Reply

Your email address will not be published. Required fields are marked *