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.
Respostas:
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:
Contras:
Link: http://www.fwbuilder.org
fonte
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.
fonte
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"?
fonte
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.
fonte
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.
fonte