Access home server from anywhere

Footnote2669@lemmy.zip to Selfhosted@lemmy.world – 96 points –

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

81

You are viewing a single comment

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.

Nah, that sounds complicated. Just open port 22 and forward it your server.

2 more...

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

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.

(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?

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.

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

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!

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)

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

2 more...