Sous DoS, comment modifier MediaWiki pour rejeter rapidement toutes les requêtes d'édition et d'historique pour les users anonymes

L'un de nos projets basés sur MediaWiki semble sous une attaque DoS – un nombre inhabituel d'users anonymes essayent d'éditer des pages et de visualiser ou d'éditer des requests d'historique. Alors que l'édition anonyme est désactivée sur ce projet et que ces users anonymes (je suppose, bots) ne peuvent pas modifier les pages, la charge est suffisamment grave pour ralentir considérablement le server.

Nous n'avons qu'une boîte server avec environ 8 Gb de RAM dédiée à ce projet. Il exécute la récente version MediaWiki sur le server Apache sous Linux.

L'une des idées serait de modifier (peut-être temporairement) un code MediaWiki pour interdire aux users anonymes de modifier, afficher la source et éditer les requests d'historique – et faire ceci tôt est le stream, assurez-vous que les tentatives sont rejetées avec les ressources minimales à ce sujet.

Ou, peut-être, ce n'est pas une bonne idée et quelque chose d'autre peut être fait. Nous bloquons actuellement le trafic avec des IPTables et cela fonctionne pour nous (le site rest opérationnel). Cependant, un tel blocage nécessite trop d'attention – l'attaquant semble contrôler un nombre assez important d'adresses IP de tous les coins du monde.

En supposant que nous avons un contrôle total (access racine) au server Linux, cela pourrait être fait pour le protéger plus correctement?

Nous appliquons déjà les approches au niveau de l'user final, comme la désactivation de l'édition anonyme via une interface Web. Cela génère toujours une charge suffisante pour ne pas être une solution complète. De plus, la simple suppression des controls n'est pas suffisante: les requêtes d'édition viennent même si l'onglet "modifier" n'est déjà pas visible.

S'il s'agit de spambots essayant d'éditer, vous pouvez essayer certaines des solutions antispam au niveau du server web: https://www.mediawiki.org/wiki/Manual:Combating_spam#Hardcore_measures Ou cela pourrait être que vos mesures antispam apportent le site vers le bas, ce n'est pas rare; vérifiez que vos solutions sont performantes, certains remèdes sont pires que la maladie.

Si vous n'êtes pas vraiment sûr de vérifier que ce sont des spambots, peut-être que ce sont les moteurs de search. Assurez-vous que vous configurez un file robots.txt excluant ScriptPath de l'exploration, de sorte que seules les URL de la page canonique sont indexées, mais pas une URL avec des parameters pour api.php ou index.php. Établissez également un timeout d'parsing si nécessaire.