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?

  • effingjoe
    link
    fedilink
    56
    edit-2
    11 months ago

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

    • HousePanther
      link
      fedilink
      -311 months ago

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

      • Aiden
        link
        fedilink
        511 months 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

        • @[email protected]
          link
          fedilink
          English
          911 months 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.

          • Dandroid
            link
            fedilink
            English
            2
            edit-2
            11 months ago

            Can they see what you are hosting on that port, though? Like say I want to open ssh to my server from the internet (I don’t do this and I wouldn’t unless it was temporary), but I don’t want to open it on port 22 because that’s too obvious. Are there bots that just try every protocol until they find one that your server responds to? Or is there a way to dig up information on what is being exposed behind that port?

          • @fuckwit_mcbumcrumble
            link
            English
            211 months ago

            Ever since I moved to a ridiculously high port I haven’t had any access attempts on my server. 6952 won’t do shit, but if you’re between 40000 and 65000 you probably won’t get anything.

              • @fuckwit_mcbumcrumble
                link
                English
                711 months ago

                If it’s your only form of security then it’s bad. But if it’s on combination with other measures then it’s a good thing.

                I wouldn’t let anyone who hits my ip/port directly into my openvpn. But not having china and russia bomboarding me with requests is nice.

      • thomcat
        link
        fedilink
        411 months 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.

        • HousePanther
          link
          fedilink
          111 months ago

          You could use a VPS as a proxy and set up a VPN tunnel between the home server and the VPS to avoid port forwarding altogether. I do this for my mastodon and lemmy instances. My home server is of course behind NAT but there’s no need for any kind of port forwarding. I should know because I have none configured.

    • Semi-Hemi-Demigod
      link
      fedilink
      511 months ago

      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.

      • @Manifish_Destiny
        link
        111 months ago

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

        • Semi-Hemi-Demigod
          link
          fedilink
          611 months ago

          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

          • @Manifish_Destiny
            link
            011 months ago

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

              • @Manifish_Destiny
                link
                111 months ago

                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.

            • Semi-Hemi-Demigod
              link
              fedilink
              111 months ago

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

    • @witten
      link
      English
      111 months ago

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

        • @witten
          link
          English
          211 months ago

          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!

          • a1studmuffin 🇦🇺
            link
            fedilink
            English
            111 months ago

            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.

            • @witten
              link
              English
              1
              edit-2
              11 months ago

              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?

            • @witten
              link
              English
              1
              edit-2
              11 months ago

              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.

  • 𝓢𝓮𝓮𝓙𝓪𝔂𝓔𝓶𝓶
    link
    fedilink
    English
    2411 months 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_
    link
    English
    1311 months ago

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

    Instead, I am using Tailscale (Wireguard)

    • @[email protected]
      link
      fedilink
      English
      211 months ago

      I’ve got a very similar setup now. Only recently adopted tailscale and was previously port tunnelling over SSH to access anything on the local network. SSH is still open, and am just waiting a bit to see if theres any cases where I need it before closing that out too.

      Short story: If you don’t need stuff open to the general public, just having Tailscale will probably cover you.

  • @droidpenguin
    link
    English
    1211 months 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
    link
    English
    1011 months ago

    Port 443 through Traefik and a port for Plex.

    • @[email protected]
      link
      fedilink
      English
      211 months ago

      This is the way I do it. Id like to run plex through traefik as well but it gets angry.

  • @huojtkeg
    link
    English
    911 months ago

    HTTPS and VPN (Wireguard) ports

  • @[email protected]
    cake
    link
    fedilink
    English
    911 months 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.

  • @MaxMouseOCX
    link
    English
    811 months 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
    link
    English
    7
    edit-2
    11 months 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.

  • @[email protected]
    link
    fedilink
    English
    611 months ago

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

  • @Manifish_Destiny
    link
    English
    611 months 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
      link
      fedilink
      411 months 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
        link
        fedilink
        311 months 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.

  • Bristlerock
    link
    fedilink
    511 months 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.

  • @[email protected]
    link
    fedilink
    English
    511 months 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.

  • HousePanther
    link
    fedilink
    English
    511 months ago

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