VMware

From Whonix
Jump to navigation Jump to search

Using Whonix with VMware?

Introduction[edit]

non-freedom

See Avoid non-freedom software.

Related: Whonix Policy On Non-Freedom Software

At the time of writing, the VMware Workstation Playerarchive.org software package can be downloaded free of charge for x64 computers running Windows or Linux. The VMware vSphere Hypervisor provides a local virtualization solution for running a second, isolated operating system on a single computer, although it has less features than the commercial VMware Workstation product; see herearchive.org for a full description of supported platforms, version history and features. A community websitearchive.org is also available for discussing and resolving issues that are encountered.

Lead Whonix developer, Patrick Schleizer, has expressed serious reservations about VMware:

  • In comparison to Free Softwarearchive.org, VMware is not very open and transparency is critical for security.
  • Users of the free VMware Workstation Player are apparently unable to submit bug reports in contrast to users of commercial products.
  • There is no known list of open bugs which means it is difficult to determine VMware's suitability for Whonix, such as potential threats to anonymity.
  • Attempted bug reports go entirely unanswered, meaning there is little motivation to investigate issues, make contributions, or submit further bug reports.
  • Free VMware products only have community support and not premium support.

VMware Whonix Support Status[edit]

VMware warning:

Unofficial Supported VMware Products[edit]

Table: Unofficial Supported VMware Products

Product Functionality
VMware Workstation Previous tests of VMware Workstation were found to be in a working state. Please note it is rarely tested.
VMware ESX(i) Up to version 6.0, VMWare ESX(i) was tested and functional.
VMware Server VMware Server and all other products are untested, but are most likely functional.
VMware Player VMware Player was previously tested by an anonymous user and found to be functional. although this has not been confirmed by Whonix developers. Note that the internal network setup can sometimes be difficult; refer to How to create multiple networks on VMware Playerarchive.org for further instructions.

How-to: Run Whonix using VMware[edit]

Info

VMware Workstation[edit]

Importing Appliances[edit]

  1. Either import the Download version or manually build from source.
  2. Import Whonix-Gateway.ova and Whonix-Workstation.ova.
  3. Due to an upstream VMware bug, it might be necessary to press retry when importing the .ova images (to relax the importing requirements).

Network Setup[edit]

1. Connect the virtual network adapter to custom.

This is important! Do not use host-only, NAT or bridging for the virtual network adapter! For example, in testing the vmnet9 virtual network was configured because it was not used by anything else.

2. Adjust the adapter settings.

  • Whonix-Gateway: set network adapter 2 to custom/dev/vmnet8 (or on Windows probably: vmnet9)
  • Whonix-Workstation set network adapter 1 to custom/dev/vmnet8 (or on Windows probably: vmnet9)

Note: if vmnetX -- for example vmnet8 -- is already in use by the NAT adapter, do not re-use it for the custom adapter. In that case, utilize something else like vmnet9.

3. Adjust time settings.

Due to an upstream VMware bug, the VM time is not set to UTC. Manually make this change, otherwise Tor connections might fail.

VMware ESX(i)[edit]

Simply importing the .ova templates will not work because ESX(i) will not recognize the hardware family. Existing workarounds include using VMware Workstation or extracting the .ova and then editing the .ovf files.

Importing Virtual Disk Files[edit]

One method of running Whonix on ESXi is to extract the .vmdk (VM virtual disk) files; one example can be found herearchive.org.

To import the appliances:

  1. Create two virtual machines in ESX(i) with default settings -- do not create a virtual disk for them.
  2. Import Whonix-Gateway.ova and Whonix-Workstation.ova in VirtualBox (this is not a typo!). The setting Import as VDI under "Advanced" is check by default, you must uncheck it..[1]
  3. Once both are imported, retrieve the .vmdk disk files from their physical location on the disk (VirtualBox extracts them from the .ova).
  4. Upload both disk files to the datastore that is being used in ESX(i).
  5. Attach the disk files to the appropriate virtual machines.

Network Setup[edit]

Warning: Double check the vSwitch logic in the following setup!

  1. Ensure Whonix-Gateway has two network adapters configured as a virtual machine, while Whonix-Workstation only has one.
  2. Attach the first Whonix-Gateway network adapter to the outside network vSwitch (this can be WAN, LAN, DMZ etc.)
  3. Attach the second Whonix-Gateway network adapter to an isolated vSwitch. Preferably create a new vSwitch which will only be used by Whonix-Gateway and Whonix-Workstation. Note: Do not attach physical NICs to this vSwitch! Ensure a new vSwitch is created and not simply a new portgroup. Promiscuous mode within a vSwitch might jeopardize anonymity.
  4. Attach the Whonix-Workstation network adapter to the isolated vSwitch from the previous step.
  5. Boot the machines and check online connectivity has been established.

Alternate Workflow[edit]

Info These instructions are unfinished.

If you prefer building from source or the previous instructions did not work, the following method was successfully tested with Whonix 14.0.0.9.9 and ESX(i) 6.7.

Build Images[edit]

1. Using a 64-bit Linux machine, build both Whonix-Gateway and Whonix-Workstation with the --target raw instruction.

Example build phrase:
sudo ./build_whonix --flavor whonix-gateway-cli --vmsize 20G --target raw --build

2. Use qemu-img to convert the raw images to vmdk.

Example:
qemu-img convert image.raw image.vmdk

3. Move or copy the .vmdk disks to a data store on ESX(i).

Example:
scp

Create VMs[edit]

1. From ESX(i), create a new virtual switch for internal traffic.

Important: Delete the uplink by clicking the x! Create a new port group for internal traffic using the virtual switch that was just created.

2. Create a new virtual machine named Whonix-Workstation.

Guest Linux Debian 10 64-bitone network interface (change network to internal switch/portgroup)delete diskadd existing diskselect vmdk created for workstationexpand dropdown and select IDE controller.

Then boot the machine.

3. Create a new virtual machine named Whonix-Gateway.

Guest Linux Debian 10 64-bittwo network interfaces (leave first one default, add second and change to internal switch)delete diskadd existing diskselect .vmdk created for gatewayexpand dropdown and select IDE controller.

Then boot the machine.

Note: This machine will have no WAN access unless a static route is added or eth0 is modified to DHCP.

Using VMWare Workstation as an Intermediary[edit]

If VMware Workstation is available, the following method works without manual extraction and repacking:

  1. Import both VMs to VMware Workstation.
  2. Check all settings are properly applied as per the guide above.
  3. Either export the VMs to .ovf and import them on the ESX(i) server, or if the server is connected to the Workstation instance, migrate via VMware Workstation. This generally works out of the box, although the networking should be reviewed and isolated as per the guide above.

VMware Hardening[edit]

In addition to the steps outlined below, also refer to the System Hardening Checklist and the Essential Security Guide and Advanced Security Guide Documentation entries.

General[edit]

The following measures are recommended for improved security:

  • remove printer
  • disable 3D acceleration
  • remove CD/DVD drive
  • remove Floppy drive
  • remove USB controller (or at least disable the automatic connection of new devices)
  • remove sound card
  • do not install VMware Tools or open-vm-tools -- trading security for convenience is unrecommended because VMware Tools leak information to the host operating system or hypervisor.

Additional Security[edit]

Some users might wish to access the Whonix-Workstation via SSH and therefore consider adding a second network adapter with Host-Only Networkingarchive.org. Be cautious of this configuration because it can cause information leakage:

If you install the proper routing or proxy software on your host computer, you can establish a connection between the host virtual Ethernet adapter and a physical network adapter on the host computer. This allows you, for example, to connect the virtual machine to a Token Ring or other non-Ethernet network.

On a Windows 2000, Windows XP or Windows Server 2003 host computer, you can use host-only networking in combination with the Internet connection sharing feature in Windows to allow a virtual machine to use the host's dial-up networking adapter or other connection to the Internet. See your Windows documentation for details on configuring Internet connection sharing.

VMware Upstream Bug Reports[edit]

Feasibility of a Whonix VMware Port[edit]

Would it be doable in theory for other developers to software fork Whonix and provide a Whonix VMware port and how difficult would that be?

In short: Yes, very doable.

See Virtualization Platforms chapter Other Virtualization Platforms.

Footnotes[edit]

  1. Alternatively it might work to extract the .ova archive.

We believe security software like Whonix needs to remain open source and independent. Would you help sustain and grow the project? Learn more about our 12 year success story and maybe DONATE!