WordPressのxmlrpc.phpをNginxで無効化する方法【KUSANAGI対応】

セキュリティ診断サービスで「xmlrpcが有効になっている」と怒られました。
以前はプラグインで停めていたのですが、外したときに忘れてしまったようです。
Nginxなら簡単なので、すぐさま対処しました。

本記事ではKUSANAGI(Nginx)環境でxmlrpc.phpを無効化する方法を紹介します。

天満川鈴 WRITTEN BY 天満川鈴
スポンサーリンク

xmlrpcを無効にする理由

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

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

現在はREST APIが主流でxmlrpcを利用する場面はほとんどありません。
そのため、利用していないのであれば停止しておくのが無難です。

xmlrpcを無効にする方法

Nginxの設定ファイルに追記する

サーバー側でアクセスを禁止してしまいます。

以下はKUSANAGIの配置です。
お使いの環境にあわせて読み替えてください。

/etc/opt/kusanagi/nginx/conf.d/【プロファイル名】.conf

を開き、ssl設定(全体から見て2つある設定の下の側)に記述します。

location = /xmlrpc.php {
deny all;
return 404;
}

終わったら、

# kusanagi restart

一般的なNginxの場合は、

# nginx -t
# systemctl reload nginx

ブラウザからアクセスしてxmlrpcが無効になったか確認します。

【自サイトのURL】/xmlrpc.php

404が返ってくればOKです。

備考 functions.phpに追記する方法について

調べたなかで前項の方法よりも広く紹介されているのはフックに引っかけて停止させる方法。
以下を子テーマのfunctions.phpに追記します。

add_filter( 'xmlrpc_enabled', '__return_false' );

ただ以前にWPSCANでテストしたときは「部分的にしか止まってない」と怒られました。
それでも構わなければ、簡易的には用をなします。

xmlrpcを部分的に無効にする方法

完全には止めたくないという方もいらっしゃると思います。
その場合はプラグインを使う方が簡単です。

私が使っていたのはLogin rebuilder。

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

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

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

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

実運用に問題が出ていなければ放置でいいと思います

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

まとめ

使っていない機能を放置するのは、攻撃対象を増やすに等しい行為です。

対処は簡単、忘れずにやっておきましょう!

 

スポンサーリンク
天満川 鈴のプロフィール画像
WRITTEN BY

天満川 鈴

未経験からWEB業界に入り、現在はWEBディレクターとして実務に従事。 要件整理・導線設計・コンテンツ構成などを学びながら、日々改善を重ねています。 AIを活用したコンテンツ制作・効率化を強みとし、プロンプト設計を含めた制作フローの最適化にも取り組んでいます。
本サイトでは、WordPressやサイト制作に関する試行錯誤・検証内容を中心に発信。 技術検証の一環として、KUSANAGI公式サイトにて記事を2回紹介いただきました。

KUSANAGI ON VPS

VPSは、もう「黒い画面」だけじゃない。

「VPSは難しそう」と諦めていませんか? ConoHaのKUSANAGIなら、ブラウザ上の管理画面(KUSANAGI Manager)で、ドメイン設定からSSL発行まで直感的に操作可能です。

コマンド操作なしで世界最速級の環境を構築できる、今の時代の初心者にとっての最適解。私が長年愛用している理由がここにあります。

※当サイト経由で新規申し込みいただくと、特典として1000円分のクーポンをもらえます。

公式サイトで詳細を見る
× 閉じる