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