cross-posted from: https://lemmings.world/post/8926396

In light of the recent TunnelVision vulnerability I wanted to share a simple firewall that I wrote for wireguard VPNs.

https://codeberg.org/xabadak/wg-lockdown

If you use a fancy official VPN client from Mullvad, PIA, etc, you won’t need this since most clients already have a kill switch built in (also called Lockdown Mode in Mullvad). This is if you use a barebones wireguard VPN like me, or if your VPN client has a poorly-designed kill switch (like NordVPN, more info here).

A firewall should mitigate the vulnerability, though it does create a side-channel that can be exploited in extremely unlikely circumstances, so a better solution would be to use network namespaces (more info here). Unfortunately I’m a noob and I couldn’t find any scripts or tools to do it that way.

In what way are you not re-inventing the gluetun wheel ? Not trying to put you down, just that I’d need a good reason to consider anything less battle hardened.

@xabadak@lemmings.world
creator
link
fedilink
12M

Isn’t gluetun for docker? Are there people running it on the host system?

Just use its proxy for the host system’s needs…

@xabadak@lemmings.world
creator
link
fedilink
2
edit-2
2M

How do you route all a host system’s traffic through Gluetun? If you use routing tables, wouldn’t it similarly be affected by TunnelVision? In which case you would still need a firewall on the host…

Also, the host system likely makes network requests right after boot, before a Gluetun container has time to start. How do you make sure those don’t leak?

I am curious though, how you were able to route all host traffic through Gluetun. I know it can be used as a http/socks proxy, but I only know of ways to configure your browser to use that. What about other applications and system-level services? What about other kinds of traffic, like ssh?

I don’t route all my system’s traffic through Gluetun, my threat model doesn’t need it, I just route relevant apps, e.g. package management is in the clear but firefox, SearXNG, and nicotine go via gluetun. SSH can look after itself, or I’m in dire trouble. If my threat model did need it, I’d be considering a similar solution to yours, but it’d be heavily cribbed from the known good of gluetun, basically the docker (podman) put to bare metal.

@xabadak@lemmings.world
creator
link
fedilink
22M

Yeah, it does come down to threat model and preference. If you only need to route specific apps, Gluetun sounds like a great solution.

Or even just a list of design considerations and tradeoffs tbh

@xabadak@lemmings.world
creator
link
fedilink
22M

I’m no network security expert, so I mainly followed Mullvad VPN for my implementation. I looked at the nftables rules that official Mullvad linux client uses, and also their document here: https://github.com/mullvad/mullvadvpn-app/blob/main/docs/security.md.

Though if you have any alternatives for vanilla wireguard users like me, I’ll gladly switch. I know somebody mentioned Gluetun but I thought that was for docker only. Do you know of any others?

No worries thats cool and a great contribution. (didnt mean to attack your work).

i have only used gluetun in a docker like context so i cant honestly tell you but you can have vpn and non vpn traffic on your system and you just proxy traffic.

also, now i can see the reason for this (work) and why its cool, which was missing in your post. Also knowing your approach helps others point you to ways to improve what youve done. Thanks you!

@xabadak@lemmings.world
creator
link
fedilink
12M

No offense taken, on the contrary thanks for the constructive criticism! I’ll add some more details to my repo to make things more clear.

Of course! And anytime!!

Create a post

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

  • Posting a link to a website containing tracking isn’t great, if contents of the website are behind a paywall maybe copy them into the post
  • Don’t promote proprietary software
  • Try to keep things on topic
  • If you have a question, please try searching for previous discussions, maybe it has already been answered
  • Reposts are fine, but should have at least a couple of weeks in between so that the post can reach a new audience
  • Be nice :)

Related communities

Chat rooms

much thanks to @gary_host_laptop for the logo design :)

  • 0 users online
  • 57 users / day
  • 383 users / week
  • 1.5K users / month
  • 5.7K users / 6 months
  • 1 subscriber
  • 2.42K Posts
  • 56.9K Comments
  • Modlog