Comment on Novel attack against virtually all VPN apps neuters their entire purpose
the_third@feddit.de 6 months ago
When I design someone, critical applications get their own network namespace with only the VPN interface inside anyway. So, yeah.
barsquid@lemmy.world 6 months ago
How do you set this up?
originalucifer@moist.catsweat.com 6 months ago
i think docker allows for this configuration. i use a gluetun container for the network definition of the torrent container to prevent leaking. the torrent container knows of no other network than the vpn container.
the_third@feddit.de 6 months ago
There’s readily available docker containers for it but I wanted to build it by hand. Well, more or less, Extremely hacky but it works, so fine for me.
I started out with cheating and used this wrapper around wg-quick that gives us a persistent network namespace with the tunnel interface in it:
github.com/dadevel/wg-netns
Then I built a static binary of qbittorrent using this really neat docker image: github.com/userdocs/qbittorrent-nox-static
…and stuffed the result into a systemd service that runs it in the namespace wg-netns provides:
To get the webui out of that I stuck two instances of socat together at the stdout and from there it depends on whatever you want to use as a reverse proxy on the host - or you bind to a network interface if you trust the network:
Works, is reboot safe, stopped caring about beauty at that point.
xabadak@lemmings.world 6 months ago
Do you know how to make it so all the host’s traffic is sent through the VPN namespace? I couldn’t figure out how to do this so I ended up just writing my own firewall. Network namespaces seems like a better solution.
the_third@feddit.de 6 months ago
I haven’t found the time to research an answer for you, sorry. The way I’d go is: create a veth of your physical uplink and stuff it into its own namespace with dhcp client and wg userspace tools. Do not configure the original interface in your initial namespace. Use the approach wg-netns uses to spawn the tunnel interface in initial network ns. Done.
barsquid@lemmy.world 6 months ago
This is so cool, thank you!
ParetoOptimalDev@lemmy.today 6 months ago
github.com/jamesmcm/vopono