Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

fail2ban mit kompliziertem Setup - Wo ansetzen, was blockieren

Begonnen von drhirn, 15 Juni 2024, 10:52:15

Vorheriges Thema - Nächstes Thema

drhirn

Ich hab ein etwas sehr kompliziertes Setup für meinen Jellyfin-Server und versuche verzweifelt, fail2ban einzurichten. Die bisher geschafften fail2ban-Regeln greifen und aktivieren die konfigurierten Bans. Aber letztere greifen nicht. Weil ich keine Ahnung hab, wie und wo ich ansetzen bzw. was blockieren soll. Deshalb wende ich mich jetzt voller Hoffnung an euch Linux-Gurus.

Das Setup:
Jellyfin läuft via Docker auf einem Host bei mir zuhause. Port 8096 wird vom Container freigegeben.
Von dort geht ein Tunnel via Rathole auf einen Hetzner-VPS
Auf dem Hetzner-VPS läuft via Podman ein Traefik-Container, auf den die Domain jellyfin.example.com zeigt. Der Traefik routet externe Aufrufe dann zu Rathole am VPS.

Der Weg ist also Endgerät -> Traefik Podman Container -> Rathole VPS -> Rathole Docker Host -> Jellyfin Docker Container

Die IP des Endgerätes wird mittels X-Forwarded-For-Header bis zu Jellyfin durchgeroutet, ist also an allen Zwischenstationen verfügbar.

Am VPS hab ich derzeit für fail2ban eine ufw/iptables-Regel. Die wird aktiviert:
Chain ufw-user-input (1 references)
target     prot opt source               destination
REJECT     all  --  192-0-2-1.cable.dynamic.example.com  anywhere             reject-with icmp-port-unreachable
Bzw. UFW:
To                         Action      From
--                         ------      ----
Anywhere                   REJECT      192.0.2.1             # by Fail2Ban after 3 attempts against traefik

Am Docker Host zuhause gibt's ein Jellyfin-Jail, welches ebenfalls iptables bemüht:
Chain DOCKER-USER (1 references)
target     prot opt source               destination
f2b-jellyfin  tcp  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain f2b-jellyfin (1 references)
target     prot opt source               destination
REJECT     all  --  192-0-2-1.cable.dynamic.example.com  anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere

Trotzdem kann ich nach wie vor noch auf Jellyfin zugreifen.

Das am Docker-Host könnte ich mir mit der Problematik Docker/iptables erklären. Und dass ich ja eigentlich durch den komplizierten Weg mit einer anderen IP daher komme.
Aber warum die UFW-Regel am VPS nicht greift, ist mir nicht klar.

Wie könnte ich das richtig machen?

Danke!
Stefan