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?