Главная > Блого и сайтоводство > Почему выросла нагрузка на сервер?

Почему выросла нагрузка на сервер?

nagruzka-na-hostingНе успели отзвучать фанфары и отгреметь литавры по поводу успешного прогона с сайтов скрытых ссылок, на блога на пасть напала новая напасть – повышенная нагрузка на сервер. Радость разгаданного кроссворда была недолгой, ибо пришлось разгадывать еще один. В разгар новогодних праздников от хостера хостинга Бегет-ру пришло сообщение о превышении нагрузки на сервер сразу по двум разным аккаунтам, а в это время я активно публиковал статьи и обновлял кеш сайтов. Я подумал, что именно эти действия привели к выше указанной ситуации, но нет, и на следующий день относительного затишья в работе над сайтами нагрузка на сервер не упала. Пришлось лезть в логи сайтов на хостинге (к чести техподдержки beget.ru – они не банят сайты и аккаунт за превышение сразу, а относятся к этому, по-моему, довольно лояльно).

Если вы не знаете, что такое «логи», попробую объяснить в двух словах. Логи – это обычные текстовые файлы на сайте, которые формируются при обращении к нему. Есть два их типа: лог доступа и лог ошибок. Чтобы просмотреть их, не нужно специального образования, достаточно просмотреть любой программой, которая понимает текстовый формат, например, блокнотом. В логе доступа пишется, с какого IP зашел посетитель, в какой время и какой файл или страница была ему интересна в данный момент. В логе ошибок пишется аналогичная информация, за исключением того, что в нем указывается, какой файл или страницу посетитель (точнее, его браузер или иная программа) не смог получить по какой-либо причине.

Ведение логов для сайтов обычно настраивается в панели хостинга, и часто по умолчанию они отключены. Так вот, у меня тоже логи включены не для всех сайтов, но на одном меня заинтересовало частое обращение посетителей к одному файлу – xmlrpc.php, причем обращение шло с двух IP-адресов в течение нескольких суток, что и создавало нагрузку на хостинг. Я так понимаю, что подобные обращения шли не только на этот мой сайт, но и на другие.

В Сети я узнал, что использование уязвимости протокола вызова удаленных публикаций применяется при брутфорс-атаках на wordpress, когда злоумышленники подбирают пароли к админке сайта или совершают другие противоправные действия. На картинке видно, с какой периодичностью шли обращения «POST /xmlrpc.php HTTP/1.1» – буквально каждые несколько секунд. Например, на момент публикации заметки уже более 9000 обращений только на один сайт.

ataka

Чтобы закрыть эту уязвимость, необходимо прописать в файле .htaccess следующее:

# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Либо можно скачать любой из плагинов, отключающих протокол xmlrpc. В Сети этих плагином много, при желании вы сами сможете найти. О наборе плагинов для защиты от хакеров я писал здесь —>. После описанных манипуляций нагрузка на хостинг стала падать и сегодня примерно в 3-4 раза ниже, чем была вчера. На нижней картинке, где отмечено примерное время, текущая нагрузка была «7,5», но до этого иногда возрастала и более «10», а сегодня находится в пределах «2,1-2,5».

nagruzka-na-hosting

На картинке видно, как возросла нагрузка на сервер, начиная со 2 января, а на картинке ниже сообщения из лога ошибок о недоступности файла xmlrpc.php, но мы этого и добивались.

blokirovka

Попутно опишу еще один важный момент. При брутфорс атаках, направленных на подбр пароля к админке сайта, часто обращение идет к файлу wp-login.php. Скачайте себе его на компьютер, измените название на любое (ваше-слово), оставив расширение файла прежним. Откройте файл текстовым редактором (я пользуюсь Notepad++), и поменяйте в нем все встретившиеся названия «wp-login.php» на «ваше-слово.php». Естественно, «ваше-слово» должно быть написано латиницей. Затем скопируйте измененный файл в корневую директорию вордпресс, не удаляя старого. После чего можно в файл .htaccess вписать следующее:

# protect wp-login.php
<Files wp-login.php>
Order Deny,Allow
Deny from all
</Files>

При этом при попытке открыть админку стандартным методом будет появляться сообщение об ошибке. В админку не сможете попасть даже вы. Но это нам и нужно – защитить вход в админку от подбора паролей. А как самим попадать в админ-панель? – спросите вы. Для этого мы используем наш измененный файл и вход будет выполняться по данному адресу: http://адрес-сайта.ру/ваше-слово.php. Немного неудобно, но привыкнуть недолго. Этот же файл вы можете скопировать на все свои сайты, не забыв добавить запись в файл .htaccess (вход везде будет одинаковым). Тем самым вы не только снизите нагрузку на сервер, но и защитите свои сайты от взлома.

Ну а вдобавок вы можете прописать следующие пару инструкций, которые прибавят к защите еще немного.

# Protect the htaccess file
<files .htaccess>
order allow,deny
deny from all
</files>

# Protect wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Если вы захотите вернуть прежний вход в админку, измененный файл удалять не обязательно, достаточно удалить запись из .htaccess.

Автор – vtuson

Блого и сайтоводство

  1. Пока что нет комментариев.