Atualizando lista de acesso iptables em vários servidores

1

Atualmente, limito os endereços IP que têm acesso ao meu serviço SSH com uma regra como esta

 # accept already established 
 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

 iptables -A INPUT -p tcp  --source w.x.y.z/32 --dport 22 -j ACCEPT
 iptables -A INPUT -p tcp  --source a.b.c.d/32 --dport 22 -j ACCEPT

 #drop everyting else
 iptables -A INPUT -j DROP 
 iptables -P FORWARD DROP

Onde w.x.y.z e a.b.c.d são os IPs permitidos.

Eu tenho essa regra em vários servidores.

Qual seria a melhor maneira de adicionar e remover IPs à lista permitida e recarregar todas as regras dos servidores para que as alterações sejam efetivas?

    
por Patrick Forget 11.06.2012 / 20:46

1 resposta

2

A melhor solução seria usar algum tipo de ferramenta de gerenciamento de sistema, como Puppet, Spacewalk, etc. Onde você pode enviar arquivos de configuração para vários computadores ao mesmo tempo. Isso ajudará você a longo prazo para outras coisas também. No entanto, se você não quiser lidar com todos os problemas de fazer um tipo de configuração central de gerenciamento, poderá criar chaves ssh em todos os servidores e criar scripts para modificar e reiniciar o iptables.

  • Ter chaves SSH de todo o seu servidor Linux para que você possa fazer logins SSH sem senha
  • Crie mod_iptables_servers.sh
    • login ssh @ server1 'bash -s' < change_iptables.sh
    • login ssh @ server2 'bash -s' < change_iptables.sh
    • login ssh @ server3 'bash -s' < change_iptables.sh
  • Crie um script change_iptables.sh que modifique suas regras de firewall e reinicie o iptables
  • Execute mod_iptables_servers.sh, que deve fazer login em todas as suas máquinas Linux e executar o script change_iptables.sh.

Embora eu recomende altamente a solução de gerenciamento central, dessa forma seria possível fazer o trabalho. Como um aviso, eu nunca tentei isso, mas usei a resposta desta pergunta para obter a sintaxe correta - link .

    
por 11.06.2012 / 21:30