Ich habe mir auf meinem Server mal angeschaut, wer sich so alles versucht dort anzumelden. Dabei ist mir aufgefallen,dass es sehr viele ungültige Zugriffe gibt. Deshalb installiere ich nun fail2ban, um die Anzahl der Zugriffe pro IP zu begrenzen.

Zugriffe anzeigen

Die Zugriffe lassen sich in folgender Datei auslesen:

nano /var/log/auth.log

Fail2Ban installieren

Fail2Ban lässt sich unter Debian sehr einfach installieren.

apt-get install fail2ban

Fail2Ban konfigurieren

Der Pfad der Konfigurationsdatei lautet: „/etc/fail2ban/jail.conf“.  Alle Änderungen in dieser Datei werden jedoch bei einem Update von Fail2Ban überschrieben. Um dies zu verhindern erstellen wir uns eine Kopie dieser Datei, die wir dann bearbeiten. Diese Änderungen bleiben auch nach einem Update erhalten.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Nun öffnen wir die neue Datei:

nano /etc/fail2ban/jail.local

Wenn ihr ein paar Zeilen nach unten scrollt, dann seht ihr folgende Einstellungen:

# "bantime" is the number of seconds that a host is banned.
bantime = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
maxretry = 3

Dort wird festgelegt, wie lange eine IP gebannt wird und wann es zu einem Ban kommt.

Danach könnt ihr noch eine Email Adresse festlegen.

destemail = eure-mail.de

Nun könnt ihr auswählen, ob ihr bei einem Ban per Email benachrichtigt werden wollt. Folgende 3 Möglichkeiten stehen zur Auswahl:

  • action_: nur IP bannen
  • action_mw: IP bannen und Email mit whois Informationen zu der gebannten IP an dich verschicken
  • action_mwl: IP bannen und Email mit whois Informationen zu der gebannten IP und relevante Log Zeilen an dich verschicken

Ich habe mich für die 3. Möglichkeit entschieden:

action = %(action_mwl)s

Weiter unten seht ihr dann, welche Protokolle aktuell aktiviert sind. Um ein Protokoll zu aktivieren müsst ihr „enabled = true“ setzen.

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

[dropbear]

enabled  = false
port     = ssh
      .
      .
      .
      .

Wenn ihr euren SSH Port geändert habt, dann müsst ihr euren geänderten Port hier eingeben, in der Zeile „port =euer-SSH-port“.

Wie ihr herausfindet, wie euer derzeitiger SSH Port lautet könnt ihr hier nachlesen.

Nun müsst ihr fail2ban nur noch neustarten, damit die Einstellungen übernommen werden.

/etc/init.d/fail2ban restart

Danach solltet ihr euch die Logs / Status anschauen, ob alles funktioniert.

Logs

Hier solltet ihr kontrollieren, ob alles richtig funktioniert.

Dazu öffnet ihr folgende Datei

nano /var/log/fail2ban.log

fail2ban Status

Mit folgendem Befehl lässt sich der aktuelle Status von fail2ban anzeigen

service fail2ban status

Lösungen zu einigen Fehlern

Fehler: Starting authentication failure monitor: fail2banWARNING ‚ignoreregex‘ not defined in ‚Definition‘. Using default one: “

Ihr gebt folgenden Befehl ein.

sed -i -e '/^failregex\b/{:a;n;/^$/!ba;i\ \nignoreregex = ' -e '}' /etc/fail2ban/filter.d/postfix-sasl.conf

und startet fail2ban neu.

/etc/init.d/fail2ban restart

Fehler: ERROR   Error in FilterPyinotify callback: ‚module‘ object has no attribute ‚_strptime_time‘

Ihr geht in die Konfiguration und ändert folgenden Wert

nano /etc/fail2ban/jail.local

backend = polling

Danach startet ihr fail2ban neu.

/etc/init.d/fail2ban restart

 

 

 

Teile diesen Beitrag
Christian

Categories:

Keine Kommentare vorhanden

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.