I finally found some time and motivation to put together some salt scripts I’m using for many years now. I was actually just waiting for Qubes to bring back good old sys-tor, but here it is.
So, what is this exactly?
The tar file contains some salt scripts + configuration to create a disposable VM (sys-tor) that routes all network traffic through Tor. That’s it. Nothing fancy, no snakeoil, just routing traffic through Tor. This way, any other VM’s traffic (like from your favorite browser, your mail client, your torrent client, your VPN qube, …) can easily go through Tor.
How set it up?
extract the tar archive and copy it to dom0 under /srv/salt
adjust config/torrc.user to your liking - do adjust the EntryNodes setting at least!
run three commands in dom0 to set up and configure sys-tor:
start sys-tor and set it as netvm for some other VM.
Will this bring magic, bulletproof, 100% anonymity to your application? No, it just routes traffic through Tor. And it’s so simple that it can be inspected with minimal effort, which makes it harder for stupid mistakes to hide in complexity.
" Using a Disposable for the Whonix-Gateway results in non-persistent entry guards to the Tor network; behavior unlike the default configurations for Whonix, Tor, and the Tor Browser Bundle. Mathematically speaking, end-to-end correlation attacks are more likely to succeed when a user chooses many random entry and exit points in the Tor network, rather than semi-permanent entry guards which are only rotated every few months. [21][22]"
Not sure on what exactly, but I’ll try.
The goal of disposable VMs is to increase security. An infiltrated VM is bad obviously, but even more so when the attack is persistent. A disposable VM reduces the persistence of a potential attack until the next reboot of the VM.
Guard nodes in the Tor network are the only nodes that can observe the real IP addresses of users, which makes them special. Keeping a (trustworthy) guard node for a long time reduces the probability for (various types of) attackers to gather the real IP addresses of users.
So, it’s good to have both, a disposable sys-tor VM and long-living guard nodes.
I haven’t tried it and I’m not using sys-tor for firewalling purposes. Generally speaking, I think it’s good to separate concerns and have a dedicated firewall VM, like sys-torfw for example, which uses sys-tor as netvm and implements firewalling (and nothing else). But maybe using sys-tor as firewall too just works out of the box. I’d be curious to know if you test it.