Bekomme fail2ban nicht ans laufen

ipod86

Lt. Junior Grade
Registriert
Jan. 2009
Beiträge
448
Hallo,

ich versuche vergeblich fail2ban ans laufen zu bekommen.
Allerdings ohne Erfolg.

Ich versuche meinen Nginx Reverse Proxy im Docker abzusichern.

Mein letzter Stand bzw vorgehen ist:
(Von hier https://gist.github.com/Rankarusu/23a04ed587b05c6f2b701f2457a127b0)


  • fail2ban installiert
  • Jail angelegt -> sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local (erstmal alles default gelassen)
  • Filter unter /etc/fail2ban/filter.d/npm.conf mit folgendem Inhalt angelegt

[INCLUDES]

[Definition]

failregex = ^<HOST>.+" (4\d\d|3\d\d) (\d\d\d|\d) .+$
- Eine Action angelegt unter/etc/fail2ban/filter.d/docer-action.conf mit:
[Definition]

actionstart = iptables -N f2b-npm-docker
iptables -A f2b-npm-docker -j RETURN
iptables -I FORWARD -p tcp -m multiport --dports 0:65535 -j f2b-npm-docker

actionstop = iptables -D FORWARD -p tcp -m multiport --dports 0:65535 -j f2b-npm-docker
iptables -F f2b-npm-docker
iptables -X f2b-npm-docker

actioncheck = iptables -n -L FORWARD | grep -q 'f2b-npm-docker[ \t]'

actionban = iptables -I f2b-npm-docker -s <ip> -j DROP

actionunban = iptables -D f2b-npm-docker -s <ip> -j DROP
- Eine Konfiguration unter - Eine Action angelegt unter/etc/fail2ban/filter.d/npm.local mit:
[npm]
enabled = true
chain=INPUT
maxretry = 3
bantime = 48h
findtime = 60m
logpath = /data/compose/2/log/default-host_*.log
/data/compose/2/log/proxy-host-*.log
action = docker-action

Jedoch möchte fail2ban scheinbar nciht starten:
× fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Wed 2024-07-31 08:39:31 CEST; 11min ago
Duration: 203ms
Docs: man:fail2ban(1)
Process: 486 ExecStart=/usr/bin/fail2ban-server -xf start (code=exited, status=255/EXCEPTION)
Main PID: 486 (code=exited, status=255/EXCEPTION)
CPU: 100ms

Jul 31 08:39:31 docker systemd[1]: Started fail2ban.service - Fail2Ban Service.
Jul 31 08:39:31 docker fail2ban-server[486]: 2024-07-31 08:39:31,771 fail2ban.configreader [486]: WARNING 'allowipv6' not defined in 'Definition'. Using default one: 'auto'
Jul 31 08:39:31 docker fail2ban-server[486]: 2024-07-31 08:39:31,780 fail2ban [486]: ERROR Failed during configuration: Error in action definition 'docker-action': Source contains parsing errors: '/etc/fail2ban/action.d/docker-action.conf'
Jul 31 08:39:31 docker fail2ban-server[486]: [line 2]: ' f2b-npm-docker -j RETURN iptables -I FORWARD -p tcp \n'
Jul 31 08:39:31 docker fail2ban-server[486]: 2024-07-31 08:39:31,786 fail2ban [486]: ERROR Async configuration of server failed
Jul 31 08:39:31 docker systemd[1]: fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION
Jul 31 08:39:31 docker systemd[1]: fail2ban.service: Failed with result 'exit-code'.
docker@docker:~$


Hat jemand eine Idee?
System ist Debian 12.
 
Zuletzt bearbeitet:
Docker ist auf meinem Debian installiert.
In Docker lauft der NPM.
Fail2ban auch direkt auf Debian, die Logs sind für das System gemounted.
 
  • Gefällt mir
Reaktionen: H3llF15H
Naja, so wie das Ding selbst sagt: Irgendein Typo in der docker-action
Wieso hast du die überhaupt in filter.d und nicht in action.d?
 
Ich würde als erstes mal nach dem Parsing-Fehler schauen.
 
Das habe ich auch gelesen, finde den Fehler aber nicht, da das für mich böhmische Dörfer sind.
Warum filter.d und nicht action.d?

Habe es nach der (nicht funktionierenden Anleitung gemacht).
Da war es der Weg. Hab mich was eingelesen, aber tue mcih was schwer.

Hatte ersi diese Anleitung:
https://homelabtopia.com/nginx-proxy-manager-fail2ban/

Fand die andere aber sympathischer, da kein ufw benötigt. Iptables laufen ja schon.
 
Zuletzt bearbeitet:
Ich weiß nicht, wie fail2ban auf falsche Zeilenumbrüche reagiert, aber wenn du per copy/paste was eingefügt hast, mal schauen, ob sich in einer der Configs CR LF (Windows) statt LF (Linux) genutzt wird.
Wie/ob man das sieht, kommt auf den genutzten Editor an.
 
Was genau erwartest du von fail2ban auf deinem npm?
Willst du den Port81 Login absichern (der überhaupt nicht zugänglich sein sollte) oder nutzt du in den Proxy Hosts eine zusätzliche Anmeldung?

Läuft fail2ban denn ohne deine npm config, also z.B. nur für SSH?
 
  • Gefällt mir
Reaktionen: sikarr
ipod86 schrieb:
ich versuche vergeblich fail2ban ans laufen zu bekommen.
Allerdings ohne Erfolg.
irgendetwas stimmt da im satzbau und darauf im folgenden kontext nicht.

(streiche das vergeblich und es macht mehr sinn)
 
h00bi schrieb:
Was genau erwartest du von fail2ban auf deinem npm?
Willst du den Port81 Login absichern (der überhaupt nicht zugänglich sein sollte) oder nutzt du in den Proxy Hosts eine zusätzliche Anmeldung?

Läuft fail2ban denn ohne deine npm config, also z.B. nur für SSH?
81 ist von außen ja nicht zu erreichen.
Es geht um 80 und 443
h00bi schrieb:
Port 81 ist per default von außen nicht zugänglich, da muss man nichts umsetzen.
Keines meiner Systeme ist wichtig genug, um brute force von innen abzudecken.
Ob wichtig oder unwichtig Wissen außenstehende ja nicht.

Ich möchte alles sperren, was mir zu oft auf meine Dienste zugreift (die ohne PW) und die sperren, die bei den gesperrten Diensten das pw zu oft falsch eingeben.
 
Du kannst Port 80 nicht sinnvoll mit fail2ban absichern.
Zu 99% brauchst du Port 80 nur für die Erneuerung der Zertifikate.
Was soll fail2ban da machen?
Wenn du Port 80 tatsächlich für irgendein http Hosting benutzt, dreh das auf https. Dafür hast du ja den npm.
 
Jepp, npm dreht alles auf https mit Zertifikat.
Aber wenn jemand nur xxx.yyy.de in den Browser tippt, wird doch zuerst die 80 angefragt und npm leitet auf 443 weiter oder?
 
Zurück
Oben