Один из наших проектов на базе MediaWiki, похоже, подвергся DoS-атаке - необычное количество анонимных пользователей пытается редактировать страницы и просматривать или редактировать запросы истории. Хотя анонимное редактирование отключено в этом проекте, и эти анонимные пользователи (я предполагаю, боты) не могут фактически изменять страницы, нагрузка достаточно серьезна, чтобы значительно замедлить сервер.
У нас есть только одна серверная коробка с 8 Гб оперативной памяти, выделенной для этого проекта. Он запускает последнюю версию MediaWiki на сервере Apache под Linux.
Одна из идей состояла бы в том, чтобы изменить (возможно, временно) некоторый код MediaWiki, чтобы запретить анонимным пользователям редактировать, просматривать исходный код и редактировать запросы истории - и сделать это раньше - это поток, убедитесь, что попытки отклоняются с минимальными ресурсами для этого.
Или, может быть, это плохая идея и можно сделать что-то еще. В настоящее время мы блокируем трафик с помощью IPTables, и это работает для нас (сайт продолжает работать). Однако такая блокировка требует слишком большого внимания - злоумышленник, кажется, контролирует довольно большой пул IP-адресов со всех уголков мира.
Предполагая, что у нас есть полный контроль (root-доступ) к серверу Linux, что можно сделать для его более надежной защиты?
Мы уже применяем подходы на уровне конечного пользователя, такие как отключение анонимного редактирования через веб-интерфейс. Это все еще создает достаточную нагрузку, чтобы быть полным решением. Кроме того, просто скрыть элементы управления недостаточно - запросы на редактирование приходят, даже если вкладка «редактировать» уже не отображается.
Если речь идет о спам-ботах, которые пытаются редактировать, вы можете попробовать некоторые из решений для защиты от спама на уровне веб-сервера: https://www.mediawiki.org/wiki/Manual:Combating_spam#Hardcore_measures Или может случиться так, что ваши антиспамовые меры приводят к зависанию сайта, это не редкость; убедитесь, что ваши решения эффективны, некоторые лекарства хуже болезни.
Если вы на самом деле не уверены, что это спам-боты, возможно, это просто поисковые системы. Убедитесь, что вы настроили robots.txt, исключающий ScriptPath из сканирования, чтобы индексировались только канонические URL-адреса страниц, но не URL-адреса с параметрами для api.php или index.php. Также при необходимости установите задержку сканирования.