Comencé a usar Qubes OS recientemente y quiero configurar un IDS e IPS virtual en máquinas virtuales separadas, pero no puedo entender cómo funcionan las comunicaciones entre diferentes máquinas virtuales aquí.
Cada máquina virtual debe estar aislada y todas las conexiones deben ser manejadas por un FirewallWM (sys-firewall) separado, que está conectado a NetWM (sys-net), que, en la configuración básica, es el único que tiene un Dispositivo de Red. adjunto (tarjetas Ethernet y WiFi).
He leído iptables
en todas las máquinas virtuales y encontré que VM Manager configuró automáticamente una redirección DNAT para permitir que los paquetes DNS (puerto 53) salgan a través de sys-net, pero no puedo entender cómo pueden pasar todos los paquetes a través de cada capa y regresar a las diferentes fuentes originales AppVM conectadas a través de sys-firewall .
En lo que respecta a IDS e IPS, puedo manejar y filtrar paquetes de manera sencilla según el contenido, pero no puedo pensar en cómo filtrar. Por ejemplo, IP de origen basada en una lista negra, ya que no puedo ver el origen real y cada máquina virtual es un sistema separado que se puede basar en diferentes plantillas (Fedora, Debian, Whonix, ...). Creo que las opciones de paquetes pueden modificarse.
Entonces, ¿ iptables
y las auditorías como Psad
solo se pueden colocar en la VM que está directamente conectada al Router?
Alguna información básica
- Qubes OS es un sistema basado en el aislamiento a través de la tecnología de virtualización de hardware que le permite ejecutar diferentes dominios (personal, de trabajo, no confiable, ...) basados en diferentes sistemas (plantillas) en máquinas virtuales y cada instancia está completamente separada de otras. de modo que si uno se ve comprometido, el sistema permanece limpio y totalmente utilizable
- Puede elegir qué dispositivos se conectan a una máquina virtual y separarse de ella, por lo que en la configuración estándar y con experiencia, tiene una máquina de sys-net que es la única que puede conectarse a Internet (Ethernet / WiFi conectada) y un sistema -firewall de la máquina que maneja todas las conexiones y pasa a través de sys-net, por lo que tiene 2 niveles (puede agregar más) de aislamiento para los otros dominios (por ejemplo, PublicWiFi - > sys-firewall - > sys-net, Trusted - > sys-firewall - > sys-net)
Publicaré las salidas sys-firewall y sys-net
ifconfig
y iptables-save
, para brindarle todos los detalles.
Detalles de máquinas virtuales:
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