Ditching the VPN and port forwarding the selfhosted way
For folks that are unable to port forward on the local router (eg CGNAT) I made this post on doing it via a VPS. I've scoured the internet and didn't find a complete guide.
Hey, great post. I have one request. Can you maybe add some description for what the iptables entries do? I have a similar setup with a lot less iptables rules that works well for me. But I'm not an expert in networking, and am now worried that I might be missing something that can leak my home IP.
Thanks for the feed back. I started out with that post I referenced in my article, which had fewer entries. It didn't work. Caveat was although the online port checkers were reporting the port as open, it was not actually making through the tunnel!
I actually solved it by asking chatgpt!! I put in the suggestions and it worked. I'm also no expert on creating iptables, but once it was in place it seemed self explanatory.
I ran netcat as client-server to test it actually worked.
Idk man, it seems pretty irresponsible to me to write a blogpost with stuff that you got from ChatGPT without understanding it. People will assume that if you wrote a blogpost on this then you know what you're doing. ChatGPT gets stuff wrong all the time, and we're talking about firewall configuration here. If it misconfigured some stuff it could leave you and your readers vulnerable to all kinds of shit.
In this case it seems to me that (luckily) there's just a bunch of redundant routing, but the next time it could be leaking your and your readers' torrent traffic out of the VPN tunnel, leaving you vulnerable to legal repercussions for piracy.
Please don't authoritatively post stuff that you got from the automatic bullshit generator without understanding it.
I took a look at it. From what I understand, some of the lines in your setup are redundant. The final product seems to do basically the same job as mine. In any case, if it works, it works.
The general topic was about self-hosting. IPv6 is very useful for self-hosting,.. connections.
I'll admit there is a critical mass problem with torrenting clients, but if you're trying to set up a wire guard tunnel with your friends, IPv6 is a absolute banger
I've set up some tunnels. Works nice but then the voices came.
'Why would you trust a company like Cloudflare with all your data?'
'Why rely on this one company for all your services?'
Nearly a year into my selfhosting journey and I'm more confused than ever.
tl;dr: classic convenience/privacy. depends on your threat model. surely better than Google. models of zero trust will help.
That's a great question, that I have asked myself before too.
It doesn't have one answer, and any one would make their own choices based on their own respective threat model.
I'll answer you with some of my thoughts, and why I do use their services.
I'll take as an example my usage of NextCloud, coming as a replacement to Google Drive for example.
let's break up the setups:
client (mobile app, desktop client, browser)
communication to server
server
It's oversimplified, but to the point:
In Google's setup, you have control of 0 out of three things.
you use their closed source client, 2. they decide the communication to the server (if there's any CDN, where their servers located, TLS version), and 3. data is on their servers, wether encrypted or not is up to them.
In NextCloud's setup,
The clients are open source (you can varify them, or build your own),
communication to server is up to you. and in this case you trust your data with CF, that's right. gonna have to trust them.
server is your server, and you encrypt the files how you want.
From just this look, NC is clearly better off.
now, it's not perfect, and each one will do their own convenience vs privacy deal and decide their deal.
If you deploy some sort of e2ee, the severity level of CF drops even more, because they're exposed to less data.
specifically for NC they do do e2ee, but each solution to its own. https://nextcloud.com/encryption/
this goes as an example for zero trust model.
if you handle the encryption yourself (like using an e2ee service), you don't have to trust the medium your data is going through. like the open internet.
gotta admit I haven't read the ToS, but I didn't encounter any problems.
I'm streaming GBs of music via the tunnel and it still works.
p2p I didn't try, but I don't really see a reason to?
Nice, I recently went through the same struggle of setting up this configuration based on that LinuxServer post. My main nitpick on this is that automating the ip route configuration for the qBittorrent container is a pretty important step which is not explained in the post. Leaving any manual steps in any Docker setup is pretty bad practice.
Since you're using LinuxServer's QBT image a good way to do this is to make use of their standard custom init scripts. You can just mount a script with the ip route commands to /custom-cont-init.d/my-routes.sh:ro on the container and it will be run automatically on each startup.
Another nitpick is that the PostDown commands in the wireguard configs are useless since you're running them in Docker.