mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2025-08-03 20:24:15 -04:00
Delete deprecated content already migrated to Qubes-Community
https://github.com/QubesOS/qubes-issues/issues/4693
This commit is contained in:
parent
6a506edef0
commit
4fab877c22
50 changed files with 0 additions and 6198 deletions
|
@ -7,112 +7,3 @@ redirect_from:
|
|||
- /doc/randomizing-your-mac-address/
|
||||
---
|
||||
|
||||
Anonymizing your MAC Address
|
||||
============================
|
||||
|
||||
Although it is not the only metadata broadcast by network hardware, changing the default [MAC Address](https://en.wikipedia.org/wiki/MAC_address) of your hardware could be [an important step in protecting privacy](https://tails.boum.org/contribute/design/MAC_address/#index1h1).
|
||||
Currently, Qubes OS *does not* automatically "anonymize" or spoof the MAC Address, so unless this gets implemented by default you can randomize your MAC Address with the following guide.
|
||||
|
||||
|
||||
## Upgrading and configuring Network Manager in Qubes
|
||||
|
||||
Newer versions of Network Manager have options for randomizing MAC addresses, and can handle the entire process across reboots, sleep/wake cycles and different connection states.
|
||||
In particular, versions 1.4.2 and later should be well suited for Qubes. Qubes R4.0's default sys-net should have 1.8.2-4 by default.
|
||||
However, use of the NetworkManager GUI to set these options is **unreliable** - there are numerous reports of changes not being saved for particular cards or interfaces.
|
||||
You should check carefully that any settings you make in the GUI are saved, before relying on this method.
|
||||
If the settings are not saved, you can use the method described below using a config file.
|
||||
|
||||
|
||||
Network Manager 1.4.2 or later is available from the Fedora 25 repository as well as the Debian 10 repository.
|
||||
|
||||
Check that Network Manager version is now at least 1.4.2:
|
||||
|
||||
~~~
|
||||
$ sudo NetworkManager -V
|
||||
1.4.2
|
||||
~~~
|
||||
|
||||
## Randomize a single connection
|
||||
|
||||
Right click on the Network Manager icon of your NetVM in the tray and click 'Edit Connections..'.
|
||||
|
||||
Select the connection to randomize and click Edit.
|
||||
|
||||
Select the Cloned MAC Address drop down and set to Random or Stable.
|
||||
Stable will generate a random address that persists until reboot, while Random will generate an address each time a link goes up.
|
||||

|
||||
|
||||
Save the change and reconnect the connection (click on Network Manager tray icon and click disconnect under the connection, it should automatically reconnect).
|
||||
|
||||
## Randomize all Ethernet and Wifi connections
|
||||
|
||||
These steps should be done inside a template to be used to create a NetVM as it relies on creating a config file that would otherwise be deleted after a reboot due to the nature of AppVMs.
|
||||
|
||||
Write the settings to a new file in the `/etc/NetworkManager/conf.d/` directory, such as `00-macrandomize.conf`.
|
||||
The following example enables Wifi and Ethernet MAC address randomization while scanning (not connected), and uses a randomly generated but persistent MAC address for each individual Wifi and Ethernet connection profile.
|
||||
|
||||
~~~
|
||||
[device]
|
||||
wifi.scan-rand-mac-address=yes
|
||||
|
||||
[connection]
|
||||
wifi.cloned-mac-address=stable
|
||||
ethernet.cloned-mac-address=stable
|
||||
connection.stable-id=${CONNECTION}/${BOOT}
|
||||
~~~
|
||||
|
||||
* `stable` in combination with `${CONNECTION}/${BOOT}` generates a random address that persists until reboot.
|
||||
* `random` generates a random address each time a link goes up.
|
||||
|
||||
To see all the available configuration options, refer to the man page: `man nm-settings`
|
||||
|
||||
Next, create a new NetVM using the edited template and assign network devices to it.
|
||||
|
||||
Finally, shutdown all VMs and change the settings of sys-firewall, etc. to use the new NetVM.
|
||||
|
||||
You can check the MAC address currently in use by looking at the status pages of your router device(s), or inside the NetVM with the command `sudo ip link show`.
|
||||
|
||||
## Randomize your hostname
|
||||
|
||||
DHCP requests also leak your hostname to your LAN. Since your hostname is usually `sys-net`, other network users can easily spot that you're using Qubes OS.
|
||||
|
||||
Unfortunately `NetworkManager` currently doesn't provide an option to disable that leak globally ([Gnome Bug 768076](https://bugzilla.gnome.org/show_bug.cgi?id=768076)).
|
||||
|
||||
You may however use the following code to assign a random hostname to a VM during each of its startup. Please follow the instructions mentioned in the beginning to properly install it.
|
||||
|
||||
```.bash
|
||||
#!/bin/bash
|
||||
set -e -o pipefail
|
||||
#
|
||||
# Set a random hostname for a VM session.
|
||||
#
|
||||
# Instructions:
|
||||
# 1. This file must be placed and made executable (owner: root) inside the template VM of your network VM such that it will be run before your hostname is sent over a network.
|
||||
# In a Fedora template, use `/etc/NetworkManager/dispatcher.d/pre-up.d/00_hostname`.
|
||||
# In a Debian template, use `/etc/network/if-pre-up.d/00_hostname`.
|
||||
# 2. Execute `sudo touch /etc/hosts.lock` inside the template VM of your network VM.
|
||||
# 3. Execute inside your network VM:
|
||||
# `sudo bash -c 'mkdir -p /rw/config/protected-files.d/ && echo -e "/etc/hosts\n/etc/hostname" > /rw/config/protected-files.d/protect_hostname.txt'`
|
||||
|
||||
|
||||
#NOTE: mv is atomic on most systems
|
||||
if [ -f "/rw/config/protected-files.d/protect_hostname.txt" ] && rand="$RANDOM" && mv "/etc/hosts.lock" "/etc/hosts.lock.$rand" ; then
|
||||
name="PC-$rand"
|
||||
echo "$name" > /etc/hostname
|
||||
hostname "$name"
|
||||
#NOTE: NetworkManager may set it again after us based on DHCP or /etc/hostname, cf. `man NetworkManager.conf` @hostname-mode
|
||||
|
||||
#from /usr/lib/qubes/init/qubes-early-vm-config.sh
|
||||
if [ -e /etc/debian_version ]; then
|
||||
ipv4_localhost_re="127\.0\.1\.1"
|
||||
else
|
||||
ipv4_localhost_re="127\.0\.0\.1"
|
||||
fi
|
||||
sed -i "s/^\($ipv4_localhost_re\(\s.*\)*\s\).*$/\1${name}/" /etc/hosts
|
||||
sed -i "s/^\(::1\(\s.*\)*\s\).*$/\1${name}/" /etc/hosts
|
||||
fi
|
||||
exit 0
|
||||
```
|
||||
Assuming that you're using `sys-net` as your network VM, your `sys-net` hostname should now be `PC-[number]` with a different `[number]` each time your `sys-net` is started.
|
||||
|
||||
Please note that the above script should _not_ be added to [/rw/config/rc.local](/doc/config-files/)) as that is executed only _after_ the network fully started.
|
||||
|
|
59
external/privacy-guides/signal.md
vendored
59
external/privacy-guides/signal.md
vendored
|
@ -6,62 +6,3 @@ redirect_from:
|
|||
- /doc/signal/
|
||||
---
|
||||
|
||||
Signal
|
||||
======
|
||||
|
||||
What is [Signal]?
|
||||
|
||||
[According to Wikipedia:][signal-wikipedia]
|
||||
|
||||
> Signal is an encrypted instant messaging and voice calling application
|
||||
> for Android and iOS. It uses end-to-end encryption to secure all
|
||||
> communications to other Signal users. Signal can be used to send and receive
|
||||
> encrypted instant messages, group messages, attachments and media messages.
|
||||
> Users can independently verify the identity of their messaging correspondents
|
||||
> by comparing key fingerprints out-of-band. During calls, users can check the
|
||||
> integrity of the data channel by checking if two words match on both ends of
|
||||
> the call.
|
||||
>
|
||||
> Signal is developed by Open Whisper Systems. The clients are published as free
|
||||
> and open-source software under the GPLv3 license.
|
||||
|
||||
How to install Signal in Qubes
|
||||
------------------------------
|
||||
|
||||
**CAUTION:** Before proceeding, please carefully read [On Digital Signatures and Key Verification][qubes-verifying-signatures].
|
||||
This website cannot guarantee that any PGP key you download from the Internet is authentic.
|
||||
Always obtain a trusted key fingerprint via other channels, and always check any key you download against your trusted copy of the fingerprint.
|
||||
|
||||
1. (Optional)Create a TemplateVM (Debian, 9 is used as an example but feel free to use any more updated by changing the 9 to a 10, etc.)
|
||||
|
||||
[user@dom0 ~]$ sudo qubes-dom0-update qubes-template-debian-9
|
||||
|
||||
2. Open a terminal in Debian 9 (Or your previously chosen template)
|
||||
|
||||
[user@dom0 ~]$ qvm-run -a debian-9 gnome-terminal
|
||||
|
||||
3. Use these commands in your terminal (If you chose a different distribution, such as buster, substitute that for xenial in the 3rd command)
|
||||
|
||||
(Optional)[user@debian-8 ~]$ sudo apt-get install curl
|
||||
[user@debian-8 ~]$ curl -s -x 127.0.0.1:8082 https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -
|
||||
[user@debian-8 ~]$ echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list
|
||||
[user@debian-8 ~]$ sudo apt update && sudo apt install signal-desktop
|
||||
|
||||
5. Shutdown the TemplateVM (substitute your template name if needed) :
|
||||
|
||||
[user@dom0 ~]$ qvm-shutdown debian-9
|
||||
|
||||
6. Create an AppVM based on this TemplateVM
|
||||
7. With your mouse select the `Q` menu -> `Domain: "AppVM Name"` -> 'AppVM name: Qube Settings' -> OK -> 'Applications'
|
||||
(or `"AppVM Name": VM Settings` -> `Applications`).
|
||||
Select `Signal` from the left `Available` column, move it to the right `Selected` column by clicking the `>` button and then `OK` to apply the changes and close the window.
|
||||
|
||||
-----
|
||||
|
||||
[qubes-verifying-signatures]: /security/verifying-signatures/
|
||||
[Signal]: https://whispersystems.org/
|
||||
[signal-wikipedia]: https://en.wikipedia.org/wiki/Signal_(software)
|
||||
[shortcut]: https://support.whispersystems.org/hc/en-us/articles/216839277-Where-is-Signal-Desktop-on-my-computer-
|
||||
[shortcut-desktop]: /doc/managing-appvm-shortcuts/#tocAnchor-1-1-1
|
||||
[message]: https://groups.google.com/d/msg/qubes-users/rMMgeR-KLbU/XXOFri26BAAJ
|
||||
[mailing list]: /support/
|
||||
|
|
54
external/privacy-guides/tails.md
vendored
54
external/privacy-guides/tails.md
vendored
|
@ -7,57 +7,3 @@ redirect_from:
|
|||
- /doc/running-tails
|
||||
---
|
||||
|
||||
Running Tails in Qubes
|
||||
============================
|
||||
|
||||
[Tails](https://tails.boum.org) stands for The Amnesic Incognito Live System.
|
||||
It is a live operating system that aims to preserve your privacy and anonymity.
|
||||
Tails is intended to be booted off of a live CD and leave no trace on the computer it is run on, but using Tails this way requires the user to restart their computer every time they want to switch from their installed OS to Tails.
|
||||
Despite this, in case that method becomes cumbersome, Tails can be used inside virtualization software and Qubes.
|
||||
|
||||
To run Tails under Qubes:
|
||||
|
||||
1. Read about [creating and using HVM qubes](/doc/hvm/)
|
||||
|
||||
2. Download and verify Tails from [https://tails.boum.org](https://tails.boum.org) in a qube, (saved as `/home/user/Downloads/tails.iso` on qube "isoVM" for purposes of this guide).
|
||||
|
||||
3. Create a HVM
|
||||
|
||||
- In Manager, click "VM menu" and select "Create VM"
|
||||
- Name the new qube - "Tails"
|
||||
- Select "HVM"
|
||||
- Set "initial memory" and "max memory" as the same ([official documentation](https://tails.boum.org/doc/about/requirements/index.en.html) recommends at least 2048 MB)
|
||||
- Configure networking
|
||||
- Click "OK" to create new HVM.
|
||||
|
||||
4. Open dom0 Konsole and start Tails:
|
||||
|
||||
qvm-start Tails --cdrom=isoVM:/home/user/Downloads/tails.iso
|
||||
|
||||
5. Configure Tails at start up.
|
||||
|
||||
6. Once the Tails qube has started, configure networking in the qube.
|
||||
|
||||
- Check the IP address allocated to the qube - either from GUI Manager, or ```qvm-ls -n Tails``` in Konsole. (E.g. `10.137.1.101` with gateway `10.137.1.1`)
|
||||
- In the Tails qube, open systems menu in top-right corner. Select "Wired Settings", and change IPv4 configuration from "Automatic (DHCP)" to "Manual".
|
||||
- Enter the Address: `10.137.1.101` in our example.
|
||||
- Enter the Netmask: `255.255.255.0`
|
||||
- Enter the Gateway: `10.137.1.1` in our example.
|
||||
- Enter DNS: `10.137.1.1` in our example.
|
||||
- Click "Apply". You should now see "Connected".
|
||||
|
||||
7. Use Tails as normal.
|
||||
|
||||
## Security
|
||||
You will probably want to implement [MAC spoofing](/doc/anonymizing-your-mac-address/).
|
||||
|
||||
There are added security concerns for Tails users when running it in a virtual machine.
|
||||
If you intend to do this, you should read [the warnings](https://tails.boum.org/doc/advanced_topics/virtualization/) from the Tails team about it.
|
||||
While the Qubes security model mitigates most of the risks identified, traces of the Tails session may remain on the disk.
|
||||
Live booting Tails, though less convenient, is always more secure than using it inside virtualization software or Qubes, because you don't run the added risk of the virtualization software or Host OS being compromised.
|
||||
Depending on your threat model, this might induce too much risk.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
See the [Tails Troubleshooting guide](/doc/tails-troubleshooting/).
|
||||
|
||||
|
|
269
external/privacy-guides/torvm.md
vendored
269
external/privacy-guides/torvm.md
vendored
|
@ -11,272 +11,3 @@ redirect_from:
|
|||
- /wiki/UserDoc/TorVM/
|
||||
---
|
||||
|
||||
Known issues:
|
||||
-------------
|
||||
|
||||
- [Service doesn't start without (even empty) user torrc](https://groups.google.com/d/msg/qubes-users/fyBVmxIpbSs/R5mxUcIEZAQJ)
|
||||
|
||||
Qubes TorVM (qubes-tor)
|
||||
==========================
|
||||
|
||||
Qubes TorVM is a deprecated ProxyVM service that provides torified networking to
|
||||
all its clients. **If you are interested in TorVM, you will find the
|
||||
[Whonix implementation in Qubes](/doc/privacy/whonix/) a
|
||||
more usable and robust solution for creating a torifying traffic proxy.**
|
||||
|
||||
By default, any AppVM using the TorVM as its NetVM will be fully torified, so
|
||||
even applications that are not Tor aware will be unable to access the outside
|
||||
network directly.
|
||||
|
||||
Moreover, AppVMs running behind a TorVM are not able to access globally
|
||||
identifying information (IP address and MAC address).
|
||||
|
||||
Due to the nature of the Tor network, only IPv4 TCP and DNS traffic is allowed.
|
||||
All non-DNS UDP and IPv6 traffic is silently dropped.
|
||||
|
||||
See [this article](https://blog.invisiblethings.org/2011/09/28/playing-with-qubes-networking-for-fun.html) for a description of the concept, architecture, and the original implementation.
|
||||
|
||||
## Warning + Disclaimer
|
||||
|
||||
1. Qubes TorVM is produced independently from the Tor(R) anonymity software and
|
||||
carries no guarantee from The Tor Project about quality, suitability or
|
||||
anything else.
|
||||
|
||||
2. Qubes TorVM is not a magic anonymizing solution. Protecting your identity
|
||||
requires a change in behavior. Read the "Protecting Anonymity" section
|
||||
below.
|
||||
|
||||
3. Traffic originating from the TorVM itself **IS NOT** routed through Tor.
|
||||
This includes system updates to the TorVM. Only traffic from VMs using TorVM
|
||||
as their NetVM is torified.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
|
||||
0. *(Optional)* If you want to use a separate vm template for your TorVM
|
||||
|
||||
qvm-clone fedora-23 fedora-23-tor
|
||||
|
||||
1. In dom0, create a proxy vm and disable unnecessary services and enable qubes-tor
|
||||
|
||||
|
||||
qvm-create -p torvm
|
||||
qvm-service torvm -d qubes-netwatcher
|
||||
qvm-service torvm -d qubes-firewall
|
||||
qvm-service torvm -e qubes-tor
|
||||
|
||||
# if you created a new template in the previous step
|
||||
qvm-prefs torvm -s template fedora-23-tor
|
||||
|
||||
2. From your TemplateVM, install the torproject Fedora repo
|
||||
|
||||
sudo yum install qubes-tor-repo
|
||||
|
||||
3. Then, in the template, install the TorVM init scripts
|
||||
|
||||
sudo yum install qubes-tor
|
||||
|
||||
5. Configure an AppVM to use TorVM as its NetVM (for example a vm named anon-web)
|
||||
|
||||
qvm-prefs -s anon-web netvm torvm
|
||||
... repeat for any other AppVMs you want torified...
|
||||
|
||||
6. Shutdown the TemplateVM.
|
||||
7. Set the prefs of your TorVM to use the default sys-net or sys-firewall as its NetVM
|
||||
|
||||
qvm-prefs -s torvm netvm sys-net
|
||||
|
||||
8. Start the TorVM and any AppVM you have configured to be route through the TorVM
|
||||
9. From the AppVMs, verify torified connectivity, e.g. by visiting
|
||||
`https://check.torproject.org`.
|
||||
|
||||
|
||||
### Troubleshooting ###
|
||||
|
||||
|
||||
1. Check if the qubes-tor service is running (on the torvm)
|
||||
|
||||
[user@torvm] $ sudo service qubes-tor status
|
||||
|
||||
2. Tor logs to syslog, so to view messages use
|
||||
|
||||
[user@torvm] $ sudo grep Tor /var/log/messages
|
||||
|
||||
3. Restart the qubes-tor service (and repeat 1-2)
|
||||
|
||||
[user@torvm] $ sudo service qubes-tor restart
|
||||
|
||||
4. You may need to manually create the private data directory and set its permissions:
|
||||
|
||||
[user@torvm] $ sudo mkdir /rw/usrlocal/lib/qubes-tor
|
||||
[user@torvm] $ sudo chown user:user /rw/usrlocal/lib/qubes-tor
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Applications should "just work" behind a TorVM, however there are some steps
|
||||
you can take to protect anonymity and increase performance.
|
||||
|
||||
## Protecting Anonymity
|
||||
|
||||
The TorVM only purports to prevent the leaking of two identifiers:
|
||||
|
||||
1. WAN IP Address
|
||||
2. NIC MAC Address
|
||||
|
||||
This is accomplished through transparent TCP and transparent DNS proxying by
|
||||
the TorVM.
|
||||
|
||||
The TorVM cannot anonymize information stored or transmitted from your AppVMs
|
||||
behind the TorVM.
|
||||
|
||||
*Non-comprehensive* list of identifiers TorVM does not protect:
|
||||
|
||||
* Time zone
|
||||
* User names and real name
|
||||
* Name+version of any client (e.g. IRC leaks name+version through CTCP)
|
||||
* Metadata in files (e.g., exif data in images, author name in PDFs)
|
||||
* License keys of non-free software
|
||||
|
||||
### Further Reading
|
||||
|
||||
* [Information on protocol leaks](https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO#Protocolleaks)
|
||||
* [Official Tor Usage Warning](https://www.torproject.org/download/download-easy.html.en#warning)
|
||||
* [Tor Browser Design](https://www.torproject.org/projects/torbrowser/design/)
|
||||
|
||||
## How to use Tor Browser behind TorVM
|
||||
|
||||
1. In a clean VM, [download Tor Browser from the Tor Project][tor-browser].
|
||||
2. [Verify the PGP signature][tor-verify-sig].
|
||||
3. Copy/move the Tor Browser archive into your AnonVM (i.e., the AppVM which has your TorVM as its netvm).
|
||||
4. Unpack the Tor Browser archive into your home directory.
|
||||
5. In dom0, right click the KDE Application Launcher Menu (AKA "Start Menu") and left click "Edit Applications..."
|
||||
6. In the KDE Menu Editor, find your AnonVM's group and create a new item (or make a copy of an existing item).
|
||||
7. Edit the following fields on the "General" tab:
|
||||
* Name: `my-new-anonvm: Tor Browser`
|
||||
* Command: `qvm-run -q --tray -a my-new-anonvm 'TOR_SKIP_LAUNCH=1 TOR_SKIP_CONTROLPORTTEST=1 TOR_SOCKS_PORT=9050 TOR_SOCKS_HOST=1.2.3.4 ./tor-browser_en-US/Browser/start-tor-browser'`
|
||||
* Replace `my-new-anonvm` with the name of your AnonVM.
|
||||
* Replace `1.2.3.4` with your TorVM's internal Qubes IP address, which can be viewed in Qubes VM Manager by clicking "View" --> "IP" or by running `qvm-ls -n` in dom0.
|
||||
* Replace `en-US` with your locale ID, if different.
|
||||
8. Click "Save" in the KDE Menu Editor.
|
||||
|
||||
Tor Browser should now work correctly in your AnonVM when launched via the shortcut you just created.
|
||||
|
||||
**Note:** If you want to use Tor Browser in a [DispVM][dispvm], the steps are the same as above, except you should copy the Tor Browser directory into your DVM template, [regenerate the DVM template][dispvm-customization], then use the following command in your KDE menu entry:
|
||||
|
||||
`sh -c 'echo TOR_SKIP_LAUNCH=1 TOR_SKIP_CONTROLPORTTEST=1 TOR_SOCKS_PORT=9050 TOR_SOCKS_HOST=1.2.3.4 ./tor-browser_en-US/Browser/start-tor-browser | /usr/lib/qubes/qfile-daemon-dvm qubes.VMShell dom0 DEFAULT red'`
|
||||
|
||||
(Replace `1.2.3.4` and `en-US` as indicated above.)
|
||||
|
||||
## Performance
|
||||
|
||||
In order to mitigate identity correlation TorVM makes use of Tor's new [stream
|
||||
isolation feature][stream-isolation]. Read "Threat Model" below for more
|
||||
information.
|
||||
|
||||
However, this isn't desirable in all situations, particularly web browsing.
|
||||
These days loading a single web page requires fetching resources (images,
|
||||
javascript, css) from a dozen or more remote sources. Moreover, the use of
|
||||
IsolateDestAddr in a modern web browser may create very uncommon HTTP behavior
|
||||
patterns, that could ease fingerprinting.
|
||||
|
||||
Additionally, you might have some apps that you want to ensure always share a
|
||||
Tor circuit or always get their own.
|
||||
|
||||
For these reasons TorVM ships with two open SOCKS5 ports that provide Tor
|
||||
access with different stream isolation settings:
|
||||
|
||||
* Port 9050 - Isolates by SOCKS Auth and client address only
|
||||
Each AppVM gets its own circuit, and each app using a unique SOCKS
|
||||
user/pass gets its own circuit
|
||||
* Port 9049 - Isolates client + destination port, address, and by SOCKS Auth
|
||||
Same as default settings listed above, but additionally traffic
|
||||
is isolated based on destination port and destination address.
|
||||
|
||||
|
||||
## Custom Tor Configuration
|
||||
|
||||
Default tor settings are found in the following file and are the same across
|
||||
all TorVMs.
|
||||
|
||||
/usr/lib/qubes-tor/torrc
|
||||
|
||||
You can override these settings in your TorVM, or provide your own custom
|
||||
settings by appending them to:
|
||||
|
||||
/rw/config/qubes-tor/torrc
|
||||
|
||||
For information on tor configuration settings `man tor`
|
||||
|
||||
Threat Model
|
||||
============
|
||||
|
||||
TorVM assumes the same Adversary Model as [TorBrowser][tor-threats], but does
|
||||
not, by itself, have the same security and privacy requirements.
|
||||
|
||||
## Proxy Obedience
|
||||
|
||||
The primary security requirement of TorVM is *Proxy Obedience*.
|
||||
|
||||
Client AppVMs MUST NOT bypass the Tor network and access the local physical
|
||||
network, internal Qubes network, or the external physical network.
|
||||
|
||||
Proxy Obedience is assured through the following:
|
||||
|
||||
1. All TCP traffic from client VMs is routed through Tor
|
||||
2. All DNS traffic from client VMs is routed through Tor
|
||||
3. All non-DNS UDP traffic from client VMs is dropped
|
||||
4. Reliance on the [Qubes OS network model][qubes-net] to enforce isolation
|
||||
|
||||
## Mitigate Identity Correlation
|
||||
|
||||
TorVM SHOULD prevent identity correlation among network services.
|
||||
|
||||
Without stream isolation, all traffic from different activities or "identities"
|
||||
in different applications (e.g., web browser, IRC, email) end up being routed
|
||||
through the same tor circuit. An adversary could correlate this activity to a
|
||||
single pseudonym.
|
||||
|
||||
TorVM uses the default stream isolation settings for transparently torified
|
||||
traffic. While more paranoid options are available, they are not enabled by
|
||||
default because they decrease performance and in most cases don't help
|
||||
anonymity (see [this tor-talk thread][stream-isolation-explained])
|
||||
|
||||
By default TorVM does not use the most paranoid stream isolation settings for
|
||||
transparently torified traffic due to performance concerns. By default TorVM
|
||||
ensures that each AppVM will use a separate tor circuit (`IsolateClientAddr`).
|
||||
|
||||
For more paranoid use cases the SOCKS proxy port 9049 is provided that has all
|
||||
stream isolation options enabled. User applications will require manual
|
||||
configuration to use this socks port.
|
||||
|
||||
|
||||
Future Work
|
||||
===========
|
||||
* Integrate Vidalia
|
||||
* Create Tor Browser packages w/out bundled tor
|
||||
* Use local DNS cache to speedup queries (pdnsd)
|
||||
* Support arbitrary [DNS queries][dns]
|
||||
* Fix Tor's openssl complaint
|
||||
* Support custom firewall rules (to support running a relay)
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
|
||||
Qubes TorVM is inspired by much of the previous work done in this area of
|
||||
transparent torified solutions. Notably the following:
|
||||
|
||||
* [Patrick Schleizer](mailto:adrelanos@riseup.net) for his work on [Whonix](https://www.whonix.org)
|
||||
* The [Tor Project wiki](https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO)
|
||||
* And the many people who contributed to discussions on [tor-talk](https://lists.torproject.org/pipermail/tor-talk/)
|
||||
|
||||
[stream-isolation]: https://gitweb.torproject.org/torspec.git/blob/HEAD:/proposals/171-separate-streams.txt
|
||||
[stream-isolation-explained]: https://lists.torproject.org/pipermail/tor-talk/2012-May/024403.html
|
||||
[tor-threats]: https://www.torproject.org/projects/torbrowser/design/#adversary
|
||||
[qubes-net]: /doc/QubesNet/
|
||||
[dns]: https://tails.boum.org/todo/support_arbitrary_dns_queries/
|
||||
[tor-browser]: https://www.torproject.org/download/download-easy.html
|
||||
[tor-verify-sig]: https://www.torproject.org/docs/verifying-signatures.html
|
||||
[dispvm]: /doc/DisposableVms/
|
||||
[dispvm-customization]: /doc/UserDoc/DispVMCustomization/
|
||||
|
|
38
external/privacy-guides/whonix.md
vendored
38
external/privacy-guides/whonix.md
vendored
|
@ -19,41 +19,3 @@ redirect_from:
|
|||
- /doc/privacy/updating-whonix/
|
||||
---
|
||||
|
||||
Whonix for Privacy & Anonymity
|
||||
==============================
|
||||
|
||||
To improve your privacy and anonymity on the internet, you can install the
|
||||
Whonix Template on your Qubes machine.
|
||||
|
||||
[Whonix](https://www.whonix.org) is based on [Debian](https://www.debian.org)
|
||||
and [Tor](https://www.torproject.org) and utilizes two VMs, a **"gateway"** and
|
||||
a **"workstation"**. Qubes security architecture makes use of Whonix's isolation
|
||||
by using the gateway as a ProxyVM to route all network traffic through Tor,
|
||||
while the workstation is used for making AppVMs.
|
||||
|
||||
Whonix in Qubes replaces the deprecated [TorVM](/doc/torvm) service used in earlier
|
||||
versions of Qubes.
|
||||
|
||||
*The following pages are written by the Whonix developers and are located on their website.*
|
||||
|
||||
## Getting Started with Whonix
|
||||
|
||||
Note: To install Whonix in Qubes, you must [install Qubes](/doc/installation-guide/) first.
|
||||
|
||||
* [Installing Whonix in Qubes](https://www.whonix.org/wiki/Qubes/Install)
|
||||
* [Updating Whonix in Qubes](https://www.whonix.org/wiki/Qubes/Update)
|
||||
* [Uninstalling Whonix from Qubes](https://www.whonix.org/wiki/Qubes/Uninstall)
|
||||
|
||||
## Configuring Whonix
|
||||
|
||||
* [Using Whonix with DisposableVMs](https://www.whonix.org/wiki/Qubes/Disposable_VM)
|
||||
* [Post-Installation Security Advice](https://www.whonix.org/wiki/Post_Install_Advice)
|
||||
* [How to set up Tor Bridges in Whonix on Qubes](https://www.whonix.org/wiki/Bridges)
|
||||
* [Using Multiple Whonix-Workstations with Whonix on Qubes](https://www.whonix.org/wiki/Multiple_Whonix-Workstations#Qubes-Whonix)
|
||||
* [How to use Corridor (a Tor traffic whitelisting gateway) with Whonix](https://www.whonix.org/wiki/Corridor)
|
||||
|
||||
## Support for Whonix
|
||||
|
||||
* [Whonix Support](https://www.whonix.org/wiki/Support) - General Whonix, Debian, Tor, etc... related issues
|
||||
* [Whonix Qubes Forum](https://forums.whonix.org/c/qubes) - Whonix specific issues
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue