ferramentas de gerenciamento iptables para ambientes de grande escala

15

O ambiente em que estou operando é uma operação de hospedagem na web em larga escala (várias centenas de servidores sob gerenciamento, endereçamento quase público etc.); portanto, é improvável que tudo que fale sobre o gerenciamento de links ADSL funcione bem e nós ' estamos procurando algo que seja confortável para gerenciar o conjunto de regras principal (cerca de 12.000 entradas no iptables na contagem atual) e os conjuntos de regras baseados em host que gerenciamos para os clientes. Nosso conjunto de regras do roteador principal muda algumas vezes por dia e os conjuntos de regras baseados em host podem ser alterados talvez 50 vezes por mês (em todos os servidores, portanto, talvez uma alteração a cada cinco servidores por mês).

Atualmente, estamos usando o filtergen (que geralmente é bolas e super bolas na nossa escala de operação), e eu usei shorewall no passado em outros trabalhos (o que seria preferível ao filtergen, mas acho que é preciso ser algo melhor do que isso).

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

  • É necessário gerar um conjunto de regras rapidamente (uma execução de filtro no nosso conjunto de regras leva de 15 a 20 minutos; isso é insano) - isso está relacionado ao próximo ponto:
  • Deve gerar um arquivo de estilo iptables-restore e carregá-lo em uma ocorrência, não chamar iptables para cada inserção de regra
  • Não é necessário 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 de novo que não seja compatível com IPv6)
  • Deve ser livre de DFSG
  • É necessário usar arquivos de configuração de texto sem formatação (já que executamos tudo por meio do controle de revisão e o uso de ferramentas padrão de manipulação de texto Unix é o nosso SOP)
  • Deve suportar o RedHat e o Debian (preferencialmente empacotado, mas pelo menos não deve ser abertamente hostil aos padrões das duas distribuições)
  • Deve suportar a capacidade de executar comandos arbitrários do iptables para suportar recursos que não fazem parte do "idioma nativo" do sistema

Qualquer coisa que não atenda a todos esses critérios não será considerada. A seguir estão os nossos "agradáveis":

  • Deverá suportar "fragmentos" do arquivo de configuração (ou seja, você pode soltar uma pilha de arquivos em um diretório e dizer ao firewall "inclua tudo nesse diretório no conjunto de regras"; usamos extensivamente o gerenciamento de configuração e gostaria de usar esse recurso para fornecer regras específicas de serviço automaticamente)
  • Deve suportar tabelas brutas
  • Deve permitir que você especifique o ICMP específico nos pacotes recebidos e nas regras REJECT
  • Deverá suportar graciosamente nomes de host que resolvam mais de um endereço IP (fomos pegos por esse algumas vezes com filtergen; é uma dor bastante real)
  • Quanto mais recursos opcionais / estranhos do iptables forem suportados pela ferramenta (de forma nativa ou via plugins existentes ou de fácil gravação), melhor. Usamos recursos estranhos do iptables de vez em quando, e quanto mais aqueles que "simplesmente funcionam", melhor para todos.
mulher
fonte
Vou morder - o que significam os termos "bolas" e "super bolas" na sua postagem? Suponho que você não esteja falando de esferas de borracha insufláveis, mas não posso inferir se o contexto significa "bom" ou "ruim".
Evan Anderson
bolas == ruins. Super bolas == muito ruins.
Womble
Com tantas regras, verifique se você tem uma regra ACEITAR na parte superior, aceitando conexões estabelecidas e relacionadas. Os PCs não possuem um TCAM e muitas regras afetam o desempenho. Muito.
Thomas
@ Thomas: Sim, há uma certa quantidade de otimização que entra no conjunto de regras. Ter esse "conhecimento" sobre otimização em qualquer ferramenta de firewall escolhida seria um bônus, é claro.
Womble

Respostas:

4

Se você talvez queira mudar de uma abordagem orientada a 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 principais + baseadas em host - de um conjunto de objetos
  • Esquema de SQL "diga-me o que você quer" em vez de "diga-me como fazê-lo" (NB, não estou dizendo que há SQL lá! Só que é descritivo Vs processual :-)
  • É uma GUI, como as interfaces de fornecedores de hardware comercial, por isso é possível empurrar algumas tarefas para baixo na pilha de funcionários / habilidades
  • suporta a maioria dos usos "estranhos" que eu tentei
  • pode gerar regras para uma variedade de implementações 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: Não tenho nada perto da escala à qual você está aludindo
  • O formato do arquivo não é binário
  • IPv6
  • Cria uma configuração de estilo do iptables-save para carregamento atômico e rápido

Contras:

  • É uma GUI
  • Não é provável que mover seu conjunto de regras existente seja indolor
  • Enquanto a GPL e no Debian, os clientes Windows + OSX são avaliados em 30 dias, já que ninguém compilou uma versão gratuita ainda para esses sistemas operacionais; portanto, o braço comercial dos desenvolvedores tem o monopólio desses binários
  • O formato do arquivo é tecnicamente XML; NB, não deixe isso te desencorajar: dê uma olhada nas ferramentas que eles fornecem (você pode usar o binário gui para manipulá-lo através da CLI, por exemplo), as ferramentas XML da CLI que já existem e lembre-se disso - na sua scale - alguma aparência de meta-dados + estrutura não é uma coisa ruim /! Difere bastante bem nas edições, IIRC.

Link: http://www.fwbuilder.org

Jonathan Matthews
fonte
Hum ... vou dar uma olhada. A existência de uma GUI (para não mencionar o XML) me faz tremer violentamente, mas você cria algumas idéias interessantes (conjunto único de regras para toda a infraestrutura). A coisa do OS X não será um problema.
Womble
Concordo que uma GUI me fez WTF originalmente, mas fiquei satisfeito com o que vi do lado da CLI também. Quão dinâmica é a sua configuração, afinal? Seria 10 mudanças por dia ou 10 mudanças por ano? Isso pode ser um fator útil para detalhar aqui. Além disso, uma boa função do formato de arquivo XML pode ser que, usando ferramentas compatíveis com XML, você possa ter toda a configuração em um arquivo, usando objetos de definição única, mas produzir um registro de alterações específico do nó para documentar configurações e conjuntos de alterações de servidores individuais . Apenas um pensamento ...
Jonathan Matthews
@ Jonathan: Você está certo, é importante saber o dinamismo do conjunto de regras. Eu editei a pergunta; é algumas vezes por dia, na maioria dos dias úteis, para o conjunto de regras principal.
womble
3

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

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

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

pQd
fonte
"Escreva nosso próprio" não está fora de questão, mas foi o que nos fez filtrar em primeiro lugar - foi escrito por um ex-funcionário agora. Preferimos não produzir mais uma ferramenta de gerenciamento de firewall, se possível.
Womble
O IPSET é extremamente rápido para grandes conjuntos de regras. "armazena vários endereços IP ou números de portas e combina com a coleção de iptables de uma só vez; atualiza dinamicamente as regras do iptables contra endereços ou portas IP sem penalidade de desempenho; expressa conjuntos complexos de endereços IP e portas com uma única regra do iptables e se beneficia da velocidade de conjuntos de IP "I Use-o com shorewall. Não tenho idéia de como o shorewall se sairia na sua escala.
Artifex
2

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

Suponho que você tenha considerado todas as opções fáceis, como simplesmente colocar os aparelhos no CVS? Fantoche ou CFengine?

Honestamente, a partir da ampla visão geral que você forneceu, sugiro reavaliar o design da sua rede. Provavelmente sou um pouco simplista, mas 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 versus adicionar uma "resposta"?

Greeblesnort
fonte
Você precisa de uma quantidade mínima de reputação para comentar. Quando você faz um link aparecerá.
jay_dubya
Provavelmente, existe uma certa quantidade de redundância em nossas regras do iptables, mas isso é em grande parte uma função do filtergen que talvez não seja tão eficiente quanto poderia. No entanto, temos um / 19 de espaço IP e VLANs por cliente e uma "política padrão" bastante restritiva (exigindo exceções por IP para abrir portas conforme exigido pelos clientes). Certamente não conseguiremos nos livrar de mais do que algumas dessas regras. Ah, e sim, já usamos o Puppet e não vamos começar a escrever conjuntos de regras manualmente em nossa escala de operações.
Womble
bem, você certamente mantém um espaço IP maior do que eu, mas ainda acho difícil justificar de alguma forma essas regras. Você já pensou em dividi-las em uma estrutura em árvore, na qual você poderia utilizar configurações de regras em pontos de estrangulamento? ou seja, todos os servidores apenas da web na sub-rede X, todos os servidores web + smtp na sub-rede Y? Você não precisaria sub-rede, apenas agrupe-os logicamente atrás de um firewall em camadas ... desculpe se estou apenas adicionando ruído neste momento ... Talvez eu não seja sofisticado o suficiente para este. Eu gosto do meu firewall rulesets curtas e = brutais)
Greeblesnort
Não estamos realmente em posição de "classificar" coisas assim; somos em grande parte um provedor de hospedagem de servidores dedicado, portanto, o que nossos clientes decidem fazer com suas máquinas no dia a dia pode mudar, exigindo muito mais dança do que se estivéssemos apenas fazendo uma infraestrutura dedicada para um serviço interno.
womble
0

12000 regras? você está louco? Você não sofre problemas de desempenho com essa quantidade de filtragem? Não vejo por que você precisaria de 12.000 regras? Como você verifica se seu conjunto de regras está realmente aplicando 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.

O zelador do Unix
fonte
-2

você também pode tentar uma solução SAAS para gerenciar o iptables -> https://www.efw.io/Forum, também pode fazer a integração na nuvem da AWS.

Paul Ma
fonte
Duvido que uma oferta SaaS seja livre de DFSG.
Womble