У меня опять превышение нагрузки на одном из аккаунтов хостинга Beget, с одной стороны бесит, так как такого нет на других хостингах, с другой стороны, если разбираться, то можно увидеть, что сайт пытаются взломать, а на другом хостинге этого и не заметишь, здесь дается тревожный сигнал, на который нужно срочно реагировать.
В прошлый раз нагрузка переваливала за 100, тогда наибольшую нагрузку несла несуществующая страница site.ru/edit, решением стало обработка этой страницы через htaccess, когда сервер сразу знает, что страницы не существует и говорит об этом роботам, то нагрузка значительно меньше, поэтому тогда я справился с ней, сейчас снова нагрузка превышена, в среднем она составляет 52CP в то время как, разрешенный максимум — 50, а при нормальном состоянии всех сайтов ~15 при посещаемости около 5000 хостов в сутки. Сейчас я снова выясню какие страницы делают наибольшую нагрузку и буду принимать решение, что с ними делать.
Итак, заходим в аккаунт Beget и переходим по ссылке журналы, ее картинка в виде открытой тетрадью с карандашом, рядом со свиньей-копилкой, через которую мы оплачиваем хостинг:
Выбираем сайт и нажимаем кнопку включения, это проделываем для всех сайтов:
Если у вас много сайтов, а проблему нужно решать срочно, то попросите данные по нагрузке у тех.поддержки через тиккет. Вот так выглядело мое обращение:
Помогите справиться с нагрузкой. Это же ддос-атака или попытка взлома, подскажите какие страницы каких сайтов или какие файлы делают максимальную нагрузку.
В итоге мне прислали подробный отчет, в котором было написано какие страницы каких сайтов приносят наибольшую нагрузку, а также дали советы как справиться с этим. Пожалуй, такой отчет даже лучше, чем тот, который мы сможем получить самостоятельно.
После того, как мы включили ведение журнала появится возможность включить скрипт Awstat, введите логин и пароль для доступа, он и будет отслеживать статистику, где-то через сутки мы увидим, что именно грузит наш сайт. Перейти в статистику можно будет на той же странице (журналы).
На главной странице переходим во вкладку «Адрес страницы (Топ 10)». Можно перейти в полную статистику нажав на ссылку «Полный список» в этой таблице, мне пока достаточно этой. Среди адресов страницы ищем «странные» — страницы входа в админку, страницы, которых не существуют, в-общем, страницы, на которые не попадает обычный пользователь, на скриншоте я оставил такие страницы, все остальное закрасил черным:
На страницу /wp-login.php я, конечно заходил, но никак не 10000 раз за месяц, если считать с запасом, то максимум 100 раз, поэтому здесь очевидна попытка взлома. Про страницу /wp-admin/admin-ajax.php я точно не знаю, но предполагаю, что она используется при входе через wp-login, ее тоже нужно оградить от злоумышленников.
Я думаю в таком случае подойдет плагин, который меняет адрес админки.
В качестве плагина смены адреса админки я выбрал Better WP Security — по ссылке есть очень подробное описание плагина, поэтому не буду снова все писать. Плагин вносит очень много изменений, поэтому сделайте резервные копии файлов и базы данных, прежде чем устанавливать его.
В данный момент меня интересует пункт «Hide», переходим в эту вкладку, ставим галочку и вводим новые названия для всех пунктов:
Теперь, когда кто-то или что-то попытается войти по адресу /wp-login.php он попадет на страницу /not_found. И на сколько я понял, если он будет очень часто заходить на несуществующую страницу, то система его заблокирует, поэтому дополнительно запрещать заходить на страницу /wp-login.php через htaccess я не буду, но посмотрю нагрузку завтра-послезавтра. Позже будет еще один пост, напишу о том как справляется плагин, а также о дополнительных настройках, если они потребуются.
Это еще что :)
Вот когда начнутся обращения к любой странице с подставновкой в конце «/edit» и сам запрос будет POST, будет еще веселее :) У меня нагрузка и за 250 уходила. :)
Но все закрывается через htaccess, я и доступ к wp-login там же закрыл — теперь сначала надо ввести пароль на уровне сервера (что вообще не создает на него никакой нагрузки), а потом уже на уровне WP.
Можно ли пример домена, на котором стоит такая защита. Любой сайт. Есть подозрение что она не работает.
Ты про двойной слэш? С этим справляется.
Ваш комментарий куда более интересней этой статьи.
А можно поподробнее как закрыли в htaccess «/edit» ?
Ситуация один в один!
Подскажите, пожалуйста каким образом можно обработать через htaccess несуществующую страницу?
И есть ли другие способы с /wp-admin/admin-ajax.php — приведенный вами мне не подходит, к сожалению.
Вы кэширование включили с помощью wp super cashe? Это очень сильно снижает нагрузку. Если admin-ajax.php запретить, то сайт неправильно будет работать, на сколько я помню.
Вот тут хорошая статья по защите — pervushin.com/wordpress-login-config-protect.html
Спасибо!