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
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.