Y a-t-il un moyen de voir les adresses IP des utilisateurs anonymes / invités ?
Et/ou le nombre de connexions de chacun ?
Mon site reçoit des centaines et des centaines de pages vues par minute, depuis quelques heures, l’utilisation du processeur est également au maximum à 100 %.
Avez-vous vérifié vos logs Nginx (ou quel que soit votre système) ? Ce sont des bots et des tentatives d’intrusion. Vous ne faites rien avec les adresses IP. Celles-ci changeront après quelques tentatives (les adresses IP sont inutiles de toute façon, elles changeront toujours). Vous devriez commencer par le géo-blocage (assez peu de sites sont vraiment mondiaux) et bannir de nombreux user agents au niveau du serveur ; au moins tous les scrapers SEO totalement inutiles et gourmands, les bots qui s’identifient comme IE5.x, etc.
Si vous avez effectué une installation standard, il devrait y avoir une limitation de débit (et une partie est dans Rails). Comment avez-vous installé ?
Comment fonctionne cette limitation de débit en fait (non, je n’ai pas cherché la réponse). Va-t-elle s’activer après un certain nombre de requêtes dans un laps de temps donné par IP ?
Quoi qu’il en soit, lorsqu’il y a une situation de type ddos, dans le sens où par exemple une URL est mentionnée dans une stupide liste, alors commence un déluge d’IP venant de Chine, du Pakistan, d’Iran, d’Irak, du Vietnam et de Russie, plus beaucoup de VPS de grands services, principalement des États-Unis, de France et d’Allemagne. Quand ils essaient 3 fois et changent d’IP, la limitation de débit n’aide pas beaucoup.
J’ai eu à un moment donné beaucoup de recherches stupides. Et beaucoup signifie qu’un droplet à 5 USD de DigitalOcean a planté et je n’avais presque aucune requête de la part d’humains.
C’est plus ou moins une question de serveur web, pas de Discourse. Ces attaquants devraient être bloqués avant l’application. Je sais que ma situation/mes solutions sont beaucoup plus faciles que celles de l’OP ou de la plupart des webmasters ici car je suis finlandais et mon forum est purement finlandais — donc bannir le monde entier m’est possible (bon, les Finlandais vivant à l’extérieur de la Finlande voient cela différemment )
Mais indépendamment de la limitation de débit, au moins les faux agents utilisateurs devraient être arrêtés immédiatement.
Qu’en est-il des attaquants SSH ? Ceux-ci consomment aussi des ressources.
Si vous rencontrez des problèmes de ddos, je vous recommande cloudflare (ce que je fais presque jamais). Assurez-vous d’utiliser le modèle cloudflare, puis désactivez les optimisations (ou lisez attentivement la configuration de celles-ci).
Ce n’est pas un vrai ddos. Mais lorsqu’il y a beaucoup de requêtes du même type, elles agissent comme un ddos, le résultat est le même. J’utilise Varnish et Fail2ban, ainsi que le géo-blocage, et cela fait le travail pour moi.
Ma première pensée a été simplement d’être “slashdotted”, mais 24 heures plus tard, je suis toujours attaqué.
La solution temporaire rapide a été de fermer la porte d’entrée et de définir le site sur “connexion requise”. Ce qui a fonctionné, l’utilisation du CPU est passée de 100 % à 3 % en 60 secondes.
Dès que je rouvre la porte d’entrée, ma page /search est instantanément submergée par des requêtes inutiles comme :
Cela se produit dans les 60 secondes suivant la réouverture du site.
Nous sommes un petit groupe de niche, je ne sais pas pourquoi quelqu’un nous ciblerait avec quoi que ce soit
Ce n’est qu’une estimation, mais selon Google Analytics, nous avons normalement 8 à 10 utilisateurs actifs et cela monte en flèche à plus de 1 000 en quelques secondes après que j’aie rouvert le site au public. Toutes les connexions proviennent de diverses régions des États-Unis, toutes directes sans référents.
Je vais laisser le site fermé aux membres uniquement pendant quelques jours et voir si cela disparaît, ou voir si je peux limiter la page /search aux utilisateurs connectés uniquement, et sinon, je devrai probablement passer par Cloudflare.
Je pense que vous pouvez également regarder dans /var/discourse/shared/log/var-log/nginx/.... (ou quelque chose de très similaire). Il existe d’autres paramètres comme slow down crawler user agents si vous recherchez “agent” dans les paramètres.
Tous ces paramètres n’aident que si un robot suit les limites et les guides. Même Googlebot ne le fait pas tout le temps et les mauvais jamais. C’est l’une des raisons pour lesquelles robots.txt est si inutile.
Et avertissement. Je ne sais pas si Discourse utilise une autre technologie pour ralentir.
Non, nous ne nous éloignons pas. Parce que votre question était un peu à côté de la plaque Vous vouliez connaître un petit détail alors que vous auriez dû demander « que faire quand mon Discourse est attaqué par des bots/ddos ».