Fail2ban Konfigurationsdatein
Zur Navigation springen
Zur Suche springen
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 |
Action.local
- Die Dateien im Verzeichnis /etc/fail2ban/action.d/ enthalten die Befehle zum (Ent-)Sperren von IP-Adressen
- Action-Dateien enthalten zwei Sektionen: [Definition] und [Init]
- Die Einträge in der [Init]-Sektion dienen zum Überschreiben der im Jail definierten Regeln
| Übersicht der Optionen | ||
|---|---|---|
| Eintrag | Beschreibung | Beispiel |
| [Definition] | ||
| actionstart | Befehle, die beim Starten von fail2ban ausgeführt werden. | actionstart = iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name> |
| actionstop | Befehle, die beim Beenden von fail2ban ausgeführt werden. | actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name> iptables -F fail2ban-<name>BRiptables -X fail2ban-<name> |
| actioncheck | Befehle, die vor jedem actionban ausgeführt werden. Diese dienen dazu die aktuelle Umgebung auf Funktionalität zu überprüfen. | grep -q 'fail2ban-<name>[ \t]' |
| actionban | Befehle, die beim Bannen einer IP ausgeführt werden. Die Bedingung lautet immer maxretry muss überschritten und findtime unterschritten sein. | actionban = iptables -I fail2ban-<name> 1 -s <ip> -j <blocktype> |
| actionunban | Befehle, die zum Entbannen benutzt werden sollen. | actionunban = iptables -D fail2ban-<name> -s <ip> -j <blocktype> |
| [Init] | ||
| name | Standardname der Kette | name = default |
| port | Port | port = ssh |
| protocol | Wird intern vom config reader genutzt. Mögliche Werte: tcp, udp, icmp, all. | protocol = tcp |
| chain | Die iptables-Kette zu der die fail2ban-Regeln hinzugefügt werden sollen. Standard ist INPUT. | chain = INPUT |
| Action Tags | Action Tags sind Platzhalter, welche in actionban, actionunban und actioncheck verwendet werden können. | |
| ip | Die zu bannende IPv4-Adresse. | |
| failures | Die Anzahl der gezählten Fehlversuche. | |
| time | Der Unix-Zeitstempel (Sekunden) des Banns. | |
| matches | Die verketteten Einträge aus den Zeilen des Logfiles, die zum Bann führen. Viele Shell-Zeichen werden escaped dargestellt. | |
Filter.local
- Die Dateien im Verzeichnis /etc/fail2ban/filter.d/ enthalten die regulären Ausdrücke zur Analyse der Logdateien und zum Extrahieren der IP-Adresse
- zwei Sektionen: [Definition] und [Includes]
| Übersicht der Optionen | ||
|---|---|---|
| Eintrag | Beschreibung | Beispiel |
| [Definition] | ||
| failregex | Mit Hilfe dieses regulären Ausdrucks[6] werden die Logdateien nach Treffern durchsucht. Hier ist der Tag HOST verfügbar, welche als Teil der regex benutzt wird und den Hostnamen, bzw. die IP-Adresse enthält. Die Unterscheidung zwischen IP-Adresse und Hostname wird von fail2ban automatisch ermittelt. | failregex = ^%(__prefix_line)sFAIL: \S+ address from=<HOST>$ ^%(__prefix_line)sFAIL: \S+ libwrap from=<HOST>$ |
| ignoreregex | Hier können Ausnahmen definiert werden, selbst wenn sie für die obige failregex gültig wäre. ignoreregex unterstützt String_interpolation, so dass man eigene Variablen mittels %(variablenname)s verwenden kann. | ignoreregex = |
| [INCLUDES] | ||
| before | Die Datei wird vor der Sektion [Definition] gelesen. Beispiel ist die common.conf | before = common.conf |
| after | Die Datei wird nach der Sektion [Definition] gelesen. | after = example_after.local |
| Beispiel | Nach Einbindung der common.conf steht _daemon zur Verfügung. Siehe /etc/fail2ban/filter.d/common.conf für mehr Details. | _daemon = xinetd |