Hi, I know this topic has been talked about 70 thousand times but I’m still not sure.

I have home server on an intel NUC behind the ISP router. On it I have the standard arr apps, jellyfin, pi-hole etc etc. I would like to access them through a domain rather than an IP. So I set them up in docker, behind traefik, behind authelia and behind cloudflare. I am the only one that uses it.

Now, I’m worried about the security of it all. I’ve been searching here and there and I’ve read about cf tunnels, wireguard server, vps, vlan, OPNsense etc etc. I still don’t know what would be the most secure. Should I just stay with what I have?

EDIT: I’m not behind CGNAT

  • bless@lemmy.world
    link
    fedilink
    English
    arrow-up
    44
    ·
    7 months ago

    I would go with wireguard VPN or something like cloudflare tunnels or tailscale. With wireguard you’ll need to open up an external port and forward to your VPN host, but wireguard uses UDP so no one can probe it for responses. CF tunnels and tailscale you don’t have to open up holes in your firewall which is nice.

    You also have the option of using a proxy and opening up 443 publicly on your firewall, but unless you know what you’re doing I’d leave that closed until you learn more.

    • Footnote2669@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      7 months ago

      Mmmmmm, tunnels sound boring haha I might try figuring out wireguard. Do you have any trusted guides on it? Or should I just google :P

      • bless@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        Good thing about wireguard is it’s really simple. Google should get it done, if you get stuck send me a DM. I started with basic wireguard, I now run firezone in docker as I like the frontend.

        • Footnote2669@lemmy.zipOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          7 months ago

          (I’m gonna copy what I said in another comment lol)

          I don’t know if I’m shooting myself in the foot by trying to do in docker for now or not, but I’d rather do that before I do it on bare metal. It seems to work already, as I can see that my IP changes on my phone when I access it. Hell, I can even access my routers’ dashboard. However, I still can’t access the services on the server (by IP, like 192.x.x.x:8989), which I can access if I’m on Wi-Fi. So I’m trying to figure that out. Any ideas?

          • bless@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            7 months ago

            Hmm do a traceroute and see where it’s dying. Can you ping inside IP of the tunnel on the wireguard server? What about outside?

            What did you deploy in docker, firezone or basic wireguard?

            Does your phone say connected and you see both incoming and outgoing packets? Is there a firewall in place on the wireguard host (ufw maybe)?

            If you have nmap available you can also check port status.

            • Footnote2669@lemmy.zipOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              edit-2
              7 months ago

              Yup, run journalctl and I can see ufw blocking requests. Now just need to figure out how to allow it

              EDIT: Adding a rule “ufw allow from 192.x.x.x/24” fixed it, just need to find out if THAT’s secure now lmao

              • bless@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                7 months ago

                You can bound ufw rules to interfaces, so you can allow in only on the wg0 interface and not eth0 interface.

                Glad it’s working! I love wireguard!

                • Footnote2669@lemmy.zipOP
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  7 months ago

                  I couldn’t use the interface, as wg is in a docker container, but I used the container IP, and it seems to be working. Huge thanks! Now I can get rid of Cloudflare and related containers :D (just need to fix the homepage first, I’m not using IPs for services lol)

      • sunbeam60@lemmy.one
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 months ago

        Honestly it couldn’t be simpler. Look at wg-easy docker container. You’ll be up and running in 10 minutes.