66

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?

top 50 comments
sorted by: hot top controversial new old
[-] effingjoe@kbin.social 55 points 1 year ago* (last edited 1 year ago)

I think many of us are using reverse proxies, and opening port 443 (https) and maybe port 80 (http).

Port forwarding can be a recipe for disaster. I'd much rather make use of reverse proxying.

[-] Dirk@lemmy.ml 29 points 1 year ago

I forward 443 to my reverse proxy.

[-] roi 6 points 1 year ago

For lots of things I self host that I wanna expose, I’ll just open a random port like 6952 and then reverse proxy w/ nginx on my web server. Not sure how secure it is, but it works

[-] cestvrai@lemm.ee 9 points 1 year ago

Ports are probed and scanned constantly so a random port doesn’t make so much difference. I would use a strict firewall with the server IP whitelisted.

load more comments (5 replies)
[-] thomcat@powerg.love 4 points 1 year ago

@housepanther @effingjoe Unless you're running a router/firewall on the edge that can act as a reverse proxy, you kind of need to port forward to a reverse proxy if you're behind NAT.

load more comments (2 replies)
[-] SeeJayEmm@lemmy.procrastinati.org 24 points 1 year ago

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.

[-] spez_@lemmy.world 13 points 1 year ago

I am not exposing any ports online. I do not trust myself

Instead, I am using Tailscale (Wireguard)

load more comments (1 replies)
[-] droidpenguin@lemmy.world 12 points 1 year ago

Ya my paranoia only allows me to expose Wireguard to access everything. I sleep better at night knowing that's the only thing exposed. Too many instances of major companies getting hacked who have dedicated security teams to manage that. I am one person, learning to manage my own stuff in my free time.

[-] NotGeorge@lemmy.world 10 points 1 year ago

Port 443 through Traefik and a port for Plex.

load more comments (1 replies)
[-] Smk@lemmy.ca 9 points 1 year ago

I open 443 and 80 on my router and forward it to a reverse proxy.

I have a couple of service that are exposed but most of them make sense only when I'm home so I whitelist private IP address on my reverse proxy.

If you do.your basic security such as updating your servers and services and not having dumb password, you shouldn't be afraid. Think about it, all of the services that you use is exposed on the internet. I did work for big company and they don't do much more than what you would probably do, except maybe having some automated monitoring that flag weird stuff. But hey, aside from bots, I don't think Russian hackers are interested in your stuff. Stay low profile with your exposed things and it's gonna be alright. Make sure you backup.

[-] huojtkeg@lemmy.world 9 points 1 year ago

HTTPS and VPN (Wireguard) ports

[-] Manifish_Destiny@lemmy.world 8 points 1 year ago

https, wireguard and mumble.

Just set up shodan monitoring, use burpsuite or owasp zap, and check your pcap files for accidental plaintext.

Also ssllabs has a nice website checker.

And get a NGFW

[-] ZenArtist@kbin.social 4 points 1 year ago

Everything except https and wireguard went above my head. Do you have some sort of guide/writeup that you can point to for integrating all this?

[-] Awwab@kbin.social 3 points 1 year ago

Shodan is a internet scanning website, it can monitor your IP for new ports open and some basic vulnerability stuff.

Burpsuite is a tool to capture network traffic, they are saying they use it to confirm all their services use end to end encryption for communication.

NGFW is next gen firewall and it's just a firewall that's able to do more than your basic in/out rules.

[-] pornhubfan@sh.itjust.works 4 points 1 year ago

If you're gonna post that here, at least flag the post as NGFW.

[-] MaxMouseOCX@lemmy.world 8 points 1 year ago

Run your own vpn, and only allow access to your services remotely if they are coming through that vpn.

Now you've shifted some of the security over to how secure your vpn server's authentication is.

[-] notannpc@lemmy.world 7 points 1 year ago* (last edited 1 year ago)

I’ve got a few layers of security for my homelab setup that make me feel pretty comfortable against random attacks.

