Fail2ban Handling: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
 
=Übersicht der Optionen=
 
=Übersicht der Optionen=
 
{| class="wikitable"  
 
{| class="wikitable"  
 +
|- style="vertical-align:middle;"
 +
! colspan="3" | Übersicht der Optionen
 +
|- style="vertical-align:middle;"
 +
| Eintrag
 +
| Beschreibung
 +
| Beispiel
 
|-
 
|-
−
! colspan="3" style="text-align:center;" | Binäres System
+
| colspan="3" | [DEFAULT]
−
! colspan="3" style="text-align:center;" | Dezimalsystem
+
|- style="vertical-align:middle;"
−
|-
+
| ignoreip
−
| Name
+
| Durch Leerzeichen separierte Liste von zu ignorierenden (im Sinne von: nicht zu bannenden) IPs oder Netzwerken.
−
| Faktor
+
| ignoreip = 127.0.0.1/8 192.168.1.33
−
| Wert in Bytes
+
|- style="vertical-align:middle;"
−
| Byte          (B)
+
| bantime
−
| 10^0
+
| Bannzeit in Sekunden. Ein negativer Wert ist ein permanenter Bann.
−
| 1 Byte
+
| bantime = 86400
−
|-
+
|- style="vertical-align:middle;"
−
| Kibibyte (KiB)
+
| findtime
−
| 2^10
+
| Die Anzahl der Sekunden nach dem der Zähler für maxretry zurückgesetzt wird.
−
| 1024 Byte
+
| findtime = 660
−
| style="font-weight:bold;" | Kilobyte  (kB)
+
|- style="vertical-align:middle;"
−
| 10^3
+
| maxretry
−
| 1000 Byte
+
| Die maximale Anzahl an Fehlversuchen, bevor fail2ban die IP bannt.
−
|-
+
| maxretry = 2
−
| Mebibyte (MiB)
+
|- style="vertical-align:middle;"
−
| 2^20
+
| backend
−
| 1'048'576 Byte
+
| Hier kann das backend, wie z.B. systemd eingestellt werden. Voreinstellung ist auto (empfohlen).
−
| Megabyte (MB)
+
| backend = systemd
−
| 10^6
+
|- style="vertical-align:middle;"
−
| 1'000'000 Byte
+
| usedns
−
|-
+
| Einstellung für das reverse-Lookup-Verhalten von fail2ban. Mögliche Werte sind yes, no und warn.<br />Letzteres bewirkt, dass Einträge mit Hostnamen eine Warnung ins Logfile geben, was u.U. zu sehr vielen Einträgen führt.
−
| Gibibyte (GiB)
+
| usedns = warn
−
| 2^30
+
|- style="vertical-align:middle;"
−
| 1'073'741'824 Byte
+
| [myJail]
−
| Gigabyte  (GB)
+
| Hier kann der Name des jail vergeben werden.
−
| 10^9
+
| [ssh]
−
| 1'000'000'000 Byte
+
|- style="vertical-align:middle;"
−
|-
+
| enabled
−
| Tebibyte (TiB)
+
| (De-)Aktiviert das jail
−
| 2^40
+
| enabled = true
−
| 1'099'511'627'776 Byte
+
|- style="vertical-align:middle;"
−
| Terabyte  (TB)
+
| port
−
| 10^12
+
| Portdefinition, kann numerisch sein. Mehrere Werte werden durch Kommata getrennt.
−
| 1'000'000'000'000 Byte
+
| port = ssh
−
|-
+
|- style="vertical-align:middle;"
−
| Pebibyte (PiB)
+
| filter  = sshd
−
| 2^50
+
| Name der Filterdatei
−
| 1'125'899'906'842'624 Byte
+
| /etc/fail2ban/filter.d/sshd.conf
−
| Petabyte  (PB)
+
|- style="vertical-align:middle;"
−
| 10^15
+
| logpath
−
| 1'000'000'000'000'000 Byte
+
| Die zu überwachende Logdatei, die auf den Filter geprüft wird.
−
|-
+
| logpath = /var/log/auth.log
−
| Exbibyte (EiB)
+
|- style="vertical-align:middle;"
−
| 2^60
+
| maxretry, bantime,...
−
| 1'152'921'504'606'846'976 Byte
+
| Abweichende Werte für die Default-Optionen können ebenfalls definiert werden.
−
| Exabyte    (EB)
+
| maxretry = 3
−
| 10^18
 
−
| 1'000'000'000'000'000'000 Byte
 
−
|-
 
−
| Zebibyte (ZiB)
 
−
| 2^70
 
−
| 1'180'591'620'717'411'303'424 Byte
 
−
| Zettabyte (ZB)
 
−
| 10^21
 
−
| 1'000'000'000'000'000'000'000 Byte
 
−
|-
 
−
| Yobibyte (YiB)
 
−
| 2^80
 
−
| 1'208'925'819'614'629'174'706'176 Byte
 
−
| Yottabyte  (YB)
 
−
| 10^24
 
−
| 1'000'000'000'000'000'000'000'000 Byte
 
 
|}
 
|}
  

Version vom 16. Mai 2022, 12:32 Uhr

Install

  • sudo apt install fail2ban

Nach der Installation stehen folgende Programme zur Verfügung

  • fail2ban-server - der Server
  • fail2ban-client - Clientprogramm zur Konfiguration und Auswertung des Servers
  • fail2ban-regex - Programm zum Testen von Regular-Expressions[7]

Konfigurationsdatein

fail2ban.local

  • Hier werden grundlegende Dinge eingestellt. Im Normalfall reichen die Voreinstellungen aus.
[Definition]
loglevel	Mitteilungsfreude einstellen: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL.	loglevel = INFO
logtarget	logtarget kann eine selbst angegebene Datei sein oder eine der folgenden Werte: STDOUT, STDERR, SYSLOG	logtarget=STDERR
socket	Hier lässt sich die Socket-Datei aus /var/run/ umbenennen.	socket = /var/run/fail2ban/fail2ban.sock
pidfile	Hier lässt sich die Prozess-ID-Datei aus /var/run/ umbenennen.	pidfile = /var/run/fail2ban/fail2ban.pid

jail.local

  • In der Datei jail.local werden alle von der jail.conf abweichenden Einträge eingestellt.
  • Man kann diese auch kopieren und als Grundlage für eine eigene jail.local nutzen.
  • Jedoch müssen auch hier nur geänderte Werte eingetragen werden.
  • Ein Minimalbeispiel:
[sshd]
enabled = true

Übersicht der Optionen

Übersicht der Optionen
Eintrag Beschreibung Beispiel
[DEFAULT]
ignoreip Durch Leerzeichen separierte Liste von zu ignorierenden (im Sinne von: nicht zu bannenden) IPs oder Netzwerken. ignoreip = 127.0.0.1/8 192.168.1.33
bantime Bannzeit in Sekunden. Ein negativer Wert ist ein permanenter Bann. bantime = 86400
findtime Die Anzahl der Sekunden nach dem der Zähler für maxretry zurückgesetzt wird. findtime = 660
maxretry Die maximale Anzahl an Fehlversuchen, bevor fail2ban die IP bannt. maxretry = 2
backend Hier kann das backend, wie z.B. systemd eingestellt werden. Voreinstellung ist auto (empfohlen). backend = systemd
usedns Einstellung für das reverse-Lookup-Verhalten von fail2ban. Mögliche Werte sind yes, no und warn.
Letzteres bewirkt, dass Einträge mit Hostnamen eine Warnung ins Logfile geben, was u.U. zu sehr vielen Einträgen führt.
usedns = warn
[myJail] Hier kann der Name des jail vergeben werden. [ssh]
enabled (De-)Aktiviert das jail enabled = true
port Portdefinition, kann numerisch sein. Mehrere Werte werden durch Kommata getrennt. port = ssh
filter = sshd Name der Filterdatei /etc/fail2ban/filter.d/sshd.conf
logpath Die zu überwachende Logdatei, die auf den Filter geprüft wird. logpath = /var/log/auth.log
maxretry, bantime,... Abweichende Werte für die Default-Optionen können ebenfalls definiert werden. maxretry = 3

Config

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

Example ssh

[sshd]
enabled    = true
port    = ssh
filter    = sshd
logpath    = /var/log/auth.log
maxretry = 4

Links