Go to file
Marek Marczykowski-Górecki 2c6c476410
qubes/vm/net: add feature of hiding real IP from the VM
This helps hiding VM IP for anonymous VMs (Whonix) even when some
application leak it. VM will know only some fake IP, which should be set
to something as common as possible.
The feature is mostly implemented at (Proxy)VM side using NAT in
separate network namespace. Core here is only passing arguments to it.
It is designed the way that multiple VMs can use the same IP and still
do not interfere with each other. Even more: it is possible to address
each of them (using their "native" IP), even when multiple of them share
the same "fake" IP.

Original approach (marmarek/old-qubes-core-admin#2) used network script
arguments by appending them to script name, but libxl in Xen >= 4.6
fixed that side effect and it isn't possible anymore. So use QubesDB
instead.

From user POV, this adds 3 "features":
 - net/fake-ip - IP address visible in the VM
 - net/fake-gateway - default gateway in the VM
 - net/fake-netmask - network mask
The feature is enabled if net/fake-ip is set (to some IP address) and is
different than VM native IP. All of those "features" can be set on
template, to affect all of VMs.
Firewall rules etc in (Proxy)VM should still be applied to VM "native"
IP.

Fixes QubesOS/qubes-issues#1143
2016-10-31 02:06:01 +01:00
ci Extend ci/pylintrc 2016-06-23 13:16:10 +02:00
contrib contrib: import-graph creates smaller, more readable graph 2016-04-27 17:51:18 +02:00
core Merge remote-tracking branch 'origin/master' into core3-devel 2016-08-08 00:11:46 +02:00
core-modules Merge remote-tracking branch 'origin/master' into core3-devel 2016-08-08 00:11:46 +02:00
dispvm dispvm: error out on saved-cows.tar creation error 2016-08-07 00:41:59 +02:00
doc Merge remote-tracking branch 'marmarek/core3-backup' into core3-devel 2016-10-14 15:29:37 +02:00
etc Replace pool config parsing logic 2016-04-25 07:16:37 +02:00
linux block-snapshot: set qubes.xml path for test VMs 2016-08-09 05:14:11 +02:00
qubes qubes/vm/net: add feature of hiding real IP from the VM 2016-10-31 02:06:01 +01:00
qubes-rpc qubes/tools/qvm-features: add tool for managing qvm-features 2016-05-19 03:02:24 +02:00
qubes-rpc-policy Merge branch 'master' into core3-devel 2016-06-13 19:03:46 +02:00
qvm-tools Merge remote-tracking branch 'origin/master' into core3-devel 2016-08-08 00:11:46 +02:00
relaxng qubes: new devices API 2016-09-03 20:40:39 +02:00
rpm_spec qubes/tarwriter: add simple sparse-tar writer module 2016-10-05 01:54:41 +02:00
templates Add possibility to override libvirt config 2016-10-04 11:31:31 +02:00
test-packages test-packages/dbus: add SystemBus 2016-06-10 21:27:29 +02:00
tests tests: port vm_qrexec_gui to core3 API 2016-08-17 22:41:57 +02:00
.coveragerc add config for coverage.py 2015-10-12 16:40:46 +02:00
.gitignore run-tests: Script for running tests in repo 2016-04-20 13:54:56 +02:00
.pylintrc Remove obsolete options from .pylintrc 2016-07-21 12:21:00 +02:00
.travis.yml Revert "Travis add python-lvm2 dependency" 2016-08-04 17:46:41 +02:00
installer.wxs windows/installer: configurable destination directory 2014-11-19 12:50:31 +01:00
LICENSE Added LICENSE 2010-04-05 21:21:27 +02:00
Makefile qubes/tools: allow calling qvm-device as qvm-devclass (like qvm-pci) 2016-09-03 20:41:05 +02:00
Makefile.builder windows: installer 2014-11-19 12:50:30 +01:00
README.md README: add travis button 2016-06-16 17:39:38 +02:00
run-tests travis-ci config file 2016-06-10 21:27:26 +02:00
setup.cfg Add yapf configuration to setup.cfg 2016-07-21 12:11:34 +02:00
setup.py qubes/ext/pci: move PCI devices handling to an extension 2016-09-03 20:41:03 +02:00
version version 3.2.8 2016-08-07 16:11:49 +02:00

Qubes core, version 3

Build Status

This is development branch of the Qubes OS core. This branch is subject to rebase without warning until further notice.

API documentation is available: https://qubes-core-admin.readthedocs.org/en/latest/.