Ho iniziato recentemente a utilizzare il sistema operativo Qubes e voglio configurare un IDS e un IPS virtuali in VM separate, ma non riesco a capire come funzionano le comunicazioni tra diverse VM.
Ogni VM dovrebbe essere isolata e tutte le connessioni gestite da un FirewallWM separato (sys-firewall), che è connesso al NetWM (sys-net), che, nella configurazione di base, è l'unico che ha Dispositivo di rete allegato (schede Ethernet e WiFi).
Ho letto iptables
in tutte le macchine virtuali e ho trovato che VM Manager imposta automaticamente un reindirizzamento DNAT per consentire l'uscita dei pacchetti DNS (porta 53) tramite sys-net, ma non riesco a capire come tutti i pacchetti possono attraversare ogni livello e tornare alle diverse origini originali AppVM connesso tramite sys-firewall .
Per quanto riguarda IDS e IPS, posso facilmente gestire e filtrare i pacchetti in base al contenuto, ma non riesco a pensare a come filtrare. Ad esempio, Source IP basato su una lista nera, poiché non riesco a vedere la vera origine e poiché ogni VM è un sistema separato che può essere basato su modelli differenti (Fedora, Debian, Whonix, ...). Penso che le Opzioni pacchetto possano essere modificate.
Quindi, iptables
e audit come Psad
possono essere inseriti solo nella VM direttamente connessa al Router?
Alcune informazioni di base
- Qubes OS è un sistema basato sull'isolamento tramite la tecnologia di virtualizzazione dell'hardware che consente di eseguire diversi domini (personali, di lavoro, non attendibili, ...) basati su diversi sistemi (modelli) su macchine virtuali e ciascuna istanza è completamente separata dalle altre, in modo che se uno viene compromesso, il sistema rimane pulito e completamente utilizzabile
- Puoi scegliere quali dispositivi collegare a una macchina virtuale e staccare da essa, quindi nella configurazione standard e intelligente hai una macchina sys-net che è l'unica che può connettersi a Internet (Ethernet / WiFi collegato) e un sistema -la macchina firewall che gestisce tutte le connessioni e passa attraverso sys-net, quindi hai 2 livelli (puoi aggiungere più) di isolamento per gli altri domini (ad esempio PublicWiFi - > sys-firewall - > sys-net, Trusted - > sys-firewall - > sys-net)
Pubblicherò le uscite sys-firewall e sys-net
ifconfig
e iptables-save
, per darti tutti i dettagli.
Dettagli VM:
me | updbl | type | netvm | ip | ip back | gateway/DNS |
----------------+-------+-------+---------------+-------------+------------+-------------+
{dom0} | Yes | Admin | n/a | 10.137.0.2 | 10.137.0.1 | n/a |
{sys-net} | | Net | n/a | None | 10.137.1.1 | n/a |
{sys-firewall} | | Proxy | sys-net | 10.137.1.8 | 10.137.2.1 | 10.137.1.1 |
{sys-whonix} | | Proxy | sys-firewall | 10.137.2.10 | 10.137.3.1 | 10.137.2.1 |
{sys-usb} | | Net | n/a | None | 10.137.4.1 | n/a |
[fedora-23] | Yes | Tpl | *sys-firewall | 10.137.2.3 | n/a | 10.137.2.1 |
untrusted | | | *sys-firewall | 10.137.2.9 | n/a | 10.137.2.1 |
[debian-8] | Yes | Tpl | sys-firewall | 10.137.2.4 | n/a | 10.137.2.1 |
personal | | | - | None | n/a | n/a |
[whonix-gw] | Yes | Tpl | sys-whonix | 10.137.3.5 | n/a | 10.137.3.1 |
[whonix-ws] | Yes | Tpl | sys-whonix | 10.137.3.6 | n/a | 10.137.3.1 |
anon-whonix | | | sys-whonix | 10.137.3.11 | n/a | 10.137.3.1 |
sys-firewall iptables:
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:PR-QBS - [0:0]
:PR-QBS-SERVICES - [0:0]
-A PREROUTING -j PR-QBS
-A PREROUTING -j PR-QBS-SERVICES
-A POSTROUTING -o vif+ -j ACCEPT
-A POSTROUTING -o lo -j ACCEPT
-A POSTROUTING -j MASQUERADE
-A PR-QBS -d 10.137.2.1/32 -p udp -m udp --dport 53 -j DNAT --to-destination 10.137.1.1
-A PR-QBS -d 10.137.2.1/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination 10.137.1.1
-A PR-QBS -d 10.137.2.254/32 -p udp -m udp --dport 53 -j DNAT --to-destination 10.137.1.254
-A PR-QBS -d 10.137.2.254/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination 10.137.1.254
sys-firewall ifconfig:
eth0 Link encap:Ethernet HWaddr 00:16:3e:5e:6c:06
inet addr:10.137.1.8 Bcast:10.255.255.255 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:N errors:0 dropped:0 overruns:0 frame:0
TX packets:N errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:N errors:0 dropped:0 overruns:0 frame:0
TX packets:N errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
sys-net iptables:
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:PR-QBS - [0:0]
:PR-QBS-SERVICES - [0:0]
-A PREROUTING -j PR-QBS
-A PREROUTING -j PR-QBS-SERVICES
-A POSTROUTING -o vif+ -j ACCEPT
-A POSTROUTING -o lo -j ACCEPT
-A POSTROUTING -j MASQUERADE
-A PR-QBS -d 10.137.1.1/32 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.1.1
-A PR-QBS -d 10.137.1.1/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination 192.168.1.1
-A PR-QBS-SERVICES -d 10.137.255.254/32 -i vif+ -p tcp -m tcp --dport 8082 -j REDIRECT
sys-net ifconfig:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets N bytes N
RX errors 0 dropped 0 overruns 0 frame 0
TX packets N bytes N
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vif62.0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.137.1.1 netmask 255.255.255.255 broadcast 0.0.0.0
ether fe:ff:ff:ff:ff:ff txqueuelen 32 (Ethernet)
RX packets N bytes N
RX errors 0 dropped 0 overruns 0 frame 0
TX packets N bytes N
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp0s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255
ether 30:3a:64:3a:a2:2d txqueuelen 1000 (Ethernet)
RX packets N bytes N
RX errors 0 dropped 0 overruns 0 frame 0
TX packets N bytes N
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0