Cloudflare is used to manage my domains and act as an external proxy to obscure my IP address, I’ve only forwarded ports 80 and 443 to Traefik my containerized reverse proxy, Authelia to add 2FA to services that I feel should have extra protection and my homelab nodes are on a separate vlan that is configured to drop all attempts to initiate communication outside of that vlan. I also use the ubiquity intrusion detection and prevention features on my firewall to attempt to stop any know malicious activity.

A majority of these configurations are overkill for a homelab, but were fun to implement. If you use a reverse proxy and keep your software up to date you will likely be fine unless you are specifically targeted by skilled hackers. Any random scans, or shotgun style attacks tend to target unpatched vulnerabilities.

[-] YonatanAvhar@programming.dev 6 points 1 year ago

Run a WireGuard VPN on your server and only forward its port (only UDP is needed) to your server.

No, all of services are reverse-proxied through a WireGuard tunnel connected to my cloud VPS.

[-] redballooon@lemm.ee 5 points 1 year ago

I did for a while, but it never felt right.

I’m also lazy a f, so I purchased a new router that comes with WireGuard VPN and that works well enough with our iPhones.

load more comments (1 replies)
[-] Bristlerock@kbin.social 5 points 1 year ago

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.

[-] a_fancy_kiwi@lemmy.world 4 points 1 year ago

I have ports open for Wireguard and Plex. So far, no issues that I’m aware of. Time will tell

[-] csm10495@sh.itjust.works 4 points 1 year ago* (last edited 1 year ago)

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.

[-] zib@kbin.social 4 points 1 year ago

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.

load more comments (2 replies)
[-] tbblake@lemmy.world 3 points 1 year ago

ssh to a few specific ip ranges, WireGuard to the world on a port I randomly picked

[-] iliketrains@kbin.social 3 points 1 year ago

I'm hosting an email server on a VPS that has fail2ban in it. A lot of ports are open but only wireguard and knockd are listening.

For remote server management, I would use wireguard for regular ssh access, but when I need to configure the wireguard I can just disable/reenable the wireguard-only ssh firewall rule using port knocking, there is also the option of using the serial console on the VPS web ui but it is slower.

Honestly, I'm not sure myself if my public facing services face a DoS attack. Well, there's always an option of using Cloudflare. With that being said though, I think in your case you should just use a free "VPN" like Tailscale or ZeroTier.

load more comments (3 replies)
[-] ulemmyagain@lemmy.world 3 points 1 year ago

I only have my (non default) ssh port exposed. I just use an ssh tunnel to access all my services. I don't know if this is a good idea or not, but it works for me.

[-] carzian@lemmy.ml 5 points 1 year ago

Security through obfuscation is never a good idea. Best practices for exposing ssh (iirc):

  • disable root login (or at least over ssh)
  • disable password login over ssh, use key pairs instead
  • use fail2ban to prevent brute forcing
  • install security updates frequently

All of those are pretty easy to do, and after that you're in a really good place.

I don't see a problem with ssh tunneling to access services, as long as the ssh server is secured correctly

load more comments (3 replies)
[-] pblsnchz@kbin.social 3 points 1 year ago

I used to, but then switched to Cloudflare tunnels and I sleep much better now.

[-] Chupachups@kbin.social 3 points 1 year ago

Check out tail scale. It's wire guard made easy. I expose http services to the public Internet, and have all my devices on the same network so I can access local services without exposing them to the public Internet.

[-] rikudou@lemmings.world 2 points 1 year ago

I have one for OpenVPN and that's it.

The only port I open is for wireguard. That way I can access all services on my LAN. Wireguard is also very secure and requires keys based authentication so is hard to brute. It also allows me to secure myself if I ever need to join WiFi or an untrusted network

[-] manitcor@lemmy.intai.tech 2 points 1 year ago* (last edited 1 year ago)

ipv6 and reverse proxied. yes.

[-] netburnr@lemmy.world 2 points 1 year ago
[-] rarkgrames@lemmy.world 2 points 1 year ago

Have a look in to Twingate, that should do exactly what you need.

load more comments
view more: next ›
this post was submitted on 20 Jul 2023
66 points (100.0% liked)

Selfhosted

40407 readers
176 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS