GNU/Linux >> Tutoriales Linux >  >> Linux

Limitar el máximo de conexiones TCP a servidores web

En Windows XP SP2 y Windows Vista, muchos usuarios han estado buscando parches parcheados tcpip.sys o parches automáticos que desbloqueen el límite de conexión simultánea entreabierta de TCP/IP sin límite superior. En un servidor web que expone a Internet, lo contrario puede ser cierto, donde puede haber una necesidad de limitar y restringir la cantidad máxima de conexiones TCP entrantes a un servidor web que están permitidas en cualquier momento.

Limitar el máximo de conexiones web TCP entrantes al servidor web es útil para prevenir o, mejor aún, detener los ataques DDoS (Distributed Denial of Service) o DoS (Denial of Service). Los ataques DDoS pueden consumir una gran cantidad de recursos del sistema y carga de la CPU, ralentizar el tiempo de servicio de la página web o el tiempo de respuesta a los visitantes legítimos. Y en el peor de los casos, el ataque puede colgar y derribar el servidor web por completo, incluso si tiene un servidor dedicado de CPU dual de cuatro núcleos con varios GB de memoria.

Para prevenir y responder a los ataques de denegación de servicio, además de usar firewall o cookies SYN, también es posible limitar la cantidad de conexiones TCP que el servidor puede aceptar por segundo. El concepto también puede aplicarse cuando una página web ha sido excavada, tropezada o engañada, lo que atrae una gran cantidad de espectadores en un corto período de tiempo. Sin embargo, esta solución solo tiene la intención de hacer que el servidor "sobreviva" y no se derrumbe por completo por la gran cantidad de conexiones. Y la restricción se aplicará también a los visitantes humanos válidos de los sitios web alojados en el servidor si la limitación llega a su límite y niega activamente nuevas conexiones.

El administrador puede usar iptables para establecer el límite máximo aceptable de conexiones TCP al servidor por segundo. Para configurar el límite, inicie sesión como raíz en el shell y emita los siguientes comandos, reemplazando con el número de conexiones por segundo que desea configurar, y con tasa de ráfaga que desea que el servidor comience a aplicar el límite, ambos sin paréntesis.

iptables -t nat -N syn-flood

iptables -t nat -A syn-flood -m limit –limit <n>/s –limit-burst <m> -j RETURN

iptables -t nat -A syn-flood -j DROP

iptables -t nat -A PREROUTING -i $EXT_IFACE -d $DEST_IP -p tcp –syn -j syn-flood

Los comandos anteriores limitarán el número máximo de conexiones TCP que pueden conectarse al servidor web a n conexiones por segundo, después de m se han establecido conexiones. No hay una cifra fija para el número de conexiones que puede configurar. Si el servidor es poderoso, es posible aumentar los valores para manejar y aceptar más conexiones para reducir las caídas de conexiones. Pruebe y establezca los mejores valores para su servidor.


Linux
  1. Cómo configurar un servidor web Apache

  2. Aumente las conexiones TCP para Plex en Ubuntu

  3. Asegúrese de que los servidores se reinicien correctamente

  4. Obtener el número de conexiones TCP establecidas

  5. volcar conexiones tcp sin tcpdump

¿Qué es Apache? Una descripción detallada del servidor web Apache

Cómo sincronizar dos servidores web en Linux automáticamente

Índice de servidores Webmin

Cómo configurar un servidor doméstico

¿Qué limita el número máximo de conexiones en un servidor Linux?

¿Límite suave vs límite duro?