Quais são os prós e os contras de editar o arquivo de configuração do iptables versus adicionar regras por meio do comando iptables

Quais são os prós e os contras de editar o arquivo de configuração do iptables versus adicionar regras por meio do comando iptables

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 de serviço de entrada até que a atualização seja concluída. Atualmente, a abordagem usada no código de atualização é usar sedoutros utilitários de manipulação de texto para comentar as linhas relevantes no arquivo de configuração, reiniciar o iptablesserviço com o novo arquivo de configuração e, em seguida, reverter o processo no final da atualização. e reinicie o serviço mais uma vez.

Parece-me que uma abordagem melhor seria usar o iptables -D table rule-specificationcomando no início do processo e depois iptables -A table rule-specificationno final da atualização.

O maior problema que vejo na manipulação automática do arquivo de configuração é a fragilidade: existem ferramentas de sistema que reescrevem o arquivo de configuração, podendo reordenar parâmetros etc, possivelmente quebrando a análise do texto ( service iptables saveé um exemplo).

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

Responder1

A maioria das pessoas nesta situação lida com isso 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.

Por exemplo, você pode adicionar regras individuais em 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 remova conforme necessário.

Você também deve considerar configurar e usar CHAINS em sua configuração. As cadeias são como sub-rotinas. Você poderia, por exemplo, adicionar uma regra no topo do seu firewall para entrar em uma cadeia. As cadeias têm uma política padrão de RETORNO. Então, quando você precisar adicionar uma regra temporária, basta inseri-la naquela CADEIA. Quando você precisar mais, basta liberar essa corrente específica.

informação relacionada