WordPressのセキュリティ対策|不正ログイン試行500回→0回の記録

公開日:2025/05/04

最終更新日:2025/05/10

PHP

WordPress

日記

WordPressサイトがブルートフォース攻撃を受け、ログイン失敗が500回超に。3つの対策で被害を食い止め、試行回数0件を達成した実録です。

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ですが、その反面、狙われやすいという側面もあります。

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