Frage Permanenter IP-Block nach n Versuchen mit fail2ban


Ich habe einen fail2ban wie folgt konfiguriert:

  • Blockiere die IP nach 3 fehlgeschlagenen Versuchen
  • Lassen Sie die IP nach 300 Sekunden ablaufen

Dies funktioniert perfekt und ich möchte es so beibehalten, dass ein gültiger Benutzer die Möglichkeit hat, die Anmeldung nach dem Timeout erneut zu versuchen. Nun möchte ich eine Regel implementieren, bei der, wenn die gleiche IP als Angriff erkannt und blockiert wurde, 5 mal entsperrt wird, die IP permanent blockiert und die Blockierung nie wieder aufgehoben wird. Kann dies mit fail2ban allein erreicht werden oder muss ich dafür ein eigenes Skript schreiben?

Ich mache das in Centos.


32
2017-08-07 11:59


Ursprung


Es ist eine ziemlich alberne Idee - je mehr Regeln du iptables hinzufügst, desto langsamer wird es. - symcbean
Schätze deinen Kommentar, aber was ich brauche, ist eine Antwort und kein Vorschlag. Danke trotzdem. - BTR Naidu
Manchmal ist die richtige Antwort auf "Wie mache ich X" "Do not do X". - ceejayoz


Antworten:


Vor 0.11 gab es keine Standardfunktion oder eine Einstellung innerhalb von fail2ban um das zu erreichen. Aber beginnend mit der kommenden Version 0.11 ist die Zeit für das Verbot automatisch berechnet und steigt exponentiell mit jeder neuen Straftat, die auf lange Sicht einen mehr oder weniger dauerhaften Block bedeutet.

Bis dahin ist wahrscheinlich Ihre beste Vorgehensweise fail2ban, um seine eigene Protokolldatei zu überwachen. Es ist ein zweistufiger Prozess ...

Schritt 1

Wir könnten müssen Erstelle einen Filter nachsehen VERBOTist in der Protokolldatei (Protokolldatei von fail2ban)

Schritt 2

Wir müssen definiere das Gefängnis, ähnlich dem folgenden ...

[fail2ban]
aktiviert = wahr
Filter = fail2ban
action = iptables-allports [Name = fail2ban]
logpath = /pfad/zu/fail2ban.log
# findtime: 1 Tag
findtime = 86400
# Bantime: 1 Jahr
Bantime = 31536000

Technisch gesehen ist es das kein permanenter Block, aber nur Blöcke für ein Jahr (das können wir auch erhöhen).

Wie auch immer, für deine Frage (Kann dies mit fail2ban allein erreicht werden oder ich muss mein eigenes Skript schreiben, um das zu tun?) ... das Schreiben eines eigenen Skripts könnte gut funktionieren. Einrichten des Skripts zum Extrahieren des häufig verbotene IPs und dann setzen sie in /etc/hosts.deny ist was ich empfehlen würde.


25
2017-08-08 05:18



Hinzufügen zu dieser ausgezeichneten Antwort ... Abhängig davon, wie Logging und MaxAuthTries konfiguriert sind sshd_configDies könnte möglicherweise nur 3 fehlgeschlagene Logins für eine sshd "Sitzung" blockieren - nicht 3 fehlgeschlagene Logins. Zum Beispiel könnte ein Angreifer standardmäßig ['pass1', 'pass2', 'pass3'] in einer einzigen Sitzung versuchen, bevor sshd die Verbindung trennt. Abhängig davon, wie sshd auf logging gesetzt wird, könnte dies als 1, 2 oder 3 Versuche zu fail2ban erscheinen. - Jonathan Vanasco
Dafür gibt es jetzt den fid2ban Rezidivfilter. - Guillermo Prandi
Was meinst du mit kommende Version 0.11? Das Neueste scheint 10.3.1 zu sein: github.com/fail2ban/fail2ban/releases - user5950
Ich hoffe du meintest es 0.10.3.1. Sie können den Fortschritt von "0.11" um verfolgen github.com/fail2ban/fail2ban/tree/0.11 . Grundsätzlich ist es noch nicht veröffentlicht! - Pothi Kalimuthu


Ich glaube, wenn du es sagst bantime = -1 In diesem Konfigurationsabschnitt ist es ein permanenter Block.


26
2018-03-21 16:25



In der Tat, Einstellung bantime zu irgendeinem negativen Wert ist ein permanentes Verbot (ab Fail2Ban ver. 0.6.1 (2006/03/16)) - voretaq7
Hinzufügen von -1 zu Einstellungen gemacht Fail2ban reagiert nicht - Erdem Ece


Phil Hagen hat einen ausgezeichneten Artikel zu diesem Thema geschrieben. "Dauerhafte Wiederholungstäter mit fail2ban dauerhaft sperren".

Sein Vorschlag ist der gleiche wie Pothi, bietet aber eine Schritt für Schritt Anleitung.

Dies beinhaltete:

  • separate Sperrliste nach Jail (ip.blocklist.ssh, ip.blocklist.xxx)
  • Sperrlisten werden automatisch geladen, wenn der Dienst neu gestartet wird (Hauptvorteil dieser Methode imho)
  • E-Mail-Benachrichtigung, wenn Repeater aktiviert ist.

10
2017-10-29 00:08





Um Chins Antwort zu erweitern, ist das ziemlich einfach. Bearbeiten Sie einfach die 2 Einstellungen in /etc/fail2ban/jail.local um Ihren Vorlieben zu entsprechen.

 # ban time in seconds. Use -1 for forever. Example is 1 week.
 bantime  = 604800
 # number of failures before banning
 maxretry = 5

5
2018-04-07 20:11