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.
Schreibe einen Kommentar