2011-09-19 11 views
6

Quiero restringir las solicitudes a mi servidor web para frustrar los ataques de denegación web y de denegación de servicio contra mi sitio. Estoy dispuesto a ser relativamente laxo, la clave es que nadie pide tanto para desacelerar las cosas.¿Solicitudes de limitación por dirección IP en Apache?

Estaba pensando en configurar la aceleración por dirección IP, de modo que las solicitudes de una dirección IP determinada se ralentizarían si se realizaran demasiadas solicitudes en un período corto de tiempo.

Algunas preguntas que tener--

  • Es esta la forma correcta de tratar con raspadores web y ataques de denegación de servicio en el nivel de servidor web?
  • ¿Cuál es un buen límite para que no moleste a los usuarios habituales que pueden estar trabajando en redes IP compartidas?
  • ¿Qué tan específicamente debo configurar el estrangulamiento? Estoy usando Apache/2.2
+0

¿Ya pensó en usar mod_cache? Si su contenido no es demasiado dinámico, mod_cache podría ayudar mucho para demasiadas solicitudes. A partir de DOS, en un nivel de servidor web mod_throttle podría ayudar. Pero ten cuidado, si tus páginas tienen muchos objetos (un HTML pero 80 imágenes y algunos JS + CSS) podrías ser conservador. A partir de mod_cache puedo ayudarte, pero no estoy muy seguro de mod_throttle; sobre todo porque la documentación es escasa. –

+0

Mi sitio web destruye los datos en vivo de las API, y me preocupa no solo ser copiado, sino también DoS'ed si alguien araña mi sitio. Así que sí, mi sitio es bastante dinámico. – babonk

+0

@babonk ¿quién es su anfitrión? – TMB

Respuesta

3

"¿Es esta la manera correcta ... en el nivel del servidor web?" Probablemente sea la mejor opción que tienes. Sería bueno tener umbrales diferentes en diferentes partes de su sitio: puede estar más dispuesto a limitar ciertos tipos de tráfico que otros. Pero, idealmente, este tipo de configuraciones se administrarían a nivel de red.

"¿Qué es un buen límite ...?" Depende completamente de tu tráfico. Cuánto espera, de dónde provienen sus usuarios reales, etc.

¿Cómo hacerlo? Es posible escribir reglas para manejar este tipo de cosas en ModSecurity, que también defiende contra otras cosas. Al igual que con la respuesta mod_evasive, esto no te protegerá completamente contra atacantes con muchos recursos a su disposición, pero los forzaría a intensificar su juego.

No creo que haya nada "integrado" en Apache httpd que lo facilite. La expectativa sería que los problemas con una dirección IP abusiva (es decir, problemas de tráfico de red) se gestionen a nivel de red.

EDIT:

Dado que usted comenta en otro lugar que está utilizando para la celebración de Rackspace, es posible que desee comprobar hacia fuera their load balancer API.

+0

Realmente, hay * nada * integrado en Apache para este tipo de situación? – babonk

+0

¿Por qué debería ser tan sorprendente? httpd está diseñado para servir HTTP rápidamente en la mayoría de los escenarios habituales, y ser una plataforma para el desarrollo de características más avanzadas ... como el estrangulamiento por cliente. Como dije, esto es algo que generalmente se hace en una capa diferente (pila de IP en la caja o en la puerta de enlace de la red). Dice que está en Rackspace ... Editaré mi respuesta para proporcionar un enlace relacionado. –

+0

Gracias por educarme sobre esto (especialmente el enlace de rackspace). ¡Respuesta/recompensa otorgada! – babonk

0

Para evitar dos ataques/raspado web puede explorar mod_evasive que proporciona varias configuraciones para bloquear solicitudes. http://www.zdziarski.com/blog/?page_id=442

Puede ser útil para la protección básica, sin embargo, no será suficiente contra un atacante determinado y experimentado, que puede atacar desde una red interna o utilizar una matriz de servidores proxy para ocultar su IP.

+0

Esto requiere instalación especial, y estoy en alojamiento compartido. ¿Qué puedo usar que esté integrado en Apache? – babonk

Cuestiones relacionadas