ao usar o iptables
recent
módulo, posso ver as configurações do módulo aqui:
ls -1 /sys/module/xt_recent/parameters/
e configuração de lista para determinado parâmetro:
cat /sys/module/xt_recent/parameters/ip_list_tot
100
Também sei que posso alterar os padrões ao carregar o módulo.
Minha pergunta é, o que acontece quando a lista atinge o tamanho de "ip_list_tot" ? O módulo recente para de adicionar novo endereço IP ou "rota" os antigos e os substitui por novos?
Procurei na ajuda, mas não encontrei nenhuma explicação
iptables -m recent --help
Além disso, qual é um tamanho razoável para "ip_list_tot" em um ambiente de produção, onde desejo bloquear IPs ofensivos? O tamanho padrão ip_list_tot de 100 me parece ridiculamente pequeno. Posso experimentar algum efeito negativo se o definir para 10'000
?
Depois de ler (muito rápido) o código-fonte , eu diria que a entrada mais antiga é removida:
Para aumentar esse valor, você pode definir o parâmetro enquanto carrega o módulo manualmente:
Certifique-se de que o módulo não esteja em uso (desabilite o firewall ou, pelo menos, as regras que usam a
recent
correspondência) antes de descarregar/carregar.Para tornar essa configuração persistente, você pode colocar um arquivo em /etc/modprobe.d/xt_recent com o seguinte conteúdo:
(Observe que este método pode não funcionar e pode ser adaptado dependendo da sua distribuição).
Em relação aos problemas de desempenho que podem ser encontrados se você aumentar consequentemente esse valor de parâmetro, é muito difÃcil dizer. Depende do seu hardware, das outras tarefas em execução no sistema, etc...
Ainda com base na leitura do código-fonte e na minha própria experiência em desenvolvimento, eu diria que as principais coisas que você pode ter medo é a introdução de latência se, por exemplo, o IP atualmente testado for o último da lista ou não for t na lista (o que pode ocorrer com frequência):
Dada
x
a complexidade delist_for_each_entry() + strcmp
, o "custo" extra de configurar `ip_list_tot̀ para um valor enorme é o tempo para navegar na lista.A complexidade final pode variar entre
1 * x
eip_list_tot * x
.No entanto, acho que a lista encadeada no kernel está bem implementada, com desempenho e velocidade como requisitos.
Para concluir, eu aconselho você a fazer um benchmark ... se possÃvel.