The more I am selfhosting the more ports I do open to my reverse proxy.
I also have a VPN (wireguard) but there are also 3 family members that want to access some services.
Open ports are much easier to handle for them.
How many users do you have and how many ports are open?
My case: 4 users (family)/ 8 reversed proxy ports
How many users and open ports have you?
You’re comparing apples and oranges, reverse proxy and VPN serve two different purposes.
Though in this context they’re both being used to provide safe access to local hardware from the internet.
They probably want the pros vs cons of this specific situation
Anything that is exposed is done through nginx proxy manager and 2FA is enforced on those apps either through the app or through Authelia.
Some of the exposed apps are shared with friends and family so easier to expose securely than mess with VPN for them.
Anything else is only accessible via VPN on my router.
I need to look at tailscale.
I never open any ports to the open Internet other than the two my friend client uses.
For remote access I use a P2P VPN called ZeroTier leaving it always running on the Pi, and switching it on for the remote device when needed. It’s free for up to like 50 users and is very powerful, but dead simple.
free for 25 users
Never open ports to the internet unless you want everybody to see it. Always use VPN to access your selfhosted stuff. If you’ve got a lot of VPN connections to set up, try generating a QR code for the connection. Makes it a bit faster to setup the client.
Wireguard, as only a handful of people need access to the services, I manage it manually - and not with Tailscale or something similar.
With that my server looks nothing like a server from the outside, as I’m exposing nothing - Wireguard doesn’t even show up in a port scan
I like this approach, but I’m currently sitting in a foreign hotel who’s wifi seems to block WG. Annoying. Keep a TLS-protected reverse proxy for things you might need through obscure networks.
I have two nginx ingress running on my cluster. One of private one public. Public one is what’s exposed on 80 and 443 to the net.
The private is only available via VPN or lan. The public is for services I want internet exposed.
My family have a VPN network set up to my lan on their router and have access to most services but the public stuff is for the internet friends
I’ve got a reverse proxy for stuff I want to be able to hit from the outside. It’s behind an SSO portal with 2fa (hardware token). Then for everything else I VPN in.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System HTTP Hypertext Transfer Protocol, the Web IP Internet Protocol NAS Network-Attached Storage SSH Secure Shell for remote terminal access SSL Secure Sockets Layer, for transparent encryption SSO Single Sign-On TLS Transport Layer Security, supersedes SSL UDP User Datagram Protocol, for real-time communications VPN Virtual Private Network VPS Virtual Private Server (opposed to shared hosting) nginx Popular HTTP server
[Thread #60 for this sub, first seen 18th Aug 2023, 07:55] [FAQ] [Full list] [Contact] [Source code]
May I ask what do you guys have exposed to the internet?
I personally just have a wireguard VPN (single UDP port open) and everything is accessible through an internal reverse proxy. I just never felt the need to expose nothing ant least not web related.
Just Navidrome for music streaming.
One thing I need to publicly expose is my own instance of Mealie. It’s a recipe manager that supports multiple users. I share it with family and friends, but also with more distant acquaintances. I don’t want to have to provide and manage access to my network for each and every one of them.
What made you pick Mealie over other stuff like Nextcloud Cookbook or Grocy or whatnot?
I’ve never heard of NextCloud Cookbook before. Looking at its Github page, it says it’s “mostly for testers” and is unstable, so no point in even considering it for regular use at this point in time. Besides, I’m assuming you’d need to have your own instance of Nextcloud up and running to use it; I don’t use Nextcloud.
As for Grocy and other more mature alternatives (Tandoori also comes to mind), I think I initially went with Mealie because it had the most pleasant UI out of all of them. I liked it and found that it satisfied all of my requirements, so I just kept using it.
a lot of stuff:
- owncloud
- paperless
- immich
- jellyfin
- jellyseerr
- traefik
than i have stuff only accessible from local, like the *arr stack.
i’m not using cloudflare or anything, should I?
the only exposed ports i have are http / https and a random port for ssh.
i also don’t use any sso… maybe i should set one up.
Tailscale with reverse proxy, nothing publicly exposed
Do you even need a reverse proxy if you’re using Tailscale? What advantage does it give you over setting up your DHCP correctly such that you can access your services by hostname?
Because I have my own custom domain internally and don’t use tailscale while on I’m on my network physically. But I get the best of both worlds, however I do have Tailscale setup with DNsMasq to set to my domain name anyway instead of using the Tailscale domain
Depending on the services you provide, the usual standard ports. So if you run http/https services, port 80 and 443 respectively.
You seem to answer your own question.
Reverse proxy and allowing connection only to IP from my country.
VPN because I don’t know enough about all the random arrr services to expose them trustworthily.
A reverse proxy isn’t a substitute for a VPN for access outside your network. And it isn’t any less secure; you only need to open 1 port however all of your services will be accessible via that single port which is arguably less secure.
Everything that is managed by that RP, yes. One should obviously be careful when selecting what to expose.
Caddy Reverse Proxy with Basic Auth for services which are critical like my 3d printer. Without auth for other services like my website or jellyfin and such. I use docker for everything so that’s another layer of safety for me.
I have port 443 open and use subdomains for most stuff. Some other ports for non-HTTP services but I don’t have any right now.