2025年4月末ごろ、運用しているWordPressサイト(https://www.ai-chan-xd.com/)で、500回を超えるログイン失敗の痕跡が残っているのを確認しました。

使用していた Limit Login Attempts Reloaded プラグインのダッシュボード上で分かり、
「これはさすがにマズいな」と思い、セキュリティ対策を行いました。
結果として、ログイン試行は0件にまで減少。今回は、そのときにやった対応を3つまとめておきます。
対策①:ログインURLの変更
WordPressのデフォルトのログインURL(wp-login.php
)は、誰でも予想できるため、攻撃の対象になりやすいです。
そこで、まずはログインページのURLを変更しました。
参考にした記事:
🔗 WordPressのログインURLを変更する方法 | WebPick
対策②:reCAPTCHAの導入
次に、GoogleのreCAPTCHAを設置して、
ログイン時に「私はロボットではありません」のチェックを入れるようにしました。
使用プラグイン:Login No Captcha reCAPTCHA
ただし、最終更新が1年以上前という点が少し気になるところです。
それでも導入してみたものの、攻撃は止まらず。
ログに以下のようなメッセージが出ました:
「Login NoCaptcha was bypassed on login page: xmlrpc.php」
つまり、reCAPTCHAが効かないxmlrpc.php経由で攻撃されていたということです。
対策③:「xmlrpc.php」を無効化
というわけで、xmlrpc.php
を使わせないようにしました。
.htaccess
に以下を追記します:
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
そもそも xmlrpc.php とは?
xmlrpc.php
は、WordPressに古くからある 外部ツールとの連携用インターフェース で、
XML-RPCというプロトコルを通じて、リモートから操作できるようにするためのファイルだそうです。
たとえば、WordPressアプリや一部のブログエディタから、記事を投稿・編集するといった用途で使われていたようです。
ただ、最近では代わりに REST APIが主流 になっていて、このファイルを使う場面は少なくなっているとのこと。
一方で、セキュリティ面ではいくつかの指摘もあるようです。
ログイン認証のブルートフォース攻撃や、pingback機能を悪用したDDoSの踏み台として使われることがあり、放置しておくと危険な経路になり得るとのことでした。
そのため、外部連携などで特に必要がなければ無効化しておくのが推奨されているようです。
対応の結果
上記3つの対策を終えた後、「Limit Login Attempts Reloaded」でのログイン失敗数が0件になっているのを確認できました。

おわりに
WordPressはとても便利なCMSですが、その反面、狙われやすいという側面もあります。
今回のように、基本的なセキュリティ対策を整えるだけでも大きな効果があるので、「うちは関係ないだろう」と思わず、早めの対策をおすすめします。