Блокировка xmlrpc.php в WordPress на Synology

Привет всем!!!

Давайте я еще раз расскажу как заблокировать xmlrpc.php в WordPress на Synology и не только.

Для чего это делать и почему я рассказывать не буду, я просто расскажу свой опыт как я это сделал. Если вы сюда пришли, значит вы уже знаете ответ на этот вопрос, если нет, то перейдите по ссылке.

Блокировка xmlrpc.php в WordPress на Synology

Метод первый: установить плагины для блокировки. Метод хороший тем, что он простой, но не мой путь.

Метод второй: заблокировать через файл .htaccess. В корневом каталоге сайта лежит этот файл. Открываем его любым текстовым редактором (кстати на Synology он есть в центре пакетов) и в самый низ вставляем:

# BEGIN protect xmlrpc.php
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
# END protect xmlrpc.php

Поидеи на этом можно было бы закончить, но в моем случаи сайт переставал работать и выдавал ошибку 500.

Начал я искать логи и смотреть что не так. Логи лежат в /var/log/httpd/apache24-error_log

.htaccess: Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration, referer

Недолго искав решение в интернете я понял в чем дело. Оказалось, что я использую web сервер Apache2.4 и в нем поменялся синтаксис конфигурации. Все что осталось придумать как преобразовать:

# BEGIN protect xmlrpc.php
<Files xmlrpc.php>
Require all denied
</Files>
# END protect xmlrpc.php

Все, дело сделано, сайт работает, доступ к xmlrpc закрыт.

Я был бы не я если бы не проверил. Для начала просто открываем https:/имя_сайта/xmlrpc.php Если запрет работает, то увидите ошибку, а в логе web сервера сообщение:

[authz_core:error] [pid 21313:tid 139825569113856] [client IP:50690] AH01630: client denied by server configuration: /volume1/.../xmlrpc.php

Второй метод проверки:

curl -X POST   -H 'Cache-Control: no-cache'   -H 'Content-Type: application/xml'   -d '<methodCall><methodName>system.listMethods</methodName></methodCall>'   https://имя_сайта/xmlrpc.php

В ответ должны увидеть что угодно, но только не ответ протокола xmlrpc.

А что делать если у вас Nginx? В этом случаи нужно править файл кофигурации данного сервера, что для Synology совсем не правильный путь. Поэтому этот web сервер лучше не использовать, а очень хочется))) Но если у вас не Synology то привиду пример и для этого случая на всякий случай:

location = /xmlrpc.php {
          deny all;
          access_log off;
          log_not_found off;
}

Естественно, что после правки web сервер надо рестартануть.

На этом статья закончена, но если будут дополнения появляться буду вносить. Желаю всем удачи!!!

Канал Телеграм Канал Дзенс Группа ВКонтакте Канал YouTube Канал Rutube

Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии