Protection contre le déni de service Keep-Dead

8

je pensais que mon serveur était en sécurité avec http-guardian mais apparemment pas. Un cul intelligent continue de frapper mon serveur avec 'Keep-Dead' et de le faire planter.

J'ai parcouru les journaux, mais je ne vois pas comment distinguer les demandes, à l'exception d'un visiteur régulier dont le navigateur charge rapidement tous les composants sur une page occupée.

Tout avis sera le bienvenu.

Tom O'Connor
la source
1
Oh désolé, j'aurais dû dire. La seule information que j'ai réussi à trouver sur Keep-Dead jusqu'à présent est sur esrun.co.uk/blog/keep-alive-dos-script . Mais il ne contient aucune indication sur la façon de le bloquer!
2
Remarque pédante: vous n'êtes jamais en sécurité. Si quelqu'un veut assez, il pourra toujours entrer. Point final.
ircmaxell

Réponses:

6

Désactivez HTTP Keep-Alive ou installez un serveur qui n'est pas affecté par cela en tant que proxy devant Apache. Nginx serait un bon choix ici.

Cette attaque semble être similaire à l'attaque Slowloris, en ce sens qu'elle exploite une fonctionnalité spécifique d'Apache. C'est assez trivial de se défendre contre.

Remarque: Si vous installez nginx, désactivez keep-alive sur apache et laissez-le activé sur nginx.

devicenull
la source
3
Garder en vie n'est-il pas une caractéristique assez importante? Je pourrais comprendre le désactiver temporairement, mais de façon permanente?
TheLQ
1
Cela peut entraîner des temps de chargement légèrement plus longs, mais ce n'est pas comme si cela entraînerait un échec de chargement de votre site pour les utilisateurs. Installer nginx à l'avant est une bien meilleure solution.
devicenull
1
@devicenull Cela signifie-t-il que le client bénéficiera d'une connexion keepalive bien qu'apache (ou serveur d'applications en amont) ait désactivé keepalive? Donc, fondamentalement, pas besoin de serveur d'application et de serveur proxy pour activer Keepalive? Merci!
haxpor
@haxpor C'est une question intéressante, j'aimerais que quelqu'un y réponde.
Manuel
1

Keep-Dead fonctionne en envoyant des requêtes HEAD tout en gardant la connexion TCP active (Keep-Alive, donc le nom du script). Cela est probablement très différent des demandes légitimes adressées à votre serveur Web, qui seraient probablement principalement POST / GET. Demandez à votre IDS / IPS de détecter de nombreuses demandes HEAD dans un court laps de temps et de faire ce qui est approprié.

cathper
la source