Evitar o seqüestro de IPs no KVM / libvirt

6

Como posso evitar que um usuário / cliente de VM acesse endereços IP que ele não possui, mas que são roteados pela mesma ponte no KVM / Libvirt?

Os endereços IP são roteados para um switch cisco vLan que consiste em um / 24 254 endereços utilizáveis, por exemplo. 105.100.1.0/24.

Aqui está um exemplo da configuração.

VM1 - 105.100.1.5
VM2 - 105.100.1.6
VM3 - 105.100.1.7

Como posso impedir que a VM1 acesse endereços que ele não possui?

    
por user3400748 19.07.2015 / 09:30

1 resposta

11

Você não pode usar a segurança da porta do switch na Cisco, já que todas as VMs estarão compartilhando uma porta de switch física. E você não pode usar o Linux iptables porque o tráfego está sendo vinculado, não roteado, através da máquina do hipervisor. Mas você pode emular a segurança da porta do switch no hypervisor com o Linux ebtables , que é um firewall de camada 2/3 menos conhecido na ponte do Linux. Um exemplo rápido e sujo (e provavelmente incompleto; geralmente não me incomodo com isso):

# First allow some obvious stuff; might need other things I forgot about
ebtables -A FORWARD -p IPv4 -m ip --ip-source 0.0.0.0 -j ACCEPT
ebtables -A FORWARD -p IPv6 -m ip6 --ip6-source :: -j ACCEPT

# Prevent a source MAC address from using a wrong source IP
ebtables -A FORWARD -p IPv4 -s 52:54:00:70:C1:99 -m ip --ip-source ! 192.0.2.5 -j DROP
ebtables -A FORWARD -p IPv4 -s 52:54:00:A3:09:3F -m ip --ip-source ! 192.0.2.6 -j DROP
ebtables -A FORWARD -p IPv4 -s 52:54:00:18:65:2A -m ip --ip-source ! 192.0.2.7 -j DROP
    
por 19.07.2015 / 13:48