GNU/Linux >> Tutoriels Linux >  >> Linux

Limiter le nombre maximal de connexions TCP aux serveurs Web

Dans Windows XP SP2 et Windows Vista, de nombreux utilisateurs ont recherché le hack patché tcpip.sys ou le patcher automatique qui déverrouille la limite de connexion simultanée semi-ouverte TCP/IP sans limite supérieure. Dans un serveur Web qui expose à Internet, l'inverse peut être vrai, où il peut être nécessaire de limiter et de restreindre le nombre maximal de connexions entrantes TCP à un serveur Web qui sont autorisées à tout moment.

Limiter le nombre maximal de connexions Web TCP entrantes au serveur Web est utile pour empêcher ou, mieux encore, arrêter les attaques DDoS (Distributed Denial of Service) ou DoS (Denial of Service). Les attaques DDoS peuvent consommer une quantité considérable de ressources système et de charge CPU, ralentir le temps de service de la page Web ou le temps de réponse aux visiteurs légitimes. Et dans le pire des cas, l'attaque peut se bloquer et faire tomber complètement le serveur Web, même si vous disposez d'un serveur dédié à deux processeurs quadricœurs avec plusieurs Go de mémoire.

Pour prévenir et répondre aux attaques par déni de service, autres que l'utilisation de pare-feu ou de cookies SYN, il est également possible de limiter le nombre de connexions TCP que le serveur peut accepter par seconde. Le concept peut également s'appliquer lorsqu'une page Web est creusée, trébuchée ou farkée, ce qui attire un grand nombre de téléspectateurs en peu de temps. Cependant, cette solution de contournement vise uniquement à faire «survivre» le serveur et non complètement détruit par une quantité massive de connexions. Et la restriction s'appliquera également aux visiteurs humains valides des sites Web hébergés sur le serveur si la limitation atteint sa limite et refuse activement les nouvelles connexions.

L'administrateur peut utiliser iptables pour définir la limite maximale acceptable du nombre de connexions TCP au serveur par seconde. Pour configurer la limite, connectez-vous en tant que root au shell et émettez les commandes suivantes, en remplaçant avec le nombre de connexions par seconde que vous souhaitez définir, et avec un taux de rafale auquel vous voulez que le serveur commence à appliquer la limite, les deux sans parenthèses.

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

Les commandes ci-dessus limiteront le nombre maximum de connexions TCP pouvant se connecter au serveur Web à n connexions par seconde, après m des connexions ont été établies. Il n'y a pas de chiffre fixe pour le nombre de connexions que vous pouvez définir. Si le serveur est puissant, il est possible d'augmenter les valeurs à gérer et d'accepter plus de connexion afin de réduire les pertes de connexion. Essayez de définir les meilleures valeurs pour votre serveur.


Linux
  1. Comment configurer un serveur Web Apache

  2. Réglage du serveur Web Apache Keepalive

  3. Augmenter les connexions TCP pour Plex sur Ubuntu

  4. FAQ sur les serveurs cloud

  5. Les bases des Vhosts

Qu'est-ce qu'Apache ? Un aperçu détaillé du serveur Web Apache

Comment synchroniser automatiquement deux serveurs Web sous Linux

Index des serveurs Webmin

Comment configurer un serveur domestique

Obtenir le nombre de connexions TCP établies

vider les connexions tcp sans tcpdump