Hi,
I’ve been trying to set up fail2ban for jellyfin both running in docker from compose and I’m doing something wrong.
Can someone tell me what path in the docker compose file you use for jellyfin logs and what path you use in the jail.d and the filter in filter.d?
Thanks
PS. Sorry for low detail, but I’m on phone and don’t have my current conf readily available. Will provide if necessary.
If you plan to use fail2ban, I assume you want to make your Jellyfin accessible from the public internet. Please be aware, that large parts of the Jellyfin Backend are not properly authenticated and allow unauthorized, potential mapping of your library and even unauthorized streams.
The solution here is to use a wireguard (or similar technology) server and use it on all your devices. People already use VPNs for everything, so adding this layer isn’t that much of a hassle !
That depends entirely on your target audience as well as the devices you want to use it on. Smart TVs don’t really support VPNs and my parents would not know how to even activate that let alone set it up on their end. I have a lot of non tech savvy users, so Plex is just way more convenient and accessible.
Wow, I tested out jellyfin every 6 months for the last few years to see if it was ready to replace plex yet, and I had no idea about such huge security issues. There should really be a big ass warning about making jellyfin publicly accessible in the app and in setup guides…
The main issue for me is the way they react to it. Not only is there no warning about this, but they also refuse to fix it because it would break client support and they prefer backwards compatibility over security
Thanks for sharing; I was unaware. Just closed off that network hole.
Thank you. I did see this list before. My jellyfin instance is not exposed to the net atm., but I’m thinking of exposing it in intervals and would like to have fail2ban working when/if I do.
I’m just not sure if fail2ban can mitigate the unaouthorized api access or other issues
Would putting jellyfin behind authentik or googleSSO protect me? Trying to figure out how to replace plex for my extended family since theyre charging for external connections now
Just be aware that putting Jellyfin behind a Reverse Proxy that redirects to external auth services, breaks client support that is not in a browser.
Thus you either white-/blacklist specific server access paths or set up accounts that may relay the loging credentials.
Maybe something like LDAP may work but I can’t say how well it works as I havent used that.It works as advertised.
Why? Fail2ban is best placed on the host closest to a network entrypoint. Unless you’re intentionally avoiding a bridged network, this isn’t going to do much for your security unless the containers are directly addressed by an attached interface and an open service.
I won’t go into a whole diatribe, but you should be running containers as single-process instances of applications. You only cause issues by cramming other process to run inside a container.
What are you using it to block, exactly?
Oh I can see how my title could be misunderstood - what I meant is that both jellyfin and fail2ban are running in (separate) docker containers. Not both services crammed.into one.
That’s worse.
Fail2ban isn’t an application like jellyfin, it’s a security framework that should be built in to the gateway router.
But what are you trying to use fail2ban for?
To prevent brute force login attempts into my jellyfin service.
I set up fail2ban together with Caddy which runs as a reverse proxy in front of Jellyfin. I’ve written down my setup and maybe this will help you https://codeberg.org/skjalli/jellyfin-vps-setup
Are you using nginx proxy manager as reverse proxy? SWAG has one built in. I’d use that instead.