Are you exposing any ports on your home server?

ffhein@lemmy.world to Selfhosted@lemmy.world – 62 points –

Maybe I'm using the wrong terms, but what I'm wondering is if people are running services at home that they've made accessible from the internet. I.e. not open to the public, only so that they can use their own services from anywhere.

I'm paranoid a f when it comes to our home server, and even as a fairly experienced Linux user and programmer I don't trust myself when it comes to computer security. However, it would be very convenient if my wife and I could access our self-hosted services when away from home. Or perhaps even make an album public and share a link with a few friends (e.g. Nextcloud, but I haven't set that up yet).

Currently all our services run in docker containers, with separate user accounts, but I wouldn't trust that to be 100% safe. Is there some kind of idiot proof way to expose one of the services to the internet without risking the integrity of the whole server in case it somehow gets compromised?

How are the rest of you reasoning about security? Renting a VPS for anything exposed? Using some kind of VPN to connect your phones to home network? Would you trust something like Nextcloud over HTTPS to never get hacked?

133

You are viewing a single comment

Unless you need to share/provide services for a public, then you shouldn't be setting up reverse proxies or cloudflare tunnels in my opinion. All you need is WireGuard for you and the handful of users that might be using it.

I have two ports open for:

  1. WireGuard

  2. SSH Tunnel

Both of these services will only accept key based authentication.

WireGuard is the main way that my wife and me access the services away from home. When our phones disconnect from our home's SSID, Tasker automatically connects to the WireGuard tunnel so we never lose access to services.

The SSH tunnel is just a fallback in case I get behind a firewall that might be doing DPI and blocking VPN traffic. The SSH tunnel operates on 443 to hopefully appear to be SSL traffic and allowed through. I've used it a very limited amount of times to get out from strict corporate firewalls.

I was able to reduce that to just SSH by having my Wireguard host on a VPS and connecting out from home. Running SSH on 443 is a neat idea.

Running ssh on 443 doesn't do anything unfortunately. A proper port scan will still detect such a common protocol.

It's more about gaining access from inside a network that doesn't allow outbound on 22. For the web to work it would need 443 so connecting out on 443 might work

Sure, just don't mistake port switching for actual security.

I think you may be still missing the point because it was never implied that the port change is for security; the security is in disabling password authentication and only accepting key based authentication. The reason I put it on 443 is because it is a port that is usually allowed by firewalls and doesn't get as much attention. So if I am on a network that is blocking access for standard VPN or SSH ports then it might just be enough for me to bypass it. And it's traffic on a port that is going to see a lot of other encrypted traffic going across it, so it looks more natural then just popping some other random ports that could potentially raise an alarm.

I'm not missing any point. It should be clear to people who don't understand security that running a protocol on a different port doesn't mean shit for safety. "Because it doesn't get as much attention" wouldn't mean anything to any enterprise firewall the moment it's not an http header.

You are talking about security when that is not the purpose of it. So yes, you are off on a tangent and missing the point of it.

It should be clear to people who don’t understand security that running a protocol on a different port doesn’t mean shit for safety.

It is clear, it's clear to everyone, so why did you randomly interject irrelevant information? Because you incorrectly assumed someone thought it had to do with security... but no one here thought it had anything to do with security. Everyone understood it but for you, and you were corrected not only by me but the other person.

Because it doesn’t get as much attention” wouldn’t mean anything to any enterprise firewall the moment it’s not an http header.

As I've said, I've used it a few times to escape firewalls... it works. Will it always work? No, I never made the claim this will bypass all firewalls... the strictest of firewalls will block it, but there are other ways around those firewalls. E.g. proxytunnel, stunnel4

Absolutely. Though putting it on 443, which is regularly port scanned as well, is the opposite of security through obscurity.

Why not use Wireguard from your phones all the time, even at home? Just performance?

It would be extra overhead for no reason. Why keep it on when Tasker automates it?

I don't know about your particular use case, but I've found that some apps experience problems when the IP address of a resource they're using changes out from under them. Like either they experience temporary connectivity issues during the transition or even just stop being able to reach the resource until restarted. However if your setup is working for you, that's great!

Yeah, I haven't had any problems with it, what apps have been an issue for you?

The app that I use the most during that transitional period would be Ultrasonic which would be streaming music from the Airsonic service as I get in my vehicle and drive away or arrive back home. But even that flawlessly transitions without skipping a beat since it is set to cache songs.

The app that comes to mind as having problems with changing IPs is the Home Assistant app. It would simply lose connectivity when the IP changed and never do another DNS lookup to connect again.. I always had to restart it. The "solution" for me was not to change IPs and just leave Wireguard on. It's cool that Ultrasonic handles it though.

Interesting, yeah, maybe report it as an issue on github, I use a browser link to my dashboard for Home Assistant instead of the app so it hasn't happened to me. I almost installed it the other day to get presence detection but decided on another way.

I'm confused why the IP address of a resource is changing for you when you're moving in/out of the wireguard tunnel? In my setup the LAN IP addresses always stay the same whether I'm on the local network or accessing remotely, It's just the route to them that changes (over a different ethernet adapter). Perhaps that's what you meant, or there's some crazy configs out there I'm unaware of.

I fully admit I may be doing this wrong. But in order to connect to a server over Wireguard I'm connecting to it over its Wireguard IP address. (And if I'm not connecting to it over Wireguard I don't connect to it over a Wireguard IP address.) It's relevant to note that I'm not using Wireguard as a traditional VPN where all traffic bound for the internet is tunneled over Wireguard. Instead, I'm using it strictly for point-to-point tunneling from a client to one of my servers. In other words, my default routes don't go to Wireguard. Maybe that's the difference here?