KUSANAGI MAGAZINEで「きもおたわーどぷれす。」が紹介されました! クリックで公式サイトが開きます。

Nginxでxmlrpc.phpを無効にしてセキュリティリスクを減らしてみた【KUSANAGI8・9】

この記事は約4分で読めます。
記事内に広告が含まれています。

WPSCAN」を入れてチェックしてみたところ「xmlrpcが有効になっている」と怒られました。
Login rebuilderを入れていた頃はそちらで対処していたのですが、そのまま忘れていたようです。
Nginxなら設定簡単なのでやってしまいます。

対処法だけ知りたい方は、目次から「Nginxの設定ファイルに追記する」へ飛んでください

アイキャッチの画像はKUSANAGIのイメージキャラクター草薙沙耶 ©PRIME STRATEGY

スポンサーリンク

xmlrpcを無効にする理由

どうしてxmlrpcを無効にしなくてはならないか?
ざっくり言えば、

DDoS攻撃やプルートフォースアタックの対象になるから!

xmlrpcの用途はリモート投稿など。
使っていない人は止めても問題ありません。
一方で「ピンバック機能だけ」など限定して止めることもできます。

詳しくはこちらに書かれています。

WordPressのxmlrpc.php徹底解説(無効化すべきセキュリティ上の理由とその方法)
なぜWordPressには未だにxmlrpc.phpファイルが同梱されているのでしょう。セキュリティを鑑みると、無効化したほうが良いのでしょうか。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。

Login rebuilder~KUSANAGI(Nginx)でログインページURLを変更できるセキュリティプラグイン
本記事はプラグインLogin rebuilderの紹介です。Login rebuilderはWordPressのログイン画面を変更することでセキュリティを強化します。他と違いNginxでも動くのがポイント、KUSANAGIユーザーには重宝します。

作者様による説明はこちら。
きめ細やかな設定が可能です。

https://elearn.jp/wpman/column/c20151231_01.html

KinstaではREST XML-RPC Data Checkerを推奨しています。

REST XML-RPC Data Checker
REST XML-RPC Data Checker allow to check JSON REST and XML-RPC API requests and ...

私は未検証ですが、REST APIまで対応したいならおすすめかもです。

スポンサーリンク

JetPackプラグインの「is not connected.: 200」がサイトヘルスで出る際の対処法

JetPackプラグインを使っていてxmlrpcを停止すると、サイトヘルスで「is not connected.: 200」と怒られます。
これについてですが、

放置でいいんじゃない?

少なくとも統計情報と死活監視は動いてます。
もしかしたらプラグインのインストール時に一度はxmlrpcを停止して接続する必要はあるかもですが。
停止を再開したらメッセージは再び現れます。
現状で動いているなら問題ないです。

気になるのでしたら部分的な停止に変更するか、Jetpackをアンインストールするのがよろしいかと。
もっとも有用と思われた機能の統計情報は有料化しちゃいましたし。
他の機能はほとんど何かしらで代用できますので。

スポンサーリンク

まとめ

完全に止めたいのなら対処は簡単
忘れずにやっておきましょう

サイトを始めたい・引っ越したい方へ

おすすめレンタルサーバー「ConoHa WING」
Webサーバー処理速度 国内最速!
サイト管理・カスタマイズのタイパも抜群!
自動化AIのWEXALによって他社より負担を減らせます
各種キャンペーン施策によりコスパも抜群!
ConoHaに初めて入会かつ12か月以上のWINGパックなら
下のボタン経由で契約すると最大5000円の割引が受けられます

この記事を書いた人

素人の備忘録です。
素人がゆえにトラブルにぶつかりまくってきたので、同じように困った方の役に立てたらいいなと思ってます。
8年来のKUSANAGI推し。

元公安調査庁職員、発達障害(ADHD)

天満川 鈴をフォローする
KUSANAGI・WEXAL
タイトルとURLをコピーしました