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@kbin.social
    link
    fedilink
    arrow-up
    30
    ·
    edit-2
    1 year ago

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

  • somedaysoon@lemmy.world
    link
    fedilink
    English
    arrow-up
    17
    arrow-down
    2
    ·
    edit-2
    1 year ago

    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.

    • Semi-Hemi-Demigod@kbin.social
      link
      fedilink
      arrow-up
      4
      ·
      1 year 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@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        1 year ago

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

        • Semi-Hemi-Demigod@kbin.social
          link
          fedilink
          arrow-up
          2
          ·
          1 year 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

            • somedaysoon@lemmy.world
              link
              fedilink
              arrow-up
              4
              arrow-down
              1
              ·
              edit-2
              1 year ago

              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.

              • Manifish_Destiny@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                1 year 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.

                • somedaysoon@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  arrow-down
                  1
                  ·
                  edit-2
                  1 year ago

                  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

    • witten@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

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

        • witten@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year 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!

          • somedaysoon@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            1 year ago

            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.

            • witten@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              1 year 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.

              • somedaysoon@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 year ago

                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.

  • droidpenguin@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    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.

  • spez_@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 year ago

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

    Instead, I am using Tailscale (Wireguard)

  • Manifish_Destiny@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    1
    ·
    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
      link
      fedilink
      arrow-up
      2
      ·
      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
        link
        fedilink
        arrow-up
        2
        ·
        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.

  • MaxMouseOCX@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    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.

  • Bristlerock@kbin.social
    link
    fedilink
    arrow-up
    4
    ·
    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.

  • ulemmyagain@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    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
      link
      fedilink
      English
      arrow-up
      5
      ·
      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

      • ulemmyagain@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I should install fail2ban. I already have everything else covered. I’ve only heard of fail2ban, not very familiar with it. Is it necessary if password login is disabled? Can you brute force ssh keys? I really appreciate your advice.

        • carzian@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          I definitely recommend you do your own research into this. Brute forcing ssh keys should be practically impossible. Is it necessary to install fail2ban with password login disabled? Not sure, I’m of the opinion that it won’t hurt, just one more line of defense. It’s pretty easy to setup.

  • Chupachups@kbin.social
    link
    fedilink
    arrow-up
    3
    ·
    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.

  • iliketrains@kbin.social
    link
    fedilink
    arrow-up
    2
    ·
    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.

      • iliketrains@kbin.social
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        I am unsure if I can ELI5 those without also ELI5-ing about Computer Network, VPN and Firewall.

        They are VPNs. Like a regular network, they connect your devices through their network. They may put Firewall rules to allow you to talk to X networks (any specified networks). That also means the VPN may not allow you to connect to the internet through their network. Now the difference between ZeroTier and Tailscale and other VPNs for accessing the internet is that ZeroTier and Tailscale only permit your traffic to your other devices that are bound to your account and not to the internet (your other internet data won’t go through zerotier/tailscale). This configuration is great because you have a virtual and secluded network that you can connect to from anywhere via the internet using ZeroTier/Tailscale networks (with your virtually local IP on ZeroTier/Tailscale).