Whonix: A High Security Method of Surfing the Internet
Whonix is a desktop operating system designed for advanced security and privacy. Whonix mitigates the threat of common attack vectors while maintaining usability. Online anonymity is realized via fail-safe, automatic, and desktop-wide use of the Tor network. A heavily reconfigured Debian base is run inside multiple virtual machines, providing a substantial layer of protection from malware and IP address leaks. Commonly used applications are pre-installed and safely pre-configured for immediate use. The user is not jeopardized by installing additional applications or personalizing the desktop. Whonix is under active development and is the only operating system designed to be run inside a VM and paired with Tor.
After approximately two years of development, the Whonix Project is proud to announce the release of Whonix 16.
Whonix 16 is based on the Debian bullseye
(Debian 11
) distribution. This means users have access to many new software packages in concert with existing packages. In addition, this release will serve as development foundation for many exciting upcoming security enhancement such as Hardened Malloc Kicksecure (HMK), Linux Kernel Runtime Guard (LKRG) and other items on the Kicksecure Security Roadmap.
Alternatively, in-place release upgrade is possible upgrade using Release Upgrade Whonix 15 to Whonix 16 instructions.
This release would not have been possible without the numerous supporters of Whonix!
Please Donate!
Please Contribute!
Major Changes
- ported Debian base from Debian 10
buster
to Debian 11bullseye
(discussion) - Monero GUI wallet (XMR) version
0.17.2.3
- electrum Bitcoin (BTC) wallet version
4.0.9
(Debian stable version) - package binaries-freedom is deprecated (reason) (electrum installed from
packages.debian.org
stable repository) - switched back from
deb.torproject.org
tor
package topackages.debian.org
stabletor
package (Tor integration in Whonix Development Notes) - enable Debian fasttrack repository by default
- updated paths from
/usr/lib
to/usr/libexec
where appropriate as per lintian Debian FSH - VirtualBox version: this release is using VirtualBox guest additions version
6.1.26-dfsg-3
fromfasttrack.debian.net
version (details)
Known Issues
- Desktop background image currently is the same for Whonix-Gateway and Whonix-Workstation. This will most likely be fixed in the next release.
Notable Changes
- anon-apt-sources-list
- anon-gw-anonymizer-config
- anon-meta-packages
- binaries-freedom → electrum
- whonix-shared-packages-recommended-cli: add kicksecure-recommended-cli
- remove flashproxy-client and fteproxy from Whonix-Gateway since deprecated in Debian bullseye
- remove obfsproxy (deprecated obfsproxy version 3) but keep obfs4proxy from Whonix-Gateway obfs4proxy package is deprecated in Debian bullseye
- anon-ws-disable-stacked-tor
- apparmor-profile-dist
- apparmor-profile-everything
- genmkfile
- genmkfile deb-install: install using
apt-get install
instead ofdpkg -i
for dependency resolution (sdwdate vs time-deamon) - update make_dependencies_filter_helper
- exclude
/debian
folder from upstream tarball to avoid lintian warningno-debian-changes
- Force the inclusion of the original source if Debian package revision number is higher than 1. LKRG package compatibility fix.
- improve support for debian/changelog file without epoch
- add support for debian/changelog file without epoch
- LKRG v0.9.1 compatibility
- clean up temporary file “debian/$package.dkms.debhelper”
- genmkfile deb-install: install using
- helper-scripts
- etc/apparmor.d/abstractions/tor-circuit-established-check: deny /etc/ssl/openssl.cnf r, Not needed. Works without.
- implement
/usr/libexec/helper-scripts/first-boot-skel
force
to ease Default Home Folder Configuration Files Reset https://www.whonix.org/wiki/Desktop#Default_Home_Folder_Configuration_Files_Reset - move usr/lib/helper-scripts/ to usr/libexec/helper-scripts move usr/lib/curl-scripts to usr/libexec/helper-scripts as per lintian FHS
- kicksecure-base-files
- kicksecure-meta-packages
- add chromium to dummy-dependency so it can be removed
- binaries-freedom → electrum
- move obfs4proxy from kicksecure-dependencies-cli to kicksecure-recommended-cli https://forums.whonix.org/t/meta-packages-development-discussion/11948
- kicksecure-cli Depends: kicksecure-recommended-cli
- introduce kicksecure-recommended-cli install fasttrack-archive-keyring by default https://forums.whonix.org/t/install-debian-fasttrack-archive-keyring-by-default/11456
- bullseye: libexo-1-0 → libexo-2-0
- Merge branch ‘HulaHoop0-master-patch-35409’ into ‘master’ Added obfs4proxy and firefox-esr See merge request whonix/kicksecure-meta-packages!1
- Added obfs4proxy and firefox-esr (Thanks to @HulaHoop!!)
- onion-grater
- open-link-confirmation
- qubes-whonix
- yum → dnf
- Honor skip-torified-updates-proxy-check qvm-service Reintroduce the ability (from qubes-whonix < 15.4) to skip the torified-updates-proxy-check script by enabling a qvm-service. This allows a Whonix template to be updated through a non-Whonix qubes.UpdatesProxy VM if necessary. (Thanks to Rusty Bird!)
- rads
- repository-dist
- sdwdate
- security-misc
- add hardened malloc compatibility for haveged workaround
/lib/systemd/system/haveged.service.d/30_security-misc.conf
SystemCallFilter=getrandom
Otherwise haveged will exit with a core dump. - port from pam_tally2 to pam_faillock since pam_tally2 was deprecated upstream
- port from pam_tally2 to pam_faillock since pam_tally2 was deprecated upstream
- enable “
apt-get --error-on=any
” by default makes apt exit non-zero for transient failures/etc/apt/apt.conf.d/40error-on-any
https://forums.whonix.org/t/debian-bullseye-apt-get-error-on-any/12068 - replace no longer required
/usr/lib/security-misc/apt-get-wrapper
withapt-get --error-on=any
- port LKRG compatibility settings automation for VirtualBox hosts from systemd to dpkg trigger
- improve LKRG VirtualBox host configuration as per https://github.com/openwall/lkrg/issues/82#issuecomment-886188999
- add LKRG compatibility settings automation for VirtualBox hosts https://github.com/openwall/lkrg/issues/82
- add hardened malloc compatibility for haveged workaround
- systemcheck
- tb-starter
- improve function tb_prefs_js_file_patches
- Update path to local browser homepage. Patch prefs.js in user home folder. Because it changed during Whonix 15 to Whonix 16 upgrade. from /usr/share/homepage/whonix-welcome-page/whonix.html to /usr/share/doc/homepage/whonix-welcome-page/whonix.html
- delete /usr/share/tb-profile-i2p/profile.i2p/bookmarks.html since unused
- usr/share/homepage → usr/share/doc/homepage
- tb-updater
- usability-misc
- uwt
- vm-config-dist
- VirtualBox guest additions installer: switch to
interest-await
trigger Usinginterest-await
instead of previouslyinterest-noawait
because whenvirtualbox-guest-additions-iso
was upgraded as the same time asvm-config-dist
the trigger was not executed. - Removed folder existence conditional to prevent catch-22 (Thanks to @HulaHoop!!)
- VirtualBox guest additions installer: switch to
- whonix-base-files
- whonix-developer-meta-files
- renamed: migrate_to_buster_proposed_updates_repository → migrate_to_proposed_updates_repository renamed: migrate_to_buster_repository → migrate_to_stable_repository renamed: migrate_to_buster_testers_repository → migrate_to_testers_repository
- modify warrant canary text as per: https://www.whonix.org/w/index.php?title=Dev/Warrant_Canary_Draft&oldid=65156 https://forums.whonix.org/t/whonix-warrant-canary/3208/29
- whonix-firewall
- whonix-initializer
- whonix-legacy
- version
- improve release-upgrade
- improve release-upgrade
- release-upgrade: fix, respect onion sources
- workaround for Qubes specific
perl: warning: Setting locale failed.
issue https://github.com/QubesOS/qubes-issues/issues/4889 - version
- legacy
- legacy
- version
- improve release-upgrade
- improve release-upgrade
- improve release-upgrade
- improve release-upgrade
- improve release-upgrade
- improve release-upgrade
- improve release-upgrade
- forward port release-upgrade improvements
- renamed: usr/libexec/release-upgrade → usr/sbin/release-upgrade
- release-upgrade script: replace the apt functionality test package python-qt4 with nano siince python-qt4 installs too many packages, dependencies and nano is installed by default. Much faster test.
- port release upgrade script to bullseye
- whonix-welcome-page
- Whonix build script
- remove virtualbox-guest-dkms since deprecated in Debian (integrated into kernel)
- fasttrack
- .gpg → .asc
- Revert “build sources, Debian fasttrack: disable temporrily” This reverts commit 288323a86e2dc037b03e004c62ab3f8ce2b1f616.
- avoid build dependency on ftpsync (for rsync test script)
- VirtualBox builds: switch back to guest additions packages -
virtualbox-guest-utils
-virtualbox-guest-dkms
-virtualbox-guest-x11
(Previouslyvirtualbox-guest-additions-iso
.) - VirtualBox builds: temporarily download package
virtualbox
from Debiansid
until it becomes available from either Debianfasttrack
orvirtualbox.org
https://forums.whonix.org/t/challenges-installing-virtualbox/9984/6 - VirtualBox builds: accept both sources of VirtualBox packages - either package
virtualbox
(by Debian), or - packagevirtualbox-6.1
(by virtualbox.org) - build sources, Debian fasttrack: disable temporrily until https://salsa.debian.org/fasttrack-team/support/-/issues/24 is fixed
- help-steps/repo_download_chroot_script: fix for Debian bullseye update order of parameters passed toAPT
- disable download_virtualbox_packages_virtualbox_guest_additions_iso_from_debian_sid moving to Debian fasttrack version
- disable download_virtualbox_packages_virtualbox_org moving to Debian fasttrack version
- fasttrack
- fasttrack
- default whonix_build_auto_retry=“0” auto retry function error handler trap lacks variables such as variable APTGETOPT. Would miss out on security related APT configuration options: apt-get --error-on=any / -o APT::Update::Error-Mode=any
- add backports and fasttrack to build sources by default to support downloading VirtualBox from Debian fasttrack
- build dependencies for maintainers
- remove python from cowbuilder image since no longer required since apt-get-update wrapper is no longer required
- back to Tor version from packages.debian.org (instead of earlier deb.torproject.org) https://www.whonix.org/wiki/Dev/Tor https://forums.whonix.org/t/tor-integration-in-whonix/10593
- remove mmdebstrap copy from this source code no longer required version from Debian bullseye package is recent enough
- remove python from cowbuilder image since no longer required since apt-get-update wrapper is no longer required
python3.9
no longer required ingrml_packages
since apt --error-on=any obsoleted any need for a python based apt-get wrapper- replace no longer required
/usr/lib/security-misc/apt-get-wrapper
withapt-get --error-on=any
- replace no longer required
/usr/lib/security-misc/apt-get-wrapper
withapt-get --error-on=any
- anon-gw-base-files
- anon-meta-packages
- anon-ws-base-files
- binaries-freedom
- debug-misc
- grub-live
- dracut
- dracut
- fix, remove dracut
kernel_cmdline="rootovl"
since that is conditionally set in grub boot menu anyhow and otherwise the system would always boot into live mode - remove dracut
hostonly="yes"
since that’s Debian default anyhow - add dracut support Based on, and thanks to @friedrich12! https://github.com/friedrich12/dracut-grub-live https://forums.whonix.org/t/replacing-initramfs-tools-with-dracut/4487/10
- helper-scripts
- kicksecure-meta-packages
- install flatpak by default add flatpak kicksecure-recommended-cli https://forums.whonix.org/t/flatpak-as-a-software-source-flathub-as-a-source-of-software/8500 https://www.whonix.org/wiki/Install_Software#flatpak
- install extrepo by default add extrepo to kicksecure-recommended-cli https://forums.whonix.org/t/extrepo-safely-adding-repos/8539
- switch from lightdm to gdm3 because lightdm autologin is broken
- kicksecure-dependencies-system Depends: linux-initramfs-tool | dracut | initramfs-tools
- kicksecure-dependencies-system Depends: dracut | initramfs-tools | linux-initramfs-tool
- integrate kicksecure-dependencies-system https://forums.whonix.org/t/replacing-initramfs-tools-with-dracut/4487
- introduce kicksecure-dependencies-system https://forums.whonix.org/t/replacing-initramfs-tools-with-dracut/4487
- remove initramfs-tools from non-qubes-vm-enhancements-cli for dracut support
- introduce
kicksecure-qubes-cli
andkicksecure-qubes-gui
- monero-gui
- qubes-whonix
- sdwdate
- security-misc
- do not set kernel parameter
quiet loglevel=0
for recovery boot option for easier debugging - move grub quiet to separate config file /etc/default/grub.d/41_quiet.cfg
dracut
reproducible=yes
- Depends: libpam-modules-bin
- fix faillock implementation dovecot / ssh are exempted
- fix, add sshd to pam_service_exclusion_list to avoid faillock
- do not set kernel parameter
- systemcheck
- usability-misc
- vm-config-dist
- config-package-dev displace /etc/gdm3/daemon.conf
- enable gdm autologin
- add original /etc/gdm3/daemon.conf
- add gdm autologin
- add gdm autologin
- fix autologin
- fix autologin
- disable dracut module resume in VMs since it might break the boot process if build inside chroot
- vbox-guest-installer: recommend, migrate from VirtualBox guest addition ISO to VirtualBox guest addition packages https://www.whonix.org/wiki/VirtualBox/Guest_Additions#Migration_to_Guest_Additions_Packages
- whonix-legacy
- whonix-xfce-desktop-config
Full difference of all changes
https://github.com/Whonix/Whonix/compare/15.0.1.9.3-developers-only…16.0.2.7-developers-only