Como proteger uma interface bridge br0?

1

Eu tenho um servidor Ubuntu, atuando como host KVM, e algumas máquinas virtuais expostas à rede rodando sob ele.

As VMs possuem suas próprias regras de iptables, e elas estão em rede por meio de uma ponte direta no host, br0.

Minha pergunta é como devo lidar com essa ponte no iptables no host. Eu considero o seu próprio dispositivo e protejo-o como faria com qualquer interface? Há algo que eu deveria saber, que pode bloquear o tráfego para os convidados, se eu bloquear no host? Ou talvez escreva minhas regras para a interface original eno1?

Minha configuração atual é assim: (o virbr0 não é usado por nenhuma VM, a vmnet0 é a rede de um convidado em execução)

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet xxx.HOSTIP.xxx  netmask 255.255.255.0  broadcast 62.210.172.255
        inet6 fe80::d6ae:52ff:fece:993a  prefixlen 64  scopeid 0x20<link>
        inet6 xxx:HOSTIPv6::xxx  prefixlen xx  scopeid 0x0<global>
        ether d4:ae:52:ce:99:3a  txqueuelen 1000  (Ethernet)
        RX packets 753413  bytes 59239171 (59.2 MB)
        RX errors 0  dropped 51  overruns 0  frame 0
        TX packets 115967  bytes 17911763 (17.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether d4:ae:52:ce:99:3a  txqueuelen 1000  (Ethernet)
        RX packets 993041  bytes 303457181 (303.4 MB)
        RX errors 0  dropped 599  overruns 0  frame 0
        TX packets 151299  bytes 22226710 (22.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 182799  bytes 19199389 (19.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 182799  bytes 19199389 (19.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:3c:92:cf  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fe00:825e  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:00:82:5e  txqueuelen 1000  (Ethernet)
        RX packets 25390  bytes 2725539 (2.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 683484  bytes 266619773 (266.6 MB)
        TX errors 0  dropped 16075 overruns 0  carrier 0  collisions 0
    
por Waleed Hamra 07.08.2017 / 13:09

1 resposta

1

Isso é principalmente uma questão de quanto você confia em seus sistemas convidados. Contanto que você não mexa com a tabela FORWARD além do básico para qualquer roteamento que esteja fazendo, você deve estar bem fazendo praticamente qualquer coisa que você razoavelmente faria em uma interface regular. Na maioria dos casos, geralmente é melhor bloquear a interface como você faria com qualquer outra, adicionar exceções conforme necessário (idealmente documentando cada uma), mas se você confia totalmente em seus sistemas convidados, não há nenhum dano inerente em não bloqueá-la para baixo.

    
por 07.08.2017 / 16:58