Fail2Ban und Postscreen

Fail2Ban lässt sich dahingehend erweitern, um auf die Ausgaben von Postscreen zu reagieren und die IP Adressen zu blocken.

Man könnte Fail2Ban anweisen die ankommende IP zu blocken, falls diese von Postscreen auf einer Blacklist oder mehreren Blacklists gefunden wurde.
Der entsprechende Postscreen Log-Eintrag sieht so aus:

NOQUEUE: reject: RCPT from [x.x.x.x]:xxxx: 550 5.7.1 Service unavailable;
client [x.x.x.X] blocked using zen.spamhaus.org;
from=<spammer@domain.tld>, to=<spam@kupschke.net>, proto=ESMTP, helo=<...>

Nun muss man den Fail2Ban Postfix Filter entsprechend anpassen, diesen findet man in der Datei /etc/fail2ban/filter.d/postfix.conf:
Original:

 failregex = reject: RCPT from (.*)\[<HOST>\]: 554

Meine Anpassungen:

 failregex = reject: RCPT from (.*)\[<HOST>\]: 554
             reject: RCPT from (.*)\[<HOST>\]:([0-9]{4,5}:)? 550

Sofern die Fail2Ban Standardeinstellungen gesetzt sind, würde ein Spammer jetzt nach 3 Versuchen für 10 Minuten gebannt werden.
Mein Postscreen fragt allerdings mehrere Blacklists ab und blockiert den Spammer erst wenn er in mehreren Blacklists eingetragen ist, diese Überprüfungen sind recht teuer, daher möchte ich den Spammer bei seinem ersten Versuch für eine Stunde blockieren.
Um diese Konfiguration einzurichten öffnen wir die Datei /etc/fail2ban/jail.conf und ändern die Einträge wie folgt ab:
Originial:

[postfix]
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log

Meine Anpassungen:

[postfix]
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 1
bantime = 3600

Ob man auch alles richtig eingestellt hat, und welchen Erfolg man bisher mit diesen Regeln gehabt hätte, kann man sich mit diesem Befehl anzeigen lassen:

fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf

Mithilfe von Fail2Ban kann man natürlich auch auf alle anderen Ausgaben von Postscreen und Postfix reagieren und die Spammer sehr effizient abwehren.

2 thoughts on “Fail2Ban und Postscreen

  1. Many thanks, this was very helpful! Postscreen is doing a good job deflecting spammers, but my mail logs were huge. The default fail2ban filters (on Ubuntu 14.04) don’t work but your simpler version did. I’m using ipset because it’s a distributed attack – about 300,000 different IP addresses.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.