Please use the updated and summarized version of this guide [Quick Start Guide] at the link below as this guide is outdated, for reference purposes only, and contains an unnecessary command in step 1 which has been made redundant by the newer QubesOS anon-gw-anonymizer script.
For some context to this guide, shown below is my previous guide on fixing snowflake in Qubes-Whonix from earlier through Tor User Config
and the UseBridges 1 function. For today’s guide, we will fix the builtin Tor Control Panel
’s broken snowflake option, and free up the Tor User Config
in the process. I prefer this method over my last method shown in the post below. If you know what’s coming and would like to skip to the installation, scroll down to the part in caps and bold that says TLDR; SKIP TO THIS POINT FOR THE INSTALLATION OF SNOWFLAKE PROXY INTO QUBES-WHONIX TOR CONTROL PANEL, OR SKIP TO THE END WHERE A USER HAS SUMMARIZED THE GUIDE INTO EASY TO FOLLOW COMMANDS
In my last guide in the link above, I showed how to get snowflake proxy working in Qubes-Whonix(sys-whonix), by replacing the default (outdated?)bridges found in the whonix(qubes-whonix) snowflake documentation and by bypassing qubes-whonix’s Tor Control Panel
using Tor User Config
, on top of configuring DNS settings specific to qubes-whonix. This guide will show you how to get the snowflake proxy in sys-whonix’s Tor Control Panel
working using the same principle, and independent of the Tor User Config
, if you find that to be useful. (It feels nice to click snowflake and have it not stop at 10%, you know, having it work the way it is supposed to work), and it frees up your Tor User Config
. I apologize if this is trivial/detrimental to security/or otherwise a waste of anyone’s time
This procedure was first tested in the sys-whonix VM as root, do it in the whonix-gateway-17 template for persistence.
This guide assumes that the user has already configured sys-whonix’s DNS using sudoedit /etc/resolv.conf.whonix
(in the whonix-gateway-17 template) and setting the output of qubesdb-read /qubes-netvm-primary-dns
as nameserver near the bottom of the file by uncommenting it and changing the ip. It also assumes the user has copied and installed snowflake-client
by copying it from the whonix-workstation-17 template to the whonix-gateway-17 template in /usr/bin
, and making the file executable(the default gateway-17 client is broken but the workstation-17 client works.) The commands to do all of this are below.
TLDR; SKIP TO THIS POINT FOR THE INSTALLATION OF SNOWFLAKE PROXY INTO QUBES-WHONIX TOR CONTROL PANEL, A SATISFIED USER SUMMARIZED ALL OF THE COMMANDS AND I PLACED IT AT THE BOTTOM OF THIS POST
1) In whonix-gateway-17 template terminal: sudoedit /etc/resolv.conf.whonix
a window will pop up to edit
uncomment “nameserver 10.0.2.3” and replace the ip with output of qubesdb-read /qubes-netvm-primary-dns
from a running sys-whonix terminal(mine was 10.139.1.1 as it says in the qubes docs)
save the file, close the window and navigate to the whonix-workstation-17 template terminal to copy the snowflake-client to the whonix-gateway-17 template
#copy snowflake binary to gateway template from workstation template
2) In whonix-workstation-17 template terminal:
qvm-copy-to-vm whonix-gateway-17 /var/cache/tb-binary/.tb/tor-browser/Browser/TorBrowser/Tor/PluggableTransports/snowflake-client
In whonix-gateway-17 template terminal: sudo cp ~QubesIncoming/whonix-workstation-17/snowflake-client /usr/bin/snowflake-client
The next command(s), there are two that seem to do the same thing, and i’m not sure which one works because I don’t quite know the difference between them, but one of them works for sure, and doing them both works fine(if someone could tell me which one to remove from this guide that’d be great), they are: UPDATE: Please see below UPDATE comment in bold text.
sudo chmod og+rx /usr/bin/snowflake-client
and/or
UPDATE: adrelanos@whonix dot org told me that the below command is probably not necessary and has explained why when I asked in my Whonix thread below:
sudo install ~/Qubesincoming/whonix-workstation-17/snowflake-client --owner debian-tor --target-directory /usr/bin
← Command probably not necessary according to adrelanos@whonix dot org.
You now have the correct snowflake-client
in your template ready for use.
Choose from the following Options to continue; A for testing, or B for persistent template install, to proceed.
Option A: In dom0:(for testing) qvm-run --user root sys-whonix xterm
In sys-whonix xterm:(for testing) skip Option B and execute commands below for testing
Option B: In whonix-gateway-17 template terminal:(For Template Install) execute commands below for template install
sudo nano /usr/share/anon-conection-wizard/bridges-defualt
Replace the outdated snowflake bridges in the file to these newer ones from the tor project found at this link, I suggest the CDN77 bridges(option 2):
CTRL+O then CTRL+ENTER (to save file)
CTRL+X (to exit file)
Shut down whonix-gateway-17 template
Start/Restart sys-whonix
Find and launch your Tor Control Panel under Main Qubes Menu > Services > sys-whonix > Tor Control Panel
Click Stop Tor
Click Configure
Select snowflake as your bridge type
Click Restart Tor
It should look like this.
Snowflake should connect fine. This has also been tested in the whonix-gateway-17 template for persistence and it works great! :).
EDIT: A user in my comments section was glad to find my guide and made a summarized version of it that is easy to follow! That’s what this is all about. I hope it helps others!
1) whonix-gateway-17 template terminal:
sudo nano /etc/resolv.conf.whonix
Replace “nameserver 10.0.2.3” with “nameserver 10.139.1.1(or the output of ip qubesdb-read /qubes-netvm-primary-dns
run in a sys-whonix terminal, which should be 10.139.1.1
, but if it is different, then use that output ip)”
Save & exit
2) whonix-workstation-17 template terminal:
qvm-copy-to-vm whonix-gateway-17 /var/cache/tb-binary/.tb/tor-browser/Browser/TorBrowser/Tor/PluggableTransports/snowflake-client
3) whonix-gateway-17 template terminal:
sudo cp ~QubesIncoming/whonix-workstation-17/snowflake-client /usr/bin/snowflake-client
sudo chmod og+rx /usr/bin/snowflake-client
sudo install ~/Qubesincoming/whonix-workstation-17/snowflake-client --owner debian-tor --target-directory /usr/bin
← command probably not necessary according to Whonix dev
sudo nano /usr/share/anon-conection-wizard/bridges_default
Replace snowflake Bridges with:
"Bridge snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://1098762253.rsc.cdn77.org/ fronts=docs.plesk.com,www.phpmyadmin.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn", "Bridge snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA url=https://1098762253.rsc.cdn77.org/ fronts=docs.plesk.com,www.phpmyadmin.net ice=stun:stun.l.google.com:19302,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.net:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 utls-imitate=hellorandomizedalpn"
Save & exit
5) Shutdown whonix-gateway-17 template
6) Restart sys-whonix
7) Start Tor Control Panel
Click Stop Tor
Click Configure
Select Bridges type: snowflake
Click Restart Tor
Enjoy Snowflake on Qubes-Whonix working the way it’s supposed to be!