ti-enxame.com

Qual é a maneira canônica de armazenar regras de iptables

iptables, o firewall padrão Linux, não salva regras entre reinicializações. Você tem que cuidar disso sozinho. Há muitas maneiras de fazer isso. Qual é a maneira canônica de fazer isso? Quais são as melhores práticas?

Eu responderei com minha própria solução, mas estou interessado em outras soluções/melhores.

8
amarillion

Usamos um monte de regras de iptables, por isso, para facilitar a administração, fazemos o seguinte:

  • As regras são chamadas de scripts - scripts são chamados de /etc/init.d/firewall (script personalizado)
  • Um arquivo de nomes de servidor/nomes de rede (variáveis ​​de endereço IP) é mantido e incluído em todos os script iptables para consistência.
  • scripts separados são mantidos para cada sub-rede (ou seja, privado/DMZ/VPN, etc) para tornar as coisas mais fáceis de encontrar. Regras que pertencem a 2 scripts (como aquelas restringindo a comunicação B/W Particular e DMZ) são colocados no script mais "seguro" da rede
  • sempre que possível, loops e loops aninhados são usados ​​para manter os scripts o mais curto possível.
  • cada nova regra ou alteração é documentada com comentários anteriores à seção apropriada do script.

Eu não sei se isso é o melhor maneira de fazer isso, mas funcionou bem para nós.

3
Brent

Usamos um script personalizado, é claro. Eu posso usar for-loops para iterar em uma lista de portas, analisar outros arquivos de configuração como os usuários VPN, etc. Excelente!

E a restauração de iptables é certamente a maneira mais "canônica" de salvá-lo.

O que eu quero adicionar:

Por favor, note que a versão atual do iptables será para cada invocação pedir ao kernel para dar de volta a lista completa de correntes. Então fará a mudança que você peça para fazer. Em seguida, ele carregará a lista novamente.

Isso é lento (O (n ^ 2)), para nós, é necessário 5 segundos que é muito longo ;-)

Se você usar o iptables-restaurar, tudo passa em uma operação rápida.

1
Christian

Esta questão é muito próxima de ser um DUP de 4934 e está relacionado a 97 .

Eu uso Firehol combinado com uma interface da Web que desenvolvi para gerenciar o arquivo de configuração.

Eu realmente gosto de Firehol, ele fornece uma sintaxe mais simples, em seguida, usando iptables diretamente.

  • Você pode usar o comando de debug do Firehol para exatamente quais comandos iptables são gerados
  • Se você tiver um erro na sua configuração e iniciar o firewall, o Firehol detecta o erro e reverte para o estado anterior.
  • O Firehol tem um comando "try" que você pode usar para iniciar o firewall remotamente, se suas alterações matarem sua conexão, o Firehol reverterá para o estado anterior, se você não matar sua conexão, ele pedirá que você confirme a mudança.
  • O Firehol tem um grande conjunto de serviços pré-definidos para que você não tenha que lembrar exatamente quais portas você precisa ter que portas abrir para algum protocolo obscuro.
1
Zoredache