Qualquer forma não personalizada de gerenciar o iptables com o fail2ban e o libvirt + kvm?

3

Eu tenho um servidor Ubuntu 9.04 executando libvirt / kvm e fail2ban (para ataques SSH).

O libvirt e o fail2ban integram-se ao iptables de diferentes maneiras. Libvirt usa (eu acho) alguma configuração XML e durante a inicialização (?) Configura o encaminhamento para a sub-rede da VM. O Fail2ban instala uma cadeia personalizada (provavelmente no init) e a modifica periodicamente para banir / desbanhar ataques prováveis.

Também preciso instalar minhas próprias regras para encaminhar várias portas para servidores em execução em VMs e em outras máquinas e configurar segurança rudimentar (por exemplo, descartar todo o tráfego INPUT, exceto as poucas portas que eu quero abrir) e, claro, d como a capacidade de adicionar / remover regras com segurança sem reiniciar.

Parece-me que o iptables é uma ferramenta poderosa que carece de algum tipo de forma padronizada de fazer malabarismos com tudo isso. Todo projeto, e todo administrador de sistema, parece fazer diferente! (E eu acho que há muita administração de "carga cult" acontecendo aqui, com pessoas clonando abordagens cruas como "use iptables-save como assim".)

Antes de descobrir os detalhes sangrentos de exatamente como essas (e potencialmente outras) ferramentas manipulam as tabelas do netfilter, e desenvolvendo meus próprios scripts ou apenas executando manualmente os comandos do iptables, existe alguma maneira de trabalhar com segurança com o iptables enquanto não estiver? quebrando a funcionalidade dessas outras ferramentas? Quaisquer padrões nascentes ou projetos definidos para trazer sanidade para esta área? Até mesmo uma página da Web útil que eu perdi pode abranger pelo menos esses dois pacotes juntos?

    
por Peter Hansen 14.04.2010 / 23:19

1 resposta

3

Isso é muito antigo, mas para as pessoas que pesquisam e descobrem isso, o fail2ban e muitos outros utilitários são muito configuráveis. Você pode alterar seus arquivos de ação do fail2ban como iptables-multiport.conf para chamar iptables e criar cadeias da maneira que você quiser.

por exemplo,

actionstart = iptables -N fail2ban-<name>
          iptables -A fail2ban-<name> -j RETURN
          iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>

Isso cria uma regra bem legal em sua cadeia de entrada, que é meio feia e incontrolável, mas você pode facilmente colocá-la em uma de suas próprias cadeias sob seu controle. Você pode criar um filtro INPUT que então tem correntes para outros filtros para o fail2ban manter todas as suas coisas fora da sua cadeia INPUT como abaixo.

actionstart = iptables -N fail2ban-<name>
          iptables -A fail2ban-<name> -j RETURN
          iptables -I INPUT-FAIL2BAN -p <protocol> -m multiport --dports <port> -j fail2ban-<name>

O mesmo vale para libvirt ou Xen, onde existem scripts que são chamados para fazer o trabalho. O Xen, por exemplo, usa o / etc / xen / scripts, o qual você encontrará a ponte de rede e outras onde o iptables é chamado. Projetar como quiser.e no pior dos casos, altere o código. Eu, pelo menos, uso o fail2ban para modificar um firewall central para que todos os servidores estejam protegidos, o que significa que o iptables na máquina local não mostra as regras de qualquer maneira.

    
por 08.08.2011 / 12:24