core-admin/qubes
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
..
ext Fix sending monitor layout info when xrandr has one output disconnected 2016-09-29 14:13:38 +02:00
qmemman qmemman: fix meminfo handling 2016-09-13 02:15:25 +02:00
storage storage: improve handling volume export 2016-09-29 01:59:54 +02:00
tests Paint the project green for testbench launch 2016-10-18 19:07:20 +02:00
tools Merge remote-tracking branch 'marmarek/core3-backup' into core3-devel 2016-10-14 15:29:37 +02:00
vm qubes/vm/net: add feature of hiding real IP from the VM 2016-10-31 02:06:01 +01:00
__init__.py qubes: fix resetting already default property 2016-09-08 04:17:58 +02:00
app.py Add possibility to override libvirt config 2016-10-04 11:31:31 +02:00
backup.py qubes/backup: misc fixes 2016-10-05 01:58:11 +02:00
config.py pylint fixes 2016-06-10 21:27:29 +02:00
core2migration.py Merge remote-tracking branch 'marmarek/core3-backup' into core3-devel 2016-10-14 15:29:37 +02:00
devices.py qubes/ext/pci: move PCI devices handling to an extension 2016-09-03 20:41:03 +02:00
dochelpers.py Make pylint happy 2016-10-11 13:42:37 +02:00
events.py Add catch-all '*' to event handlers 2016-09-28 21:28:43 +02:00
exc.py core3: add different exceptions 2015-10-17 00:17:12 +02:00
firewall.py Make pylint happy 2016-09-19 20:36:32 +02:00
log.py core/log: do not attach multiple handlers to the same logger 2016-03-03 01:18:15 +01:00
rngdoc.py qubes: pylint fixes (small mistakes and wrong names) 2015-06-29 17:39:27 +02:00
tarwriter.py qubes/tarwriter: add simple sparse-tar writer module 2016-10-05 01:54:41 +02:00
utils.py Add qubes.utils.random_string() 2016-08-03 02:57:40 +02:00