Networking nel sistema operativo Qubes [chiuso]

3

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
    
posta JumpAlways 31.01.2017 - 11:28
fonte

1 risposta

1

È meglio pensare a un proxy VQ di Qubes (come sys-firewall) come un normale router Linux con una configurazione DNS leggermente strana. Come router, questo significa che la maggior parte dell'azione si verifica nella catena FORWARD ed è qui che si desidera applicare le regole di filtro.

Esistono due modi per aggiungere regole di filtro:

  1. Nella scheda Impostazioni / Firewall per ogni VM downstream connessa al proxyVM. Questo ti permette di personalizzare facilmente per ogni appVM.

  2. Come iptables comandi in / rw / config / qubes-firewall-user-script progettato per questo scopo.

L'opzione 1 è un'opzione semplice, se limitata. Devi solo ricordare che le impostazioni sono applicate all'interno del proxyVstream upstream, non della VM allegata alle impostazioni. (Questo ha senso perché la VM a valle è quella influenzata dalle impostazioni. Puoi anche sperimentare con l'aggiunta di regole qui e guardando le regole di iptables risultanti nel proxyVM.)

L'opzione 2 richiede la modifica e l'abilitazione dello script e la consapevolezza di:

A) il tipo di regole FORWARD aggiunte da qubes-firewall (come hai già visto), e queste possono cambiare quando vengono modificate le opzioni della scheda Impostazioni / Firewall

B) il fatto che FORWARD viene eliminato e ricostruito quando si verificano determinati eventi

C) che qubes-firewall-user-script è l'ultimo passo in quel processo di ricostruzione; è il veicolo per mantenere le tue regole nonostante il processo di ricostruzione

    
risposta data 14.07.2017 - 20:23
fonte

Leggi altre domande sui tag