mod_qos es un módulo de calidad de servicio (QoS) para el servidor HTTP Apache que implementa mecanismos de control que pueden proporcionar diferentes prioridades a diferentes solicitudes.
Descripción
Un servidor web solo puede atender una cantidad limitada de solicitudes simultáneas. QoS se utiliza para garantizar que los recursos importantes permanezcan disponibles cuando la carga del servidor es alta. mod_qos se utiliza para rechazar solicitudes a recursos no importantes y otorgar acceso a aplicaciones más importantes. También es posible deshabilitar restricciones de acceso, por ejemplo, para solicitudes a recursos muy importantes o para usuarios muy importantes.
Los mecanismos de control están disponibles en los siguientes niveles:
- Control del nivel de solicitud: mod_qos controla la cantidad de solicitudes simultáneas a un espacio de nombres (URL). Se utiliza para definir diferentes prioridades para distintas páginas o aplicaciones dentro de un servidor web.
- Control del nivel de conexión: mod_qos controla la cantidad de conexiones TCP al servidor web. Esto ayuda a limitar las conexiones que provienen de un solo cliente o de redes desconocidas, con el fin de reducir la cantidad máxima de conexiones simultáneas a un servidor virtual o implementar configuraciones dinámicas de mantenimiento de HTTP.
- Control de nivel de ancho de banda: limita las solicitudes/respuestas a determinadas URL en el servidor web.
- Línea de solicitud genérica y filtro de encabezado que descarta URL de solicitud o encabezados HTTP sospechosos.
El módulo puede ser útil cuando se utiliza en un proxy inverso para dividir recursos en diferentes servidores web .
Casos de uso
Aplicación lenta
El primer caso de uso muestra cómo mod_qos puede evitar la interrupción del servicio de un servidor web debido a respuestas lentas de una sola aplicación. En caso de que una aplicación (aquí /ccc) sea muy lenta, las solicitudes esperan hasta que se agote el tiempo de espera. Debido a muchas solicitudes en espera, el servidor web se queda sin conexiones TCP libres y no puede procesar otras solicitudes a la aplicación /aaa o /bbb. mod_qos limita las solicitudes concurrentes a una aplicación para asegurar la disponibilidad de otros recursos.
HTTP keep-alive
La extensión keep-alive de HTTP 1.1 permite conexiones TCP persistentes para múltiples solicitudes/respuestas. Esto acelera el acceso al servidor web debido a un tráfico de red menor y optimizado. La desventaja de estas conexiones persistentes es que los recursos del servidor se bloquean aunque no se intercambien datos entre el cliente y el servidor. mod_qos permite que un servidor admita keep-alive siempre que haya suficientes conexiones libres, deteniendo la compatibilidad con keep-alive cuando se alcanza un umbral de conexión definido.
El cliente abre muchas conexiones simultáneas
Un único cliente puede abrir muchas conexiones TCP simultáneas para descargar distintos contenidos del servidor web. Aunque el cliente obtiene muchas conexiones, es posible que otros usuarios no puedan acceder al servidor, ya que no quedan conexiones libres para ellos. mod_qos puede limitar la cantidad de conexiones simultáneas para una única dirección IP de origen.
Muchas solicitudes a una única URL
Si tiene que limitar la cantidad de solicitudes a una URL, mod_qos también puede ayudar con eso. mod_qos limita la cantidad máxima de solicitudes por segundo a esta URL. El módulo también puede controlar el ancho de banda. Simplemente especifique el ancho de banda máximo permitido y moq_qos comenzará a limitar cuando sea necesario.
Mitigación de ataques de denegación de servicio de bajo ancho de banda
mod_qos puede ayudar a proteger un servidor web Apache contra ataques DoS de bajo ancho de banda al imponer un rendimiento mínimo de carga/descarga que un cliente debe generar. [1]
Historia
La versión inicial de mod_qos se creó en mayo de 2007 y se publicó en SourceForge.net [2] como un proyecto de software de código abierto. Pudo limitar la cantidad de solicitudes HTTP simultáneas para recursos específicos (la porción de ruta de las URL de solicitud ) en el servidor web. Se agregaron más funciones y algunas de ellas fueron útiles para proteger los servidores Apache contra ataques DoS . [3] [4] En 2012, mod_qos se incluyó en la distribución Ubuntu Linux. [5]
Lanzamientos principales: [6]
- Mayo de 2007, versión 1: limita las solicitudes simultáneas según la ruta URL.
- Julio de 2007, versión 2.2: Introducción de utilidades de soporte.
- Agosto de 2007, versión 3: introduce controles de nivel de conexión, así como un visor de estado.
- Septiembre de 2007, versión 4: limitación de solicitudes y respuestas y filtrado de solicitudes genéricas.
- Diciembre de 2007, versión 5: Limitación por eventos definidos por el usuario.
- Marzo de 2008, versión 6: Mecanismos de control por cliente (IP).
- Mayo de 2008, versión 7: impone el rendimiento mínimo de carga/descarga que un cliente debe generar.
- Septiembre de 2009, versión 9: Detección de anomalías mediante la medición de características del cliente.
- Febrero de 2012, versión 10: agrega funciones de geolocalización (códigos de país ISO 3166).
- Mayo de 2014, versión 11: mejora considerablemente la limitación de respuesta (limitación de bytes por segundo).
- Julio de 2015, versión 11.15: Serialización no sólo a nivel de servidor sino también a nivel de cliente (IP).
- Mayo de 2016, versión 11.28: admite servicios diferenciados mediante el control del campo IP DSCP.
Referencias
- ^ "manual de mod_qos". Archivado desde el original el 13 de marzo de 2012. Consultado el 29 de noviembre de 2012 .
- ^ "mod_qos en SourceForge.net". 18 de mayo de 2007. Consultado el 24 de noviembre de 2012 .
- ^ Marcus Spiegel (15 de julio de 2009). "Cómo defenderse de ataques DDoS de Slowloris con mod_qos". HowtoForge . Consultado el 24 de noviembre de 2012 .
- ^ Charly Kuehnast (mayo de 2010). "Aus dem Alltag eines Sysadmin: Mod_qos gegen Slowloris". Revista Linux . Consultado el 24 de noviembre de 2012 .
- ^ "Paquete mod_qos para Ubuntu" . Consultado el 24 de noviembre de 2012 .
- ^ "Registro de cambios" . Consultado el 27 de noviembre de 2012 .
Enlaces externos
- Sitio web oficial