Eu gostaria de permitir apenas que um IP use até, digamos, 1 GB, de tráfego por dia e, se esse limite for excedido, todas as solicitações desse IP serão descartadas até o dia seguinte. No entanto, uma solução mais simples em que a conexão é interrompida após uma certa quantidade de solicitações seria suficiente.
Já existe algum tipo de módulo que pode fazer isso? Ou talvez eu possa conseguir isso através de algo como iptables?
obrigado
Respostas:
Se você deseja uma solução Apache pura, bw_mod para Apache 2.0 e mod_bandwidth para Apache 1.3. Eles podem limitar a largura de banda do seu servidor para limitar o uso da largura de banda.
Há também o mod_limitipconn, que impede que um usuário faça muitas conexões com o seu servidor. O mod_cband é outra opção, mas nunca o usei.
Se você não quiser mexer na instalação do Apache, pode colocar um proxy squid na frente do Apache. Também lhe dá mais controle sobre a aceleração.
No entanto, na maioria dos casos, o problema são alguns objetos grandes quando você deseja limitar a largura de banda por IP e deseja enviar uma mensagem de erro sã quando um usuário extrai muitos dados e você o bloqueia. Nesse caso, pode ser mais fácil escrever um script PHP e armazenar as informações de acesso em uma tabela temporária em um banco de dados.
fonte
Esta é a minha solução iptables para esse tipo de problema. Ajuste
--seconds
--hitcount
conforme necessário, também tabela iptables.Explicado:
iptables
verifique se o IP de origem está listado no arquivo / proc / net / ipt_recent / ATACK por 5 ou mais vezes em um intervalo de 600 segundos e se é uma nova solicitação. Se for, faça uma rejeição; outroiptables
verifique se a solicitação está destinada à porta 80. Se sim, imprima o IP e o carimbo de data / hora em / proc / net / ipt_recent / ATACK e encaminhar o pacote.Está funcionando bem para minhas necessidades.
fonte
Você já olhou para uma ferramenta como fail2ban? Pode ser um pouco pesado para você, mas permitiria limitar o número de solicitações que um determinado IP é permitido. Ele funciona examinando os logs e você define regras para quantas violações por tempo são permitidas, portanto, para você, podem ser solicitações por dia. Uma vez que eles analisam, ele pode fazer coisas como bloqueá-los usando ipchains.
Usei-o para bloquear ataques DDoS contra um servidor de email com muito sucesso. Porém, ele pode consumir uma quantidade significativa de energia do processador.
fonte
tente
mod_dosevasive
oumod_security
mod_dosevasive
pode ser configurado para banir um IP após um número especificado ou solicitações de página para um site em um período de tempo especificado.fonte