Предотвращение атак на 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.

kakpedia.org

Предотвращение атак на 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

В конфигурации apache2 или через файл .htaccess можно ограничить доступ к директории /wp-admin/ по IP, например так:

<Directory /var/www/site/wp-admin/> Options -Indexes AllowOverride All Order allow,deny allow from 127.0.0.1 192.168.11.25 </Directory>

Полностью запретить доступ к файлам так:

<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


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта