How do you all handle security and monitoring for your publicly accessible services?
-
Yah, it's just a hobby for you, but it's also a hobby for script kiddies to use Shodan to find people with out of date web interfaces and pop them. I tell you right now, the Immich team would be the first to say not to put their application publicly accessible.
Just don't get into this practice, it ends in tears and is way more maintenance to stay protected than just setting up tailscale and using that.
-
If somebody needs to have services accessible by someone else besides him, that service can’t be behind a VPN
Again, this is the reason VPS' exist. If that person needs access, then setup Wireguard...
It's like saying you don't need a front gate with an access code because then you would have to give out your own access code. But I mean, the lock has the ability to setup more access codes. And you're saying the only viable option is the leave the gate open and hire a guard to manage access. It's just... Weird and wrong.
-
Why not swap from nginx-proxy-manager to Caddy2, which can handle everything? SSL and reverse_proxy?
-
Again, this is the reason VPS’ exist.
What? What's the difference between a VPS and your home server?
You may say that's a good practice to separate things, so maybe have a a VM with public facing services and another with more private stuff reachable only with a VPN. But for something like Nextcloud, it needs to be public (if you're not the only one using it), but it contains personal stuff and then comes the OP request! -
Yeah, I'm not gonna tell the 50 users of my plex server to set up wireguard on their devices so they can request movies and TV series on my overseer, when I can instead just use NPM to make it publically accessible with a password prompt
-
Your use case, and OPs, are completely different scenarios. I can't tell if you're being purposefully disingenuous or just flippantly stupid.
-
You may say that’s a good practice to separate things
You're missing the point. VPS isn't about separating anything... I'm not even sure what you mean by that. VPS is the accepted practice here. Unquestionably. You create private services, and for security you only expose them to the least amount of people possible. You authenticate via VPS connections. You only have to maintain a single database of users to access any number of services, even tens of thousands.
OP is specifically talking about hosting local content that they want to protect. VPS is the solution here.
-
This is effectively the same damn thing with a single exception. If your VPN is down, there's no access to your server. If for whatever reason your firewall is down, there's unrestricted access to your server...
VPN is unquestionably the correct choice 100 times out of 100.
-
There is. It's called VPN Split Tunneling.
If you want to proxify your connection between you and a service, you enable the split. If you don't care, or want to not use the VPN, then disable it for that application. So it's effectively "proxify all connections to this app," which is the same as your use case.
-
If for whatever reason your firewall is down, there’s unrestricted access to your server…
I don't know what kind of firewall you use, but if my firewall is down there is NO traffic at all passing through!
And by the way, since I've replied to someone that don't want to use VPN because he doesn't want to give access to the whole network, I meant that he could use a VPN AND iptables to restrict the guest access to single services instead of the whole network.
-
Well...if you edit your post after someone has replied to it at least specify what's you've edited and don't pretend that the answer that somebody else has already given you wasn't about your non edited post!
If you (my mistake) wrote VPS instead of VPN, you can't pretend that I've answered about VPN!
If you can convince your family member and your friends to use a VPN to use your service, that's good for you, and I mean it!
But saying that it's quite impossible to do that, I think that I'm speaking for 99% of the self hoster (is this correct in English? Bah, you got me!) -
I don’t know what kind of firewall you use, but if my firewall is down there is NO traffic at all passing through!
Only a hardware firewall would do this. If it's software, like implied in your post, no traffic is filtered and all connections are accepted.
VPN is the least amount of work for the most secure setup. There's nothing to even argue, its superior in every way.
-
The entire point of selfhost is to host private services not available to the public. By literal definition, that's allowing only local traffic to connect to your services. It's infinitely more secure. A VPN allows you to extend those services over the clearnet to authorized devices via virtualized networks. You don't have to worry about messing with inbound/outbound ports, or worrying about software failure or misconfigurations accidentally exposing you to the clearnet. You don't have to worry about DDoS, or abuse. Being attacked? Bring down your VPN and that completely shuts down your issue. Your network is completely unreachable by anyone but a local host.
There's simply no room for an argument. VPN is objectively better in all possible situations.
-
Only a hardware firewall would do this. If it’s software, like implied in your post, no traffic is filtered and all connections are accepted.
Talking abut netfilter, since it manages also the forwardning, it for some strange reason it should crash, NO IP traffic is flowing
VPN is the least amount of work for the most secure setup. There’s nothing to even argue, its superior in every way.
If there's nothing to even argue, then I say goodby to you since I'm here to discuss.
All the best! -
The entire point of selfhost is to host private services not available to the public
Probably your entire point, a lot of self hosters self host services that family members and friends can reach most of the time without the need of a VPN. This very community is full of examples.It’s infinitely more secure
I'm with you about that.
There’s simply no room for an argument.
As stated in the other post, I'm sorry about that, I'm here to discuss and learn, if you don't have room for an argument, our discussion ends here.
VPN is objectively better in all possible situations.
Exactly! in all possible situation!!!
-
I set the VPN tunnel from the VPS to deny everything to the internal network by default, then put the services that need to be accessed on the allow list in the firewall. So the VPN endpoint from the VPS can only hit the very specific IPs/ports/protocols that were explicitly allowed. There is still the possibility of a compromise chain of VPS->service->container/VM->hypervisor->internal network access, but I feel comfortable with those layers.
You could also setup an IDS such as Snort to pick up on that exploit traffic between the services and internal VPN endpoint if extra security is necessary on top of fail2ban and log alerts on the VPS.
-
I didn't know that was the entire point of self hosting. Some people want to self host things for the public, like a website or game server.
There is a program called "yunohost" to simplify this process.
Maybe a VPS is better for website hosting but some people want to self host.