Na minha opinião, sua melhor aposta será usar uma ferramenta gerenciamento de configuração como Puppet , Chef , CFEngine ou Ansible para que você possa definir suas políticas com base no tipo de host e aplicá-las a qualquer novo host .
Existe um sistema complexo ao vivo - poucas vlans. Em cada um deles existem servidores linux, e em todos os servidores existem serviços. Os serviços se conectam juntos - por exemplo, serviço http no host A connect to service mysql no host B para a porta 3306 / tcp.
Gostaria de mapear automaticamente esse tipo de configuração para um banco de dados e criar regras de firewall para cada servidor - para permitir apenas as conexões necessárias entre os hosts.
Eu pensei sobre:
É algo que pode ser melhor / mais rápido / mais automatizado? Talvez não seja necessário reinventar a roda?
update: parte "hard" não está criando regras de firewall, mas criando de forma automatizada, e então gerenciando uma lista de conexões necessárias.
Na minha opinião, sua melhor aposta será usar uma ferramenta gerenciamento de configuração como Puppet , Chef , CFEngine ou Ansible para que você possa definir suas políticas com base no tipo de host e aplicá-las a qualquer novo host .
Algum tempo atrás eu usei o ferm e um script personalizado e simples para gerar conjuntos de regras e inseri-lo na ordem correta vía diretiva "include" em ferm.
Se você quiser logar conexões, etc ... você pode usar ulog-mysql , e salvar dados específicos combinados com uma regra específica do iptables no mysql e grafar o que você quiser a partir deste ponto. / p>
Outra possibilidade é usar um papel iptables em ansible , provavelmente você encontrará o melhor papel para o seu cenário.
Considere usar o fwbuilder ( link ). É uma ferramenta opensource que gerencia uma espécie de firewall.
Tags networking iptables firewall linux