Предотвращение атак на WordPress xmlrpc.php и wp-login.php. Wordpress xmlrpc php
Решено: В Wordpress не работает удаленная публикация постов через xmlrpc
Публиковать посты в блог на WordPress удобно через клиенты, особенно если они с большим количеством картинок, сложным форматированием и другими возможностями, которые сложно или неудобно реализовать в редакторе админ-панели. Для этого используется стандартный протокол XML-RPC, который позволяет добавлять посты удаленно, но проблема в том что реализация этой возможности в WordPress имела уязвимости из-за этого многие хостеры стали использовать различные варианты ограничения доступа к файлу xmlrpc.php, также есть плагины для WordPress которые делают использование XMLRPC более безопасным и защищают Ваш блог.
Для написания постов в этот блог я иногда использую Windows Live Writer, это клиент для блогов от Microsoft, не скажу что он обладает какими-то супер возможностями, но он вполне удобен, последний раз я его использовал до переезда на нынешний хостинг и все работало, а недавний запуск оказался неудачным, при попытке опубликовать пост получил ошибку 404, мол файл xmlrpc.php не найден. Зайдя по FTP в папку с сайтом оказалось что файл на месте, недолгое разбирательство позволило выяснить причину — доступ к файлу заблокирован хостером. Мой хостер использует ModSecurity — я детально не разбирался, это что-то вроде защитного модуля, который защищает сайты от известных и не очень атак, если в панели управления хостингом его отключить то удаленная публикация — работала, но лишаться полностью защиты не хотелось, поэтому я написал в техподдержку и они разрешили доступ к xmlrpc.
На некоторых хостингах помогает добавление в .htaccess директивы (в моем случае не сработало):
<Files xmlrpc.php>SecFilterInheritance Off</Files>
Для дополнительной защиты от атак на xmlrpc можно использовать плагин Rename XMLRPC если не хотите использовать эту возможность используйте плагин Disable XML-RPC.Предотвращение атак на WordPress xmlrpc.php и wp-login.php — IT Blog
Заметил однажды на некоторых серверах с WordPress сайтами большое количество обращений к файлу xmlrpc.php и wp-login.php
Как оказалось кто-то пытался подобрать пароль и получить доступ к сайту, обычно такие вещи блокирует Jetpack, ограничивается доступ по IP в админку средствами веб-сервера, но на этих почему-то никакой защиты не было.
Посчитать количество обращений к файлу в логах можно командой:
grep 'xmlrpc.php' /var/log/apache2/access.log | wc -lКстати команду выше можно выполнять например из системы мониторинга Zabbix, рисовать по полученным данным график, а также уведомлять о увеличении количества обращений.
Посчитать количество по каждому IP и вывести список:
grep 'xmlrpc.php' /var/log/apache2/access.log | cut -d' ' -f1 | sort | uniq -c | sort -rПосчитать количество по каждому IP и вывести список для файла wp-login.php:
grep 'wp-login.php' /var/log/apache2/access.log | cut -d' ' -f1 | sort | uniq -c | sort -r grep 'wp-login.php' /var/log/apache2/access.log | awk '{print $1}' | sort -n | uniq -c | sort -nr | head -20Полностью запретить доступ к файлам так:
<Files wp-login.php> Order Deny,Allow Deny from all </Files> <Files xmlrpc.php> Order Deny,Allow Deny from all </Files>Если используется например Jetpack, то к wp-login.php лучше не ограничивать, так как могут возникнуть ошибки при обновлении плагина и отразится на его работе.В этом случае можно активировать защиту от подбора пароля в параметрах Jetpack.
Если Jetpack не используется можно установить другие плагины, например «WP Limit Login Attempts», который отображает капчу при авторизации, а также блокирует неверные попытки входа.Например плагином «Disable XML-RPC Pingback» можно отключить функции XML-RPC если они не нужны.
Также в файле robots.txt можно запретить индексирование поисковиками этих файлов:
User-agent: * Disallow: /xmlrpc.php Disallow: /wp-login.phpПохожее
ixnfo.com
Настройка xlmrpc.php в wordpress
Года три назад я установил на свой смартфон с android приложение для публикации постов в блоги на WordPress. Приложение в маркете числилось за официальным разработчиком блоговского движка, и если мне память не изменяет — это была версия 2.х. Залогинится к своему автономному блогу у меня тогда не получилось. Погуглив я выяснил, что проблема была как-то связана с файлом xmlrpc.php, отвечающего за доступ к движку блога из внешних программ. Тогда адекватных решений я не нашел. Помню лишь, что среди прочих советов было добавление в конец адресной строки поста xmlrpc.php и включение через чекбокс этого самого xmlrpc в настройках блога. Ничего не помогло. Углубляться в проблему я тогда не стал и идея постить в блог через смартфон была отложена до лучших времен.
И вот три года спустя я решил докопаться до истины. Приложение было заново установлено на телефон. Версия ПО уже котировалась за номером 4.х, собственно как и сам движок WordPress. Наконец-то в меню появился FAQ и логи загрузки. Кроме всего прочего xmlrpc в 4й версии движка включен по умолчанию. По логам сразу было видно, что мой запрос был отклонен хостером, а в faq давалась рекомендация по обходу этого досадного недоразумения путем установки плагина Rename XMLRPC, позволяющего заменить стандартное название файла xmlrpc.php из корневой папки WordPress на любое в формате xmlrpc-blablabla.php, чем я и поспешил воспользоваться. В результате приложение сразу законнектилось к блогу, даже не попросив указать точный путь к нему. Вопрос сего опуса таков — какого лешего создатели приложения так долго не могли запилить лог коннекта и адекватный FAQ с ответом? Ладно, оставим в покое разработчиков, пусть это будет на их совести. Надеюсь эта заметка поможет вам решить и вашу проблему с xmlrpc.php, если, не дай бог, она возникнет. Удачи.
PS: для проверки работоспособности xmlrpc существует специальный сервис http://xmlrpc.eritreo.it , на котором можно посмотреть какой ответ дает сервер при запросе к файлу.
PSS: и не забывайте, что xmlrpc.php является уязвимым местом для хакерских атак на ваш сайт, именно по этой причине провайдеры закрывают к нему доступ.
buran9.ru