ferramentas de gerenciamento iptables para ambiente de grande escala

15

O ambiente em que estou operando é uma operação de hospedagem na Web em grande escala (várias centenas de servidores sob gerenciamento, quase todos os endereços públicos, etc. - portanto, qualquer coisa que fale sobre o gerenciamento de links ADSL provavelmente não funcionará bem) e estamos procurando por algo que seja confortável gerenciando tanto o conjunto de regras principal (cerca de 12.000 entradas no iptables na contagem atual) mais os conjuntos de regras baseados em host que gerenciamos para os clientes. Nosso conjunto de regras de roteador principal muda algumas vezes por dia, e os conjuntos de regras baseados em host mudam talvez 50 vezes por mês (em todos os servidores, portanto, talvez uma alteração por cinco servidores por mês).

Atualmente, estamos usando o filtergen (que é em geral bolas e superbolas em nossa escala de operação), e eu usei o shorewall no passado em outros trabalhos (o que seria preferível ao filtergen, mas eu acho que tem que haver algo lá fora que é melhor que isso).

Os "musts" que criamos para qualquer sistema de substituição são:

  • É preciso gerar um conjunto de regras rapidamente (um filtro em nosso conjunto de regras leva de 15 a 20 minutos; isso é insano) - isso está relacionado ao próximo ponto:
  • Deve-se gerar um arquivo de estilo de restauração iptables e carregá-lo em uma ocorrência, não chamar iptables para cada inserção de regra
  • Não deve desativar o firewall por um longo período enquanto o conjunto de regras é recarregado (novamente, isso é uma consequência do ponto acima)
  • Deve suportar o IPv6 (não estamos implantando nada novo que não seja compatível com o IPv6)
  • Deve ser livre de DFSG
  • É necessário usar arquivos de configuração de texto simples (pois executamos tudo por meio do controle de revisão e o uso de ferramentas padrão de manipulação de texto do Unix é nosso SOP)
  • Deve suportar tanto o RedHat quanto o Debian (empacotados como preferidos, mas no mínimo não devem ser abertamente hostis aos padrões da distribuição)
  • Deve suportar a capacidade de executar comandos iptables arbitrários para suportar recursos que não fazem parte da "linguagem nativa" do sistema

Qualquer coisa que não atenda a todos esses critérios não será considerada. O seguinte é o nosso "bom para haves":

  • Deve suportar o arquivo de configuração "fragmentos" (isto é, você pode soltar uma pilha de arquivos em um diretório e dizer ao firewall "incluir tudo neste diretório no conjunto de regras"; usamos gerenciamento de configuração extensivamente e gostaríamos de usar esse recurso para fornecer regras específicas de serviço automaticamente)
  • Deve suportar tabelas brutas
  • Deve permitir que você especifique um ICMP específico nos pacotes de entrada e nas regras de REJEIÇÃO
  • Deve ser graciosamente compatível com nomes de host que resolvem mais de um endereço IP (já fomos capturados por este algumas vezes com filtergen; é uma dor real no bumbum)
  • Os recursos iptables mais opcionais / estranhos que a ferramenta suporta (seja nativamente ou via plug-ins existentes ou facilmente graváveis) melhor. Usamos características estranhas do iptables agora e depois, e quanto mais daquelas que "apenas funcionam", melhor para todos.
por womble 07.08.2009 / 02:12

5 respostas

4

Se você está, talvez, querendo passar de uma abordagem baseada em regras para uma maneira de "descrever o estado final necessário" de fazer as coisas, dê uma olhada no fwbuilder.

Prós:

  • vários firewalls suportados - suas regras baseadas em host + núcleo - de um conjunto de objetos
  • SQL-esque "me diga o que você quer" em vez de "me diga como fazer" abordagem (NB não estou dizendo que há qualquer SQL lá! Só que é descritivo Vs procedural: -)
  • É uma GUI, como um hardware comercial de interfaces de fornecedores, por isso é possível empurrar algumas tarefas para baixo da pilha de funcionários / habilidades
  • suporta a maioria dos usos "estranhos" que já experimentei
  • pode gerar regras para uma variedade de implementações de f / w - BSD / cicso / iptables / etc
  • separa o front-end do compilador de regras, o que me deixa esperançoso de que a velocidade seja uma preocupação para os autores. NB eu não tenho nada perto da escala a que você está aludindo
  • O formato do arquivo não é binário
  • faz o IPv6
  • Cria uma configuração de estilo de salvamento do iptables para carregamento rápido e atômico

Contras:

  • é uma GUI
  • Mover seu conjunto de regras existente é improvável que seja indolor
  • Enquanto a GPL e no Debian, os clientes Windows + OSX são de 30 dias eval, já que ninguém compilou uma versão Free ainda para esses SO; daí o braço comercial dos devs tem o monopólio desses binários
  • O formato do arquivo é tecnicamente XML; NB não deixe que isso te desencoraje: dê uma olhada nas ferramentas que eles fornecem (você pode usar o binário gui para manipulá-lo via CLI, por exemplo), as ferramentas CLI XML que já existem, e lembre-se que - na sua escala - alguma semelhança de meta-dados + estrutura não é uma coisa / ruim /! Difere muito bem em edições, IIRC.

Link: link

    
por 07.08.2009 / 06:27
3

escreva o seu próprio. sério - a esta escala é razoável.

use ipset e / ou muitas tabelas / subtabelas iptables. sempre que possível, recarregue apenas algumas subtabelas / alguns conjuntos de ipset - isso acelerará a reconfiguração.

provavelmente você já faz isso, mas ainda assim vale a pena mencionar - use tabelas aninhadas para diminuir a carga no roteador e o número médio de pesquisas necessárias para a configuração de novas conexões. obviamente -A FORWARD -m state-state ESTABELECIDO, RELACIONADO é a sua regra mais importante.

    
por 07.08.2009 / 09:20
2

bolas sagradas (mantendo o tema vivo!) cara ... 12.000 regras básicas?

Estou assumindo que você considerou todas as opções fáceis, como simplesmente descartar os conjuntos no CVS? Puppet ou CFengine?

Honestamente, da visão geral que você deu, sugiro enfaticamente reavaliar o design da sua rede. Eu sou provavelmente um pouco simplista demais, mas eu simplesmente não consigo entender um design que exigiria regras de 12k iptables. Isso realmente soa como algo que se beneficiaria mais de uma solução do tipo SLB do que uma maneira melhor de gerenciar as regras de firewall.

Em uma nota lateral, como adicionar um comentário em vez de adicionar uma "resposta"?

    
por 07.08.2009 / 05:08
0

12000 regras? você está louco? Você não sofre problemas de desempenho com essa quantidade de filtragem acontecendo? Não vejo por que você precisaria de 12.000 regras? Como você verifica se o conjunto de regras está impondo a política?

Qual é a política?

Como você testa sua política?

12.000 regras possivelmente violam todas as regras de segurança do livro.

    
por 20.03.2010 / 21:17
-2

você também pode tentar uma solução SAAS para gerenciar o iptables - > link ele também pode fazer a integração na nuvem da AWS.

    
por 11.06.2016 / 22:38