GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fail2Ban Howto:Blockieren Sie IP-Adressen mit Fail2ban und IPTables

Fail2ban scannt Protokolldateien für verschiedene Dienste (SSH, FTP, SMTP, Apache usw.) und bannt die IP, die zu viele Passwortfehler macht. Es aktualisiert auch die Firewall-Regeln, um diese IP-Adressen abzulehnen.

Fail2ban ist ein Intrusion-Prevention-Framework, das in der Programmiersprache Python geschrieben ist.

Hauptzweck von Fail2ban ist es, Brute-Force-Login-Angriffe zu verhindern.

Lesen Sie auch unseren früheren Artikel über Tripwire (Linux Host Based Intrusion Detection System).

Fail2ban installieren

Um fail2ban von der Quelle zu installieren, laden Sie es von sourceforge herunter..

Verwenden Sie apt-get, um Fail2ban wie unten gezeigt auf einem Debian-basierten System zu installieren.

# apt-get install fail2ban

Sie können Fail2ban auch manuell installieren, indem Sie das fail2ban deb-Paket herunterladen.

# dpkg -i fail2ban_0.8.1-1_all.deb

So konfigurieren Sie fail2ban

Alle Fail2ban-Konfigurationsdateien befinden sich im Verzeichnis /etc/fail2ban.

/etc/fail2ban/fail2ban.conf

Hauptzweck dieser Datei ist die Konfiguration von Fail2ban-Log-bezogenen Anweisungen.

  • Loglevel:Legen Sie die Loglevel-Ausgabe fest.
  • logtarget :Geben Sie den Protokolldateipfad an

Von Fail2ban durchgeführte Aktionen werden in der Datei /var/log/fail2ban.log protokolliert. Sie können die Ausführlichkeit in der conf-Datei ändern auf:1 – ERROR, 2 – WARN, 3 – INFO oder 4 – DEBUG.

/etc/fail2ban/jail.conf

Die Datei jail.conf enthält die Deklaration der Dienstkonfigurationen. Diese Konfigurationsdatei ist in verschiedene Kontexte aufgeteilt. Die DEFAULT-Einstellungen gelten für alle Abschnitte.

Der folgende DEFAULT-Abschnitt von jail.conf besagt, dass nach fünf fehlgeschlagenen Zugriffsversuchen von einer einzelnen IP-Adresse innerhalb von 600 Sekunden oder 10 Minuten (findtime) diese Adresse automatisch für 600 Sekunden (bantime) blockiert wird.

[DEFAULT]
ignoreip = 127.0.0.1
maxretry = 5
findtime = 600
bantime = 600
  • ignoreip:Dies ist eine durch Leerzeichen getrennte Liste von IP-Adressen, die nicht von fail2ban blockiert werden können.
  • maxretry:Maximale Anzahl fehlgeschlagener Anmeldeversuche, bevor ein Host durch fail2ban blockiert wird.
  • bantime:Zeit in Sekunden, die ein Host blockiert wird, wenn er von fail2ban abgefangen wurde (600 Sekunden =10 Minuten).

Dienstkonfigurationen

Standardmäßig werden einige Dienste als Vorlagen eingefügt. Es folgt ein Beispiel für den Abschnitt ssh-Dienste.

[ssh]
enabled = true
port	= ssh
filter	= sshd
logpath  = /var/log/auth.log
action = iptables
  • enabled :Aktiviert die fail2ban-Prüfung für den ssh-Dienst
  • port:Dienstport (auf den in der /etc/services-Datei verwiesen wird)
  • filter:Name des Filters, der vom Dienst verwendet werden soll, um Übereinstimmungen zu erkennen. Dieser Name entspricht einem Dateinamen in „/etc/fail2ban/filter.d“; ohne die Erweiterung „.conf“. Beispiel:„filter =sshd“ bezieht sich auf „/etc/fail2ban/filter.d/sshd.conf“.
  • logpath:Die Protokolldatei, die fail2ban auf fehlgeschlagene Anmeldeversuche überprüft.
  • Aktion:Diese Option teilt fail2ban mit, welche Aktion ausgeführt werden soll, sobald ein Filter zutrifft. Dieser Name entspricht einem Dateinamen in „/etc/fail2ban/action.d/“ ohne die Erweiterung „.conf“. Zum Beispiel:„action =iptables“ bezieht sich auf /etc/fail2ban/action.d/iptables.conf“.

Fail2ban überwacht die Datei /var/log/auth.log auf fehlgeschlagene Zugriffsversuche, und wenn es wiederholt fehlgeschlagene ssh-Anmeldeversuche von derselben IP-Adresse oder demselben Host findet, stoppt fail2ban weitere Anmeldeversuche von dieser IP-Adresse/diesem Host, indem es sie mit blockiert fail2ban iptables Firewall-Regel.

Fail2ban-Filter

Das Verzeichnis /etc/fail2ban/filter.d enthält reguläre Ausdrücke, die verwendet werden, um Einbruchsversuche, Passwortfehler usw. für verschiedene Dienste zu erkennen.

Zum Beispiel:

  • sshd.conf – Fail2ban ssh-bezogene Filter
  • apache-auth.conf – Fail2ban-Apache-Dienstfilter

Wir können auch unseren eigenen regulären Ausdruck hinzufügen, um unerwünschte Aktionen zu finden.

Fail2ban-Aktionen

Das Verzeichnis /etc/fail2ban/action.d enthält verschiedene Skripte, die Aktionen definieren, die ausgeführt werden, sobald ein Filter zutrifft. Pro Dienst ist nur ein Filter zulässig, aber es ist möglich, mehrere Aktionen in separaten Zeilen anzugeben.

Zum Beispiel:

  • IPtables.conf – IP-Adresse sperren und entsperren
  • Mail.conf – E-Mail an konfigurierten Benutzer senden

Fail2ban-Dienst starten/stoppen

Nachdem Sie Konfigurationsänderungen vorgenommen haben, stoppen und starten Sie den Fail2ban-Daemon wie unten gezeigt.

# /etc/init.d/fail2ban stop

# /etc/init.d/fail2ban start

Linux
  1. So blockieren Sie die IP-Adresse auf einem Linux-Server

  2. Blockieren des gesamten Datenverkehrs aus einzelnen Ländern mit IPSet und IPTables

  3. CentOS / RHEL :So blockieren Sie eingehende und ausgehende Ports mit iptables

  4. Fragen zu IPTables und DHCP?

  5. Wie blockiert man mit Linux IPTables Torrents oder P2P-Protokolle?

So blockieren/erlauben Sie Ping mit iptables in Ubuntu

Wie blockiere ich eine IP-Adresse mit .htaccess?

Unix Sed Tutorial:Drucken von Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:Löschen Sie Dateizeilen mit Adresse und Mustern

Probleme bei der Verwendung von sort und comm

Iptables - Bridge- und Forward-Kette