Hi folks. So, I know due to a myriad of reasons I should not allow Jellyfin access to the open internet. However, in trying to switch family over from Plex, I’ll need something that “just works”.

How are people solving this problem? I’ve thought about a few solutions, like whitelisting ips (which can change of course), or setting up VPN or tail scale (but then that is more work than they will be willing to do on their side). I can even add some level of auth into my reverse proxy, but that would break Jellyfin clients.

Wondering what others have thought about for this problem

  • Getting6409@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 minutes ago

    I expose jellyfin to the internet, and some precautions I have taken that I don’t see mentioned in these answers are: 1) run jellyfin as a rootless container, and 2) use read-only storage where ever possible. If you have other tools managing things like subtitles and metadata files before jellyfin there’s no reason for jellyfin to have read access to the media it hosts. While this doesn’t directly address the documented security flaws with jellyfin, you may as well treat it like a diseased plague rat if you’re going to expose it. To me, that means worst case scenario is the thing is breached and the only thing for an attacker to do is exfiltrate things limited to jellyfin.

  • Possibly linux@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    5 hours ago

    Netbird/Tailscale

    You also could use Wireguard as it is a p2p protocol by default.

    If you have IPv6 access you could put in on a IPv6 address

  • Shimitar@downonthestreet.eu
    link
    fedilink
    English
    arrow-up
    30
    ·
    16 hours ago

    You can share jellyfin on the net. I do.

    The issues shared wide and large are mostly moot points, where the attacker needs to already have access to the jellyfin itself to have any surface.

    Its FUD and I am convinced spread by Plex people in an effort to cover up their fuckup and enshittyfication.

    • Possibly linux@lemmy.zip
      link
      fedilink
      English
      arrow-up
      5
      ·
      6 hours ago

      That’s a bad idea for so many reasons

      The internet is full of bots pounding at your machines to get in. It is only a matter of time until the breach Jellyfin. At the very least you want a reverse proxy with proper security.

      I don’t see why you would put something like Jellyfin in the internet. Use a VPN solution.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 hours ago

      I love Jellyfin and use it. I also think the security issues are very serious and it’s irresponsible to not fix them. At the very least they can make a new API and give users the option to enable or disable the insecure one until clients get updated. But they don’t.

      I’ve decided to remove public access to my Jellyfin server until it’s resolved, though it’s still accessible behind my VPN.

    • yeehaw@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 hours ago

      I also think Plex probably has open vulns and it’s also a more known target. The nail that sticks out furthest gets nailed down.

    • MaggiWuerze@feddit.org
      link
      fedilink
      English
      arrow-up
      12
      ·
      11 hours ago

      Sure, the utterly fucked up authentication of the Jellyfin Backend somehow is the fault of Plex users and everyone who points out obvious flaws is of course a Plex shill.

      Maybe you should take a look at what you are defending here. The fact that the devs openly refuse to fix this to maintain backwards compatibility, thus endangering their users speaks a lot about the quality of the project

  • daniskarma@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    31
    ·
    edit-2
    17 hours ago

    You can share jellyfin over the net.

    The security issues that tend to be quoted are less important than some people claim them to be.

    For instance the unauthorized streaming bug, often quoted as one of the worst jellyfin security issues, in order to work the attacker need to know the exact id of the item they want to stream, which is virtually impossible unless they are or have been an authorized client at some point.

    Just set it up with the typical bruteforce protections and you’ll be fine.

    • Possibly linux@lemmy.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 hours ago

      Fine is a relative term

      You probably are fine but the company who is getting attacked by your compromised machine isn’t

    • MaggiWuerze@feddit.org
      link
      fedilink
      English
      arrow-up
      7
      ·
      11 hours ago

      It’s not impossible, Far from it. The ids are not random uuids but hashes derived from the path. Since most people have a similar setup to organize their media, this gets trivial very fast

      • Synestine@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        11 hours ago

        If you’re worried about it, make sure to not use a default path. Then legit clients are fine but these theoretical attackers get stymied.

  • Appoxo@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    11 hours ago

    I share Jellyfin.

    Behind a Reverse Proxy with 2FA that breaks client support.
    So only web browser :)

  • majestictechie@lemmy.fosshost.com
    link
    fedilink
    English
    arrow-up
    8
    ·
    15 hours ago

    I do. I run it behind a caddy service so it’s secured with an SSL. The port is running on a high non standard one. I do keep checking access logs but haven’t had a peep apart from the 1 person I shared it with

    • yeehaw@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 hours ago

      That port changing stuff is way outdated and hasn’t been effective for a long time.

  • Chris@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    ·
    17 hours ago

    When I did this I set up a VPN on my network and forced anyone that wanted to use it to get on my network.

      • sugar_in_your_tea@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        7 hours ago

        I have my smart TV access it over my local network. If you’re using a friend’s instance, you could set up a WiFi SSID that tunnels everything over your VPN.

        If that’s onerous, you can make it publicly accessible, but only for whitelisted client IPs.

        • Blue_Morpho@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 hours ago

          Yeah I want to completely switch off of Plex but neither is a good solution for my non tech family members. Mother in law is in a retirement center where they use wifi provided for the condos so I can’t access her router. And I would expect her ip to occasionally change on reboots etc. I might try IP ranges or narrow geo blocking.

          • sugar_in_your_tea@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            5 hours ago

            Yeah, an IP range totally works. Figure out the subnet info and add that to a whitelist. It’s a pain, but it should keep the script kiddies at bay.

      • Chris@lemmy.world
        link
        fedilink
        English
        arrow-up
        9
        ·
        16 hours ago

        Probably doesn’t. Might need to use the router to get the whole network on th vpn

  • Xanza@lemm.ee
    link
    fedilink
    English
    arrow-up
    6
    ·
    16 hours ago

    There are two routes. VPN and VPS.

    VPN; setup wireguard and offer services to your wireguard network.

    VPS; setup a VPS to act as a reverse proxy for your jellyfin instance.

    Each have their own perks. Each have their own caveats.

  • fishynoob@infosec.pub
    link
    fedilink
    English
    arrow-up
    5
    ·
    16 hours ago

    I don’t do this, but I would set up oAuth like Authelia or something behind a reverse-proxy and authenticate Jellyfin clients through that.

  • TheButtonJustSpins@infosec.pub
    link
    fedilink
    English
    arrow-up
    3
    ·
    15 hours ago

    I’ve been making people use VPN, but that’s been a huge barrier to entry. I’m in the process of switching to IP allow list in traefik.

  • RonnyZittledong@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    16 hours ago

    You could probably set up a cloudflare tunnel. I forget what they call it. I think technically sending video through it is against their TOS but if just a few friends and family are using it I doubt you will hit their naughty list.

    • Censed@lemmy.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      16 hours ago

      I’ve heard mixed responses about how sensitive they are about routing video through their service. I’ve heard some people are just fine running jellyfin/Plex while others get shut down from routing a security system through it.

      • Clusterfck@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        16 hours ago

        I’ve used it about 2 years now. I have both Jellyfin and even had Invidious for a while. I don’t even know it was against any terms until right now.

  • skankhunt42@lemmy.ca
    link
    fedilink
    English
    arrow-up
    5
    ·
    17 hours ago

    Hang on, why not open the port to jellyfin to the internet?

    I have a lifetime Plex pass so its not urgent but I have a containers running emby and jellyfin to check them out. When I decide which one I planned to open it up and give people logins.

    • Selfhoster1728@infosec.pub
      link
      fedilink
      English
      arrow-up
      12
      ·
      edit-2
      17 hours ago

      See this issue on their github repo: here

      Basically from what I understand there’s loads of unauthenticated api calls, so someone can very easily exploit that.

      If they just supported mTLS in their clients it wouldn’t be an issue but oh well :(

    • doodledup@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 hours ago

      I have it behind a proxy and IPS. I force my users to have strong passwords. I don’t see why this would be a problem.

      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 hours ago

        Its a major problem

        It is only a matter of time before it gets compromised. Chances are you will have no idea it happened and you home internet will join the bot net of some nation state. The Jellyfin devs take security seriously but there will always be flaws.