Vamos supor a seguinte configuração: um roteador que anuncia sub-redes IP e alguns hosts KVM baseados em Proxmox. Cada host de virtualização baseado em Proxmox executa vários servidores virtuais gerenciados pelos clientes e cada servidor virtual recebe um ou vários IPs atribuídos.
Como posso evitar que o servidor virtual (configurado incorretamente ou mal) anuncie IPs que não pertencem ao servidor?
A melhor idéia que eu poderia ter é usar iptables
regras -firewall para bloquear qualquer tráfego, exceto o de entrada com o endereço de destino correto e o de saída com o endereço de origem correto. Isso deve funcionar (mas também bloquearia qualquer tráfego de transmissão, eu acho, pensei que seria aceitável para esse cenário). No entanto, existe alguma maneira melhor de fazer isso (sem alterações nos roteadores)? Qual é a prática comum para este problema?
O IPTables não pode bloquear o tráfego DHCP, pois usa filtros de pacotes que se ligam à pilha de IP, antes do firewall. Este link fala sobre o CentOS, porém o princípio é o mesmo.
Se você for outro cliente desses hosts, registre um tíquete de suporte urgente com o NOC do seu provedor indicando um servidor DHCP desonesto na rede e eles devem (se estiverem fazendo seu trabalho corretamente) entrar nele rapidamente. Se este for o seu hardware em que essas VMs estão sendo executadas e você não tiver acesso à transmissão da VM, eu desabilitaria a rede no e faria com que o cliente se conectasse via console para resolver o problema.
Depois de descobrir que
iptables
não é o ajuste certo para isso, em parte graças à resposta de Christophers acima para essa informação, fiz algumas leiturasebtables
, apenas para descobrir que o Proxmox já possui suporte interno para evitar falsificação de IP.Basta adicionar a seguinte regra às configurações de firewall de cada máquina virtual no Proxmox (ver
/etc/pve/firewall/<VMID>.fw
arquivos) e trabalhar com IPv4 e IPv6:De qualquer forma, isso já estava oculto nos documentos oficiais: consulte a seção Conjuntos de IP > Conjunto de IP padrão ipfilter-net*