Estou configurando um roteador Linux com iptables
. Quero escrever testes de aceitação para a configuração que afirma coisas como:
- o tráfego de alguém na internet não é encaminhado e
- O TCP para a porta 80 no servidor da Web na DMZ dos hosts na LAN corporativa é encaminhado.
Um FAQ antigo faz alusão a uma iptables -C
opção que permite perguntar algo como "dado um pacote de X a Y, na porta Z, ele seria aceito ou descartado?" Embora o FAQ sugira que funcione assim, para iptables
(mas talvez não ipchains
como é usado nos exemplos) a -C
opção parece não simular um pacote de teste executando todas as regras, mas verifica a existência de uma regra exatamente correspondente. Isso tem pouco valor como teste. Quero afirmar que as regras têm o efeito desejado, não apenas que elas existem.
Eu considerei criar ainda mais VMs de teste e uma rede virtual e, em seguida, pesquisar com ferramentas como nmap
efeitos. No entanto, estou evitando esta solução devido à complexidade de criar todas essas máquinas virtuais adicionais, o que é realmente uma maneira bastante pesada de gerar algum tráfego de teste. Também seria bom ter uma metodologia de teste automatizada que também possa funcionar em um servidor real em produção.
De que outra forma eu poderia resolver esse problema? Existe algum mecanismo que eu possa usar para gerar ou simular tráfego arbitrário e saber se foi (ou seria) descartado ou aceito por iptables
?