Hi all,
I’ve recently built a unRAID based NAS / Media acquisition (*Arr suite) machine that I’m really happy with, but I need help filling my knowledge gaps in networking and security.
I have all the relevant containers ran with docker. The only container behind a VPN is qbittorrent. The only containers which are accessible remotely are Jellyfin, and jellyseerr, which are accessed via cloud flare tunnel. I use strong UN/password combinations for access to those services, within the apps themselves. No ports are open through my router.
I’ve seen a lot of talk of reverse proxies and ssl certificates but don’t really understand their function, or if the cloud flare tunnel replaces those functions.
I’ve heard of tailscale as a solution but I’m not able to install anything on computers which I’ll be accessing the content.
Would appreciate advice or resources to learn from. Thanks!
How are you currently accessing those services?
If you're using Cloudflare tunnels already, then you're good. It already acts as a secure VPN between you and Cloudflare, and they handle the TLS certificates for you already.
TLS is what puts the S in HTTPS: it provides encryption and security of the connection. If you didn't use Cloudflare tunnels, you'd be port forwarding and serving the content directly from your public IP at home. To secure those connections, you'd need a reverse proxy. That's usually NGINX these days, and its purpose is to serve as a hub to reach all of your services. It would go Internet -> your router -> your server -> NGINX -> whatever container it needs to go to. As you can see, it's basically the entry point of your stuff.
To securely access it from the outside, you can either use a TLS certificate handled by NGINX (LetsEncrypt is easy to use and provides them for free), or you set up a VPN (that's what Tailscale would do) so that it doesn't matter if you access your server over plain text HTTP.
The key here is really just that you want your traffic to be encrypted in some way when it goes over the Internet, as otherwise, it doesn't matter that you have a strong password, everyone could see it anyway.
So, you usually want one of the 3 options: CF tunnels, self managed NGINX that you access directly over the Internet with a TLS certificate, or a VPN to your home network which automatically secures traffic between your device and your home network over the Internet.
Since you use CF tunnels, you used the first option and you're all good out of the box!