
Ich versuche, eine Firewall für meinen 10.5-Server einzurichten, aber ich kriege es einfach nicht hin. Das Hauptziel besteht darin, die ständigen Brute-Force-Anmeldeversuche per E-Mail zu unterbinden.
Zu diesem Zweck habe ich fail2ban installiert, um die fehlgeschlagenen Anmeldungen zu erkennen und zu sperren. Das funktioniert größtenteils, d. h. die Mechanik, die gesperrten IP-Adressen zu übermitteln und mir eine entsprechende E-Mail zu senden, ist erfolgreich. Wenn ich eine Terminalsitzung starte, werden mir mit dem folgenden Befehl Dutzende von IP-Adressen aufgelistet:
sudo ipfw list
Mit einem Eintrag wie:
12345 deny tcp from 123.123.23.123 to any in
Allerdings ist die Sperre nicht wirksam – die gleiche IP-Adresse versucht es später erneut, manchmal stundenlang alle paar Sekunden.
Wenn ich das Fail2ban-Protokoll überprüfe, beschwert es sich (nachdem es mehrmals einen böswilligen Anmeldeversuch erkannt hat):
"WARNING [sasl-ipfw] 123.123.123.123 already banned"
Ich habe versucht, das Verbot auf verschiedene Arten zu formatieren:
12345 deny tcp from 123.123.23.123 to 127.0.0.1 dst-port 25
12345 deny tcp from 123.123.23.123 to 192.168.123.123 dst-port 25
Aber es hat einfach keinen Unterschied gemacht. Ich habe sogar versucht, den Webdienst über das lokale Netzwerk zu sperren:
12345 deny tcp from 192.168.123.122 to 192.168.123.123 dst-port 80
Aber auch das hat keine Auswirkungen. Die anderen Regeln, die anscheinend Standard sind, sehen in der IPFW-Liste so aus:
12300 allow log logamount 1000 tcp from any to any established
12301 allow log logamount 1000 tcp from any to any out
12302 allow log logamount 1000 tcp from any to any dst-port 22 …
und eine letzte Regel in der Liste (die, wie ich irgendwo gelesen habe, nicht geändert werden kann):
65535 allow ip from any to any
Die Server-Admin-App zeigt an, dass der Firewall-Dienst ausgeführt wird. Im IPFW-Protokoll sind keine „Deny“-Einträge enthalten. Die von fail2ban in IPFW eingefügten Einträge erscheinen nirgendwo in den Server-Admin-Einträgen und auch nicht in den Dateien ipfw.conf oder ipfw.conf.apple (ich bin mir also nicht sicher, wo sie gespeichert sind). Aber ich sehe sie, wenn ich im Terminal „ipfw list“ bekomme, und sie sind in der Registerkarte „Aktive Regeln“ des Firewall-Abschnitts im Server-Admin aufgeführt.
Vielen Dank für jede Hilfe zu diesem Problem.
Antwort1
Es sieht so aus, als ob Ihr fail2ban-Skript eine zu hohe Regelnummer verwendet. ipfw wertet Regeln in numerischer Reihenfolge aus, und die erste, die auf ein bestimmtes Paket zutrifft, bestimmt, was damit geschieht. Das bedeutet, dass Regeln mit niedrigeren Nummern eine höhere Priorität haben. Da die fail2ban-„Deny“-Regeln mit der Nummer 12345 hinzugefügt werden, die vom Serveradministrator konfigurierten „Allow“-Regeln jedoch bei 12302 beginnen, überschreiben zumindest einige der Allow-Regeln die Deny-Regeln von fail2ban.
Einfache Lösung: Suchen Sie, wo die Regelnummer in Ihrem Fail2ban-Skript definiert ist, und senken Sie sie auf etwa 12200.
Übrigens ist es normal und wahrscheinlich auch gut so, dass die Regeln von fail2ban nicht zu den Konfigurationsdateien hinzugefügt werden. Diese Dateien werden verwendet, wenn die Firewall neu geladen wird (z. B. wenn Sie neu starten), spiegeln aber nicht unbedingt den „Live“-Status der Firewall wider. Wenn Sie möchten, können Sie das Skript fail2ban bearbeiten, um seine Regeln zu diesen Dateien hinzuzufügen und sie im Live-Status festzulegen. Das bedeutet jedoch, dass Ihr Regelsatz mit der Zeit beliebig groß werden würde. Meiner Meinung nach sollten Sie sich nur dann mit solchen „permanenten“ Sperren herumschlagen, wenn Sie über einen langen Zeitraum hinweg immer wieder Missbrauch von denselben IPs feststellen … aber ich gehe davon aus, dass dies selten vorkommt.