Me gustaría permitir que solo una IP use hasta, digamos 1 GB, de tráfico por día, y si se excede ese límite, todas las solicitudes de esa IP se eliminan hasta el día siguiente. Sin embargo, una solución más simple donde la conexión se corta después de una cierta cantidad de solicitudes sería suficiente.
¿Existe ya algún tipo de módulo que pueda hacer esto? ¿O quizás puedo lograr esto a través de algo como iptables?
Gracias
Respuestas:
Si desea una solución pura de Apache bw_mod para Apache 2.0 y mod_bandwidth para Apache 1.3. Pueden limitar el ancho de banda de su servidor para limitar el uso del ancho de banda.
También hay mod_limitipconn, que evita que un usuario realice muchas conexiones a su servidor. mod_cband es otra opción, pero nunca la he usado.
Si no desea meterse con su instalación de Apache, puede poner un proxy de calamar delante de Apache. Le da más control también sobre la aceleración.
Sin embargo, en la mayoría de los casos, el problema son algunos objetos grandes cuando desea limitar el ancho de banda por IP, y desea dar un mensaje de error sensato cuando un usuario extrae demasiados datos y lo bloquea. En ese caso, podría ser más fácil escribir un script PHP y almacenar la información de acceso en una tabla temporal en una base de datos.
fuente
Esta es mi solución de iptables para este tipo de problema. Ajuste
--seconds
--hitcount
según lo necesite, también la tabla iptables.Explicado:
iptables
compruebe si la IP de origen figura en el archivo / proc / net / ipt_recent / ATACK durante 5 o más veces en un intervalo de 600 segundos y si es una NUEVA solicitud. Si es así, haz un rechazo; másiptables
compruebe si la solicitud está destinada al puerto 80. Si es así, imprima la IP y la marca de tiempo en / proc / net / ipt_recent / ATACK y reenvíe el paquete.Funciona bien para mis necesidades.
fuente
¿Has visto una herramienta como fail2ban? Puede ser un poco difícil para usted, pero le permitiría limitar la cantidad de solicitudes que se permite cualquier IP. Funciona mirando los registros, y establece reglas para cuántas violaciones por tiempo están permitidas, por lo que para usted podrían ser solicitudes por día. Una vez que lo revisan, puede hacer cosas como bloquearlos usando ipchains.
Lo he usado para bloquear ataques DDoS contra un servidor de correo con mucho éxito. Sin embargo, puede consumir una cantidad significativa de energía del procesador.
fuente
intente
mod_dosevasive
omod_security
mod_dosevasive
se puede configurar para prohibir una IP después de un número específico o solicitudes de página a un sitio en un período de tiempo especificadofuente