Недавно столкнулся с тем, что хостер стал писать мне о превышении выделенного мне лимита процессорного времени – проще говоря High CPU Load. При том на активных сайтах прироста посещаемости не было – все так же в пределах 50-100 уников в сутки.
Естественно первой мыслью было, что что-то не в порядке с самим WordPress, но добавление плагина для кеширования запросов к базе (DB Cache reloaded Fix) и проверка функционирования WP Super Cache не дала никаких результатов. Точнее DB Cache снизил нагрузку на полпроцента, что было мало.
Пришлось включать логи доступа, которые и показали, что нагрузку создает три файла на lifelongjourney.ru: wp-cron.php, wp-login.php, wp-admin.php и один файл на expeditionlife.ru: administrator/index.php.
Начнем по порядку
wp-cron.php
Это реализация выполнения запланированных задач движком WordPress. Был скопирован в файл с совершенно другим названием и его запуск был отдан системному cron раз в 4 часа. В самом же wp-cron.php была прописан команда die() сразу при запуске. Т.о. больше этот файл не делает ничего.
wp-login.php
В теории этот файл вызывается только при попытке логина. Прямых ссылок на него у нас ни где нету, поисковикам запрещено к нему ходить в robots.txt, но почему-то он стал вызывался очень часто, особенно после манипуляций с wp-cron.php
wp-admin.php
Панель администрирования WordPress – мы ей постоянно пользуемся для написания постов и управления сайтом. Но вот странность – 2 дня мы специально не заходили в админку. А дергали ее все это время с завидной регулярность.
administrator/index.php
Это панель администрирования Joomla, в нее я вообще не заходил уже месяца 2, а тут она просто в топе обращений.
Судя по всему кто-то сильно хотел попасть в админку моих сайтов, что естественно не очень понравится любому здравомыслящему человеку.
Закрываем доступ к панели администратора и другим важным файлам
Чтобы отсечь всех нежелательных посетителей от важных файлов проще всего использовать .htaccess – тогда хостинг не будет тратить процессорное время и траффик на генерацию каких-либо страниц, а просто покажет 403 ошибку.
Добавляем следующие строчки в .htaccess
<Files wp-logion.php>
order deny,allow
deny from all
Allow from YOUR_IP
</Files>
Теперь никто не сможет обратиться к файлу wp-login.php не с вашего адреса. Естественно, что лучше указать список адресов с которых Вы обычно выходите в сеть. Тоже прописывается для каждого нужного файла.
Для Joomla запрещаем выполнять все три Index.php
<FilesMatch “(index|index2|index3)\.php$”>
order deny,allow
deny from all
Allow from YOUR_IP
</FilesMatch>
Ну вот мы и отсекли “посетителей” от страницы админки и логина, что сразу уменьшило нагрузку на хостинг в два раз.
Здравствуйте, а подскажите пожалуйста как прописать что заходить в админку вордпресс могут только с 2-ух IP адресов?
Прям кусочек кода который мне нужно вставить в файл haccess , вместо адресов просто цыферки 123456 для примера.
А то я не совсем сильна в этом, а нужно сделать(((
Вот прямо кусочки кода:
#Security begin
order deny,allow
deny from all
Allow from IP1+подсеть/16 #home net
Allow from IP2 #office
order deny,allow
deny from all
Allow from IP1+подсеть/16 #home net
Allow from IP2 #office
Упс .. теги порезало….
#Security begin
<Files wp-admin.php>
order deny,allow
deny from all
Allow from IP+subnet/16 #home net
Allow from IP #office
</Files>
<Files wp-login.php>
order deny,allow
deny from all
Allow from IP+subnet/16 #home net
Allow from IP #office
Allow from 128.73.0.0/16 #Smolensk
</Files>
только пробелы уберите возде символов < и >