Eu tenho uma configuração de teste no laboratório com 4 máquinas:
- 2 máquinas P4 antigas (t1, t2)
- 1 Xeon 5420 DP 2,5 GHz 8 GB RAM (t3) Intel e1000
- 1 Xeon 5420 DP 2,5 GHz 8 GB RAM (t4) Intel e1000
para testar o desempenho do firewall linux desde que fomos atacados por vários ataques de inundação de sincronização nos últimos meses. Todas as máquinas rodam o Ubuntu 12.04 64bit. t1, t2, t3 são interconectados através de um switch de 1 GB / s, t4 é conectado a t3 através de uma interface extra. Então t3 simula o firewall, t4 é o alvo, t1, t2 joga os atacantes gerando uma tempestade de pacotes (192.168.4.199 é t4):
hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80
O t4 descarta todos os pacotes recebidos para evitar confusão com gateways, problemas de desempenho do t4 etc. Observo as estatísticas de pacotes no iptraf. Eu configurei o firewall (t3) da seguinte maneira:
- estoque 3.2.0-31-genérico # 50-Ubuntu SMP do kernel
- rhash_entries = 33554432 como parâmetro do kernel
sysctl da seguinte maneira:
net.ipv4.ip_forward = 1 net.ipv4.route.gc_elasticity = 2 net.ipv4.route.gc_timeout = 1 net.ipv4.route.gc_interval = 5 net.ipv4.route.gc_min_interval_ms = 500 net.ipv4.route.gc_thresh = 2000000 net.ipv4.route.max_size = 20000000
(Ajustei bastante para manter o t3 em execução quando t1 + t2 está enviando o maior número possível de pacotes).
O resultado desses esforços é um tanto estranho:
- T1 + T2 conseguem enviar cada um cerca de 200k pacotes / s. t4, na melhor das hipóteses, vê cerca de 200k no total, portanto metade dos pacotes são perdidos.
- t3 é quase inutilizável no console, embora pacotes estejam fluindo por ele (altos números de soft-irqs)
- o coletor de lixo do cache de rota está longe de ser previsível e, na configuração padrão, sobrecarregado por muito poucos pacotes / s (<50k pacotes / s)
- ativar as regras de iptables com estado faz com que a taxa de pacotes que chega no t4 caia para cerca de 100k pacotes / s, efetivamente perdendo mais de 75% dos pacotes
E esta - aqui está minha principal preocupação - com duas máquinas P4 antigas enviando o maior número de pacotes possível - o que significa que quase todos na rede devem ser capazes disso.
Então, aqui vai a minha pergunta: Eu negligenciei algum ponto de importação e configuração ou na minha configuração de teste? Existem alternativas para a construção de sistemas de firewall, especialmente em sistemas smp?
Respostas:
Eu migraria para o Kernel> = 3.6, que não possui mais um cache de roteamento. Isso deve resolver uma parte dos seus problemas.
fonte
Como está sua configuração de log no T3? Se todos os pacotes descartados forem registrados, a E / S do disco talvez seja a causa.
Como esse é um ambiente de teste, você pode tentar o teste com o log de T3 desativado.
fonte