Essential Whonix ™ Functionality Tests
Introduction[edit]
Whonix ™ requires a critical mass of users to properly test planned updates by enabling the stable-proposed-updates or testers repository. [1] Otherwise, bugs might go undiscovered and be inadvertently introduced into the stable repository.
To ensure a stable Whonix ™ system is available at all times, willing testers should:
- Create new Whonix-Workstation ™ and Whonix-Gateway ™ Templates solely for testing.
- Enable the
stable-proposed-updates
ortesters
repository via the Derivative Repository Tool. - Platform-specific advice:
- Non-Qubes-Whonix ™: Create a clean snapshot or use Multiple Whonix-Workstation ™ / Multiple Whonix-Gateway ™.
- Qubes-Whonix ™: Use Multiple Templates and separate
sys-whonix-test
andanon-whonix-test
TemplateBasedVMs.
Then perform normal user activities.
Please only report bugs after first searching relevant Whonix ™ forums and developer portals for the problem. (Please use Search Engines and see Documentation First)
Whonix-Gateway ™ Tests[edit]
- After logging in, the Whonix ™ Setup Wizard / Anon Connection Wizard should appear.
- Check the Tor version. anon-info
- Check Tor config. anon-verify
- Check Tor warnings. Some messages can be safely ignored. grep -i warn /var/run/tor/log
- Check Tor errors. grep -i error /var/run/tor/log
- Check for clock skew. grep -i clock /var/run/tor/log
- Test if arm is fully functional. arm
- Test obfsproxy bridge connectivity is functional.
Whonix-Workstation ™ Tests[edit]
Basic Tests[edit]
- Power off Whonix-Gateway ™. Try to ping outside or to use the browser in Whonix-Workstation ™. Obviously this should not work.
- Power on Whonix-Gateway ™ again. Visit https://check.torproject.org/
with Tor Browser. You should see a “Congratulations”.
- Ping the Whonix-Gateway ™; this will not work. [2] ping 10.152.152.10
- Note: Ping commands should NOT work for external addresses from your Whonix-Workstation ™; ICMP traffic [3] is not proxied, and filtered by Whonix ™ Firewall (/usr/bin/whonix_firewall) because Tor does not support UDP. For more information on ping inside Whonix-Workstation ™, see Whonix-Workstation Firewall, ping.
- Use Tor Browser to visit an onion address - try the torproject.org onion service
.
- Test Tor Button's New Identity Feature.
- dig google.com must only return a single IP; compare that with the output on Whonix-Gateway ™ or Host. dig google.com
- See if syste gets autostarted.
- Setup an Onion Service.
- Test the onion service by connecting to its address with Tor Browser.
- Test HexChat and connect to a an SSL protected IRC server.
- Test HexChat and connect to an onion IRC server.
- Run systemcheck leak tests. systemcheck --leak-tests
- After downloading the key, the user should verify its authenticity: gpg --keyid-format long --import --import-options show-only --with-fingerprint {{{source_filename}}}
- Before importing the key: gpg --import {{{source_filename}}}
- Test curl uwt wrapper. curl http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion
- Install lighttpd. sudo apt install lighttpd
- Restart lighttpd. sudo service lighttpd restart
- Try to download the local index.html. curl 127.0.0.1
- Check. cat index.html
- Install git. sudo apt install git
- Check if regular git servers are reachable. git clone https://github.com/Whonix/Whonix
- Check if Tor Project git onion service
is online.
- If yes, try to clone its onion Tor git repository. git clone http://xtlfhaspqtkeeqxk6umggfbr3gyfznvf4jhrge2fujz53433i2fcs3id.onion/tor.git
DNS Test[edit]
Inside Whonix-Workstation ™.
Run.
Expected output:
116.202.120.181
TCP Test[edit]
Inside Whonix-Workstation ™.
Run.
Expected output:
{"IsTor":true,"IP":"xxx.xxx.xxx.xxx"}
TCP and DNS Test[edit]
Inside Whonix-Workstation ™.
Run.
Expected output:
{"IsTor":true,"IP":"xxx.xxx.xxx.xxx"}
Port Tests[edit]
SocksPort[edit]
Inside Whonix-Workstation ™.
Run.
Expected output:
HTTP/1.0 501 Tor is not an HTTP Proxy
Content-Type: text/html; charset=iso-8859-1
ControlPort[edit]
Inside Whonix-Workstation ™.
Run. [4]
Expected output:
510 Command filtered
510 Command filtered
510 Command filtered
510 Command filtered
curl: (28) Operation timed out after 2001 milliseconds with 88 bytes received
Closed Port[edit]
Inside Whonix-Workstation ™.
Run. [5]
Expected output:
curl: (7) Failed to connect to 10.152.152.10 port 80: Connection refused
TransPort[edit]
Inside Whonix-Workstation ™.
TransPort
reachability test. Run.
Expected output:
curl: (56) Recv failure: Connection reset by peer
Or.
curl: (52) Empty reply from server
Default Browser[edit]
Quick Launcher[edit]
Check if the Tor Browser quick launcher (fav icon) next to the start menu button is visible and startable.
Text Links[edit]
1. Open a terminal.
2. Run the following command.
3. Right-click on the echoed http://127.0.0.1 and choose open link.
4. Check it is fully functional.
It should open and ask for confirmation to open that file in Tor Browser. Check that nothing happens when pressing No (which should be the default!) and conversely a new Tor Browser window is opened when pressing Yes.
File Links[edit]
1. Create a file ~/test.html with the following content.
test
2. Open Thunar (default file manager) and double-click on that file.
3. Check if it opens and asks for confirmation to open that file in Tor Browser.
Terminal Tests[edit]
1. Open a terminal.
2. Run the following command.
3. Check if it asks for confirmation to open that file in Tor Browser.
4. Check the same for.
5. Check the same for.
6. Check the same for.
7. Next, remove open-link-confirmation.
And repeat the tests above.
Applications[edit]
Test that all the following applications are fully functional:
- Metadata
- Tor Browser
- Manually Downloading Tor Browser
- Check if Tor Browser runs in Whonix ™ out of the box -- without use of the torbrowser script -- by running
/home/user/.tb/tor-browser/start-tor-browser
.
Leak Tests[edit]
See Dev/Leak Tests.
Whonix-Workstation ™ and Whonix-Gateway ™[edit]
Miscellaneous[edit]
1. Check locale.
2. Check apt config and see if periodic updates are disabled.
3. Install a new kernel for testing purposes. [6]
4. Check the content of /etc/network/interfaces
5. Check the content of /etc/resolv.conf
6. Check /etc/apt/sources.list
7. Check iptables.
8. Reboot from terminal while X is running.
Switch to terminal.
Reboot.
No errors should appear like "failed to kill service".
Extra Tests[edit]
1. Check if aptitude is functional.
See the footnotes if additional manual tests are preferred. [7] [8]
2. Test the re-installation of x11-common.
Display Manager[edit]
Non-Qubes-Whonix ™ only.
Check lightdm stops and restarts correctly.
Footnotes[edit]
- ↑ The developers repository is only recommended for experts or those in touch with Whonix ™ developers.
- ↑ You will not be able to ping the Whonix-Gateway ™ because ICMP is blocked by the firewall. If you want to test it, you have to adjust the firewall or deactivate it while testing on both, Whonix-Gateway ™ and Whonix-Workstation ™.
- ↑
http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol
- ↑ Dev/Control Port Filter Proxy
- ↑
There is nothing running on Whonix-Gateway on port
80
. - ↑ The latest Debian kernel versions can be found here
.
- ↑
These checks are not as important because relevant messages would probably be shown during
sudo systemctl list-units --failed
. Check if /var/run/bootclockrandomization/success exists.ls -la /var/run/bootclockrandomization/successCheck the boot clock randomization log.cat /var/log/bootclockrandomization.logsudo service bootclockrandomization statusecho $?Check if /var/run/timesanitycheck/success exists.ls -la /var/run/timesanitycheck/successInspect the time sanity check log.cat /var/log/timesanitycheck.logConfirm the time sanity check status.sudo service timesanitycheck statusecho $? - ↑ These checks are not as important because sdwdate-gui would likely identify any issues beforehand.
Check if /var/run/sdwdate/success exists.
ls -la /var/run/sdwdate/successCheck the sdwdate log.cat /var/log/sdwdate.logCheck the sdwdate status.sudo service sdwdate statusecho $?