fail2ban / ipfw / Mac OS X-Server verweigert keine Verbindungen

792
typonaut

Ich versuche, eine Firewall für meinen 10.5-Server einzurichten, aber ich kann es einfach nicht schaffen, dass es funktioniert. Das Hauptziel besteht darin, zu versuchen, die ständigen Mail-Login-Versuche zu verhindern.

Zu diesem Zweck habe ich fail2ban installiert, um die fehlgeschlagenen Anmeldungen zu erkennen und zu verbieten. Meistens funktioniert das, dh die Mechanismen des Absendens der gesperrten IP-Adressen und des Versendens einer E-Mail an diesen Zweck werden ausgeführt. Wenn ich eine Terminalsitzung starte, werden Dutzende von IP-Adressen mit dem folgenden Befehl aufgeführt:

sudo ipfw list 

Mit einem Eintrag, der wie folgt aussieht:

12345 deny tcp from 123.123.23.123 to any in 

Das Verbot ist jedoch nicht wirksam - die gleiche IP-Adresse wird später erneut versucht, manchmal stundenlang alle paar Sekunden.

Wenn ich das fail2ban-Protokoll überprüfe, beschwert es sich (nachdem mehrere Male ein böswilliger Anmeldeversuch entdeckt wurde):

"WARNING [sasl-ipfw] 123.123.123.123 already banned" 

Ich habe versucht, das Verbot auf verschiedene Weise 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 keinen Unterschied machen. Ich habe sogar nur ein lokales Netzwerkverbot für den Webservice versucht:

12345 deny tcp from 192.168.123.122 to 192.168.123.123 dst-port 80 

Aber das hat auch keine Wirkung. Die anderen Regeln, die als Standard gelten, sehen in der IPFW-Liste folgendermaßen 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 ich irgendwo gelesen habe, kann nicht geändert werden):

65535 allow ip from any to any 

Die Server-Admin-App zeigt an, dass der Firewall-Dienst ausgeführt wird. Das ipfw-Protokoll enthält keine "Ablehnungslisten". Die von fail2ban in IPFW gepatchten Einträge erscheinen nirgendwo in den Server Admin-Einträgen und auch nicht in den Dateien ipfw.conf oder ipfw.conf.apple (daher bin ich nicht sicher, wo sie gespeichert werden). Ich sehe sie jedoch, wenn im Terminal "ipfw list" angezeigt wird und diese auf der Registerkarte "Active Rules" des Abschnitts "Firewall" in Server Admin aufgeführt sind.

Vielen Dank für jede Hilfe zu diesem Thema.

0

1 Antwort auf die Frage

1
Gordon Davisson

Es sieht so aus, als würde Ihr fail2ban-Skript eine zu hohe Regelnummer verwenden. ipfw wertet Regeln in numerischer Reihenfolge aus, und das erste, das für ein bestimmtes Paket gilt, bestimmt, was damit gemacht wird. Das bedeutet, dass Regeln mit niedrigerer Nummerierung eine höhere Priorität haben. Da die Regeln "Ablehnen" von fail2ban mit der Nummer 12345 hinzugefügt werden, die vom Server-Administrator konfigurierten Regeln "Zulassen" jedoch bei 12302 beginnen, setzen zumindest einige der Zulassungsregeln die Ablehnungsregeln von Fail2ban außer Kraft.

Einfacher Fix: Finden Sie heraus, wo die Regelnummer in Ihrem fail2ban-Skript definiert ist, und senken Sie sie auf etwa 12200 ab.

Übrigens, die Tatsache, dass die Regeln von fail2ban nicht zu den Konfigurationsdateien hinzugefügt werden, ist normal und wahrscheinlich gut. Diese Dateien werden verwendet, wenn die Firewall neu geladen wird (z. B. beim Neustart). Sie geben jedoch nicht unbedingt den Status der Firewall "live" wieder. Wenn Sie möchten, können Sie das fail2ban-Skript bearbeiten, um seine Regeln zu diesen Dateien hinzuzufügen und sie in den Live-Status zu setzen. Dies bedeutet jedoch, dass Ihr Regelsatz mit der Zeit beliebig groß wird. IMO, der einzige Zeitpunkt, an dem Sie sich mit solchen "permanenten" Verboten beschäftigen sollten, ist, wenn Sie immer und immer wieder Missbrauch durch dieselben IPs sehen ... aber ich würde erwarten, dass dies selten vorkommt.

Gordon, vielen Dank, das hat es behoben. Ich habe mich bei der Festlegung einer Regelnummer auf IPFW verlassen und auch das Schlüsselwort 'LOG' in der Manpage falsch verstanden und darüber, was zuletzt über die Verarbeitung dieser Regeln gesagt wurde: `Die Protokollierung erfolgt, nachdem alle anderen Bedingungen für das Übereinstimmen des Pakets erfolgreich verifiziert wurden, und bevor die endgültige Aktion ausgeführt wird ". Wie auch immer, ungezogene Pakete jetzt abgelehnt! Verstehen Sie, dass die Regeln nicht in den Konfigurationsdateien enthalten sind. typonaut vor 8 Jahren 0