Skip Navigation

Are you exposing any ports on your home server?

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?

121 comments
  • I've had 22, 80, & 443 open for literal decades. Key auth only on ssh. 80 & 443 rev proxy to inside web services I want to expose only. Also host game servers as needed.

    Keep your stuff up to date and follow best practices for securing it. Use things like crowdstrike. If you can segment your network, go ahead.

    Unless you have a target on your head your main concern is going to be scripts looking for vulnerabilities.

  • Exposed is the right term. Other than my Wireguard VPN port, everything I have exposed is HTTPS behind Authelia MFA and SWAG.

    I'm tempted to switch Wireguard for Tailscale, as the level of logging with WG has always bothered me. Maybe one day.

  • I have https open along with a non-standard port for ssh. Just for fun, I have the standard ssh port open, but redirecting to a Raspberry Pi running a honeypot. It's fun to mess with foreign bots trying to access my network.

    • Do you see much activity there?

      I know that they say that security through obscurity doesn’t work, but to me (a novice) it sounds like a good idea to route the default port to a dummy server.

      • I do see a decent amount of activity on it. Full disclaimer, I am not a security expert. I know just enough to be dangerous. But, I see at least a few connection attempts from different IPs about every day. The top 3 countries of origin are China, Russia, and Brazil (based on the reverse DNS, but it's possible some are using VPNs to hide their origin). My impression is they're all bots that just go through a list of IP addresses, attempting to connect to the standard ssh port, then guessing the username and password. What I've found is they usually go through a list of likely ssh ports until one of them connects. Having the default port open to only the honeypot means they usually establish the connection, then leave it at that, so my real ssh port never gets hit. I kinda think of it like scambaiting, where I'm just wasting time they might otherwise spend trying to break into someone else's real ssh server.

  • For services that need to be public facing (Mastodon, Lemmy, Gitea...) I'm renting a VPS. Services that are only for personal use run on my home server and are only accessible through Wireguard, with the VPS acting as a "bridge" whenever I'm outside of my home network.

  • I'll put a recommendation out for if you're going to open ports: use abnormal ports. Someone is likely to try to hit your port 22 for ssh, but not your port 49231.

    Edit: It's definitely some security by obscurity. Still use a strong password or keys.

  • Openvpn to connect to the network, 80 and 443 for static websites, that's it.

    Email gets delivered by a VPS via a different port, ssh acces via vps as well. No initial connections from an ip not from the my country as well.

  • I run a few services that require ports to be open. Everything that can go behind a reverse proxy does so. But there's some that can't and that's OK.

  • I use Remote Desktop, BitTorrent, and play games, so I need some things open for that. I used to be super paranoid about hackers and viruses and shit like that, but it's not like those things are looking for regular, everyday users and even if they did get in my system, I don't keep anything important on my computer so I can just wipe it all out and reinstall everything.

  • 80, 443 for HTTP/S, and 587 for a VPN service. Reason being that I travel frequently, and often have to connect through a bunch of different networks, Airport WiFi, mobile roaming, hotel WiFi, etc. and you never know the kinds of network restrictions they impose on their pipes.

    80 and 443 is least likely to be dropped, while 587 is a common SMTP port that could make it through most networks.

121 comments