Quais são os prós e contras de editar o arquivo de configuração do iptables ao adicionar regras através do comando iptables?

2

Estou trabalhando com um produto no CentOS que ocasionalmente precisa adicionar e remover regras automaticamente da configuração do iptables. Por exemplo, durante uma atualização, queremos recusar explicitamente o tráfego do serviço de entrada até que a atualização seja concluída. Atualmente, a abordagem que está sendo usada no código de atualização é usar sed e outros utilitários de tratamento de texto para comentar as linhas relevantes no arquivo de configuração, reiniciar o iptables service com o novo arquivo de configuração e inverter o processo no final da atualização e reinicie o serviço novamente.

Parece-me que uma abordagem melhor seria usar o comando iptables -D table rule-specification no início do processo e, em seguida, iptables -A table rule-specification no final da atualização.

O maior problema que vejo ao manipular automaticamente o arquivo de configuração é a fragilidade: existem ferramentas de sistema que reescrevem o arquivo de configuração e podem reordenar os parâmetros, etc., possivelmente quebrando a análise de texto ( service iptables save é um exemplo).

Qual é a abordagem recomendada para fazer alterações na configuração do sistema como essa de dentro do código e por quê?

    
por Dave Mulligan 27.09.2013 / 19:31

1 resposta

2

A maioria das pessoas com esta situação lida com alguma abstração.

Por exemplo. Em vez de ter um único arquivo com seu conjunto de regras, por que não criar um conjunto de arquivos com suas regras e concatená-los juntos?

Por exemplo, você pode adicionar regras individuais a arquivos com nomes como este.

/etc/iptables-rules/00_flush_drop
/etc/iptables-rules/20_permitotherstuff
/etc/iptables-rules/10_permitssh
/etc/iptables-rules/99_drop

Em seguida, basta executar o conjunto de regras com run-parts /etc/iptables-rules . Se você precisar adicionar outro conjunto de regras, basta inserir temporariamente um arquivo. e, em seguida, remova conforme necessário.

Você também deve estar pensando em configurar e usar CHAINS em sua configuração. Correntes são como sub-rotinas. Você poderia, por exemplo, adicionar uma regra no topo do seu firewall para pular em uma cadeia. As cadeias têm uma política padrão de RETURN. Então, quando você precisar adicionar uma regra temporária, basta inseri-la nessa CADEIA. Quando você mais precisar, basta descarregar essa corrente em particular.

    
por 02.10.2013 / 22:10