「WPSCAN」を入れてチェックしてみたところ「xmlrpcが有効になっている」と怒られました。
Login rebuilderを入れていた頃はそちらで対処していたのですが、そのまま忘れていたようです。
Nginxなら設定簡単なのでやってしまいます。
対処法だけ知りたい方は、目次から「Nginxの設定ファイルに追記する」へ飛んでください
アイキャッチの画像はKUSANAGIのイメージキャラクター草薙沙耶 ©PRIME STRATEGY
xmlrpcを無効にする理由
どうしてxmlrpcを無効にしなくてはならないか?
ざっくり言えば、
DDoS攻撃やプルートフォースアタックの対象になるから!
xmlrpcの用途はリモート投稿など。
使っていない人は止めても問題ありません。
一方で「ピンバック機能だけ」など限定して止めることもできます。
詳しくはこちらに書かれています。
特に強調したいのはこちら。
現在では、REST APIがXML-RPCに取って代わったため、サイトのxmlrpc.phpは無効にするのがいいでしょう。
(引用:kinsta「WordPressのxmlrpc.php詳細ガイド(xmlrpc.phpとは、セキュリティリスク、無効にする方法)
なおさら止めても問題ありませんね。
xmlrpcを無効にする方法
Nginxの設定ファイルに追記する
無効にするだけなら簡単だよ
サーバー側でアクセスを禁止してしまいます。
KUSANAGI8の場合、
/etc/nginx/conf.d/【プロファイル名】.ssl.conf
KUSANAGI9の場合、
/etc/opt/kusanagi/nginx/conf.d/【プロファイル名】.conf
を開き、次の記述を加えます。
location = /xmlrpc.php { deny all; return 404; }
KUSANAGI9の場合はssl設定(全体から見て2つある設定の下の側)に記述します。
終わったら、
# kusanagi restart
ブラウザからアクセスしてxmlrpcが無効になったか確認します。
【自サイトのURL】/xmlrpc.php
404が返ってくればOKです。
備考 functions.phpに追記する方法について
調べたなかで前項の方法よりも広く紹介されているのはフックに引っかけて停止させる方法。
以下を子テーマのfunctions.phpに追記します。
add_filter( 'xmlrpc_enabled', '__return_false' );
ただ以前にWPSCANでテストしたときは「部分的にしか止まってない」と怒られました。
xmlrpcを部分的に無効にする方法
完全には止めたくないという方もいらっしゃると思います。
その場合はプラグインを使う方が簡単です。
私が使っていたのはLogin rebuilder。
作者様による説明はこちら。
きめ細やかな設定が可能です。
KinstaではREST XML-RPC Data Checkerを推奨しています。
私は未検証ですが、REST APIまで対応したいならおすすめかもです。
JetPackプラグインの「is not connected.: 200」がサイトヘルスで出る際の対処法
JetPackプラグインを使っていてxmlrpcを停止すると、サイトヘルスで「is not connected.: 200」と怒られます。
これについてですが、
放置でいいんじゃない?
少なくとも統計情報と死活監視は動いてます。
もしかしたらプラグインのインストール時に一度はxmlrpcを停止して接続する必要はあるかもですが。
停止を再開したらメッセージは再び現れます。
現状で動いているなら問題ないです。
気になるのでしたら部分的な停止に変更するか、Jetpackをアンインストールするのがよろしいかと。
もっとも有用と思われた機能の統計情報は有料化しちゃいましたし。
他の機能はほとんど何かしらで代用できますので。
まとめ
完全に止めたいのなら対処は簡単
忘れずにやっておきましょう