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?

  • somedaysoon@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    2
    ·
    edit-2
    2 years 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.

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

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

  • Smk@lemmy.ca
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 years 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.

  • notannpc@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    2 years 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.

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

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

  • static09@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 years ago

    I don’t technically open any ports to the public. I have a site-to-site wireguard tunnel to a hosted server. The hosted server is running a hypervisor with two virtual switches. One switch is my external switch and only my Wireguard server is using it. The other is an internal switch where I place other VMs for separate things. A container host, a terminal server with xrdp, a monitoring server with netdata, stuff like that. All technically, but unnecessarily, accessed through nginx proxy manager.

    Because it’s site2site with my home equipment on the Wireguard server, i can still connect to my home network where i host a number of separate services like HomeAssistant from outside the home network.

    I don’t use tailscale, but Wireguard vanilla is super easy to work with. I also have fail2ban pretty much everywhere I can install it because it takes up practically zero resources.

  • csm10495@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    2 years 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.

  • TheInsane42@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 years ago

    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.