【付録】実録!WordPressへの攻撃ログを全公開!プロが教える「死守」するためのセキュリティ対策

Linux

【付録】あなたのサーバーは既に狙われている

こんにちは!「リナックス先生」です。
全3回の構築講座、お疲れ様でした!
「これで自分だけのブログができた!安心だ!」と思っていませんか?

残念ながら、Webサーバーをインターネットに公開した瞬間から、24時間365日、世界中のハッカー(ボット)からの攻撃に晒され続けます。

コウ君

えっ…脅かさないでくださいよ。
僕のサイトなんてまだ誰も知らないし、記事も数個しかないですよ?
そんな過疎サイトを攻撃して何の意味があるんですか?

リナックス先生

甘いわね。
攻撃者は「あなた」を狙ってるんじゃない。「WordPress」というシステムを機械的に探しているの。
今回は、当サイトのサーバーで実際に観測された「生々しい攻撃ログ」を公開するわ。
これを見て、自分が戦場にいることを自覚しなさい!

1. 恐怖の実録!これが「偵察」と「侵入」のログだ

これは、サーバーを立ち上げてわずか数日後に記録された、実際のアクセスログ(Apache access_log)です。
※IPアドレスやユーザー名は伏せ字にしています。

【フェーズ1】ユーザー名の特定(偵察)

103.xxx.xxx.xxx - - "GET //?author=1 HTTP/1.1" 301 - "-" "Mozilla/5.0..."
103.xxx.xxx.xxx - - "GET //wp-json/wp/v2/users/ HTTP/1.1" 200 770 "-" "Mozilla/5.0..."

解説:

  • 1行目 /?author=1 WordPress特有の仕様を突いています。「ユーザーIDが1番の人(=管理者)」のページをリクエストしています。デフォルトでは、ここから /author/user01/ のようなURLに転送(301)され、ログインID(user01)がバレてしまいます。
  • 2行目 /wp-json/... REST APIという機能を使い、ユーザー一覧データを丸ごと抜き出しています。ステータスコードが 200(成功)になっているのが致命的です。

【フェーズ2】パスワード総当たり攻撃(侵入試行)

ユーザー名がバレた直後、今度は別のIPアドレス群から猛烈な攻撃が始まりました。

184.75.xxx.xxx - - "POST /xmlrpc.php HTTP/1.1" 200 258 "-" "Go-http-client/1.1"
202.50.xxx.xxx - - "POST /xmlrpc.php HTTP/1.1" 200 258 "-" "Go-http-client/1.1"
64.42.xxx.xxx - - "POST /xmlrpc.php HTTP/1.1" 200 258 "-" "Go-http-client/1.1"

解説:

  • 攻撃対象 xmlrpc.php 通常のログイン画面ではなく、プログラム用の裏口を叩いています。
  • User-Agent Go-http-client 人間ではなく、Go言語で作られた攻撃ボットです。
  • ステータス 200 攻撃リクエストが「正常に受け付けられている」状態です。これはサーバーがパスワード照合の負荷に耐えている(攻撃を受け続けている)ことを意味します。
コウ君

うわぁ…。
「ユーザー名がバレて」→「そのユーザー名で総当たり攻撃を受ける」という完璧な流れじゃないですか。
これ、放置してたらどうなってたんですか?

リナックス先生

パスワードが破られて乗っ取られるわね。
その後は、スパムメールの配信拠点にされたり、フィッシング詐欺サイトに書き換えられたりして、あなたが「加害者」になるの。
さあ、今すぐ対策するわよ!

2. 対策①:ユーザー名を隠蔽せよ(コード編)

まずは「敵に名乗る」のをやめさせます。
使用しているテーマの functions.php に以下のコードを追記することで、ユーザー名の流出を防げます。
※必ずバックアップを取ってから行ってください。

// 1. REST APIでのユーザー一覧取得を停止
add_filter('rest_endpoints', function( $endpoints ) {
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    return $endpoints;
});

// 2. 著者アーカイブ(?author=1)へのアクセスをトップページへ転送
function disable_author_archive() {
    if ( is_author() ) {
        wp_redirect( home_url(), 301 );
        exit;
    }
}
add_action( 'template_redirect', 'disable_author_archive' );

3. 対策②:xmlrpc.php を完全封鎖せよ(設定ファイル編)

次に、攻撃の入り口となっている xmlrpc.php を塞ぎます。
Webサーバーの設定ファイル .htaccess に以下を追記します。

# XML-RPCへのアクセスを拒否
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

これにより、攻撃者がアクセスしても WordPress が起動する前に門前払い(403エラー)できます。

4. 【初心者推奨】プラグインで手軽に守る

「コードを編集するのは画面が真っ白になりそうで怖い…」という方は、プラグインを使いましょう。
日本国内で多くの実績がある「SiteGuard WP Plugin」がおすすめです。

SiteGuard WP Pluginでできること

  • 管理ページアクセス制限: ログインしていない端末からの管理画面アクセスを拒否します。
  • ログインページ変更: wp-login.php というバレバレの入り口を login_54321 などの独自URLに変更します。
  • XMLRPC防御: 上記で解説した攻撃を、チェックを入れるだけで防げます。

インストールして有効化するだけで、今回解説した攻撃のほとんどを防ぐことができます。
VPS初心者の方は、無理せずまずはプラグインから始めることを強く推奨します。

5. 勝利宣言!対策後のログを確認しよう

対策(コード編集またはプラグイン導入)を行った後のログを見てみましょう。

62.102.xxx.xxx - - "POST /xmlrpc.php HTTP/1.1" 403 199 "-" "Go-http-client/1.1"
62.102.xxx.xxx - - "POST /xmlrpc.php HTTP/1.1" 403 199 "-" "Go-http-client/1.1"

ステータスコードが 200(成功)から 403(Forbidden / 禁止) に変わりました!
これが「勝利」の証です。


まとめ:全3回講座の振り返り

今回でWordPress構築講座シリーズは完結です。
セキュリティ対策も含め、VPS運用の奥深さを感じていただけたでしょうか。
過去の記事を見返したい場合は、以下のリンクからアクセスしてください。

▼第1回:ApacheとPHPの導入

【WordPress構築講座 第1回】黒い画面でWebサーバーを立ち上げろ!ApacheとPHPの導入
【WordPress構築講座 第1回】「簡単インストール」を使わずに世界を作るこんにちは!「リナックス先生」です。前回は、VPSとレンタルサーバーの違いについて熱く語りました。コウ君、ブログ用のサーバーはレンタルサーバーに決めたみたいだけど...

▼第2回:MariaDBとWordPress導入

【WordPress構築講座 第2回】データ保管庫を作れ!MariaDB構築とWordPressのインストール
【WordPress構築講座 第2回】データベースという名の「金庫」を作るこんにちは!「リナックス先生」です。前回は、Webサーバー(Apache)とPHPをインストールして、サーバーが動くところまで確認しました。今回は、いよいよWordP...

▼第3回:SSL化とApache/PHP設定

【WordPress構築講座 第3回】プロ仕様のサーバーへ!SSL化・Apache設定・PHP-FPM完全ガイド
【WordPress構築講座 第3回】Webサイトを「本番レベル」に仕上げる技術こんにちは!「リナックス先生」です。前回までに、データベース(MariaDB)を構築し、WordPressのファイルを配置しました。しかし、今の状態は「とりあえ...
コウ君

先生、正直に言います。
勉強にはなりましたけど、これをずっと続けるのは…僕には荷が重いです。
記事を書く時間より、ログを見る時間のほうが長くなりそうです。

リナックス先生

それが普通の感覚よ。
だからこそ、プロのブロガーは、これらを全部自動でやってくれる「レンタルサーバー」を使うの。
技術を楽しむならVPS、成果(収益)を求めるならレンタルサーバー。
この使い分けが大事なのよ。

▼セキュリティ対策済みのサーバーを使うなら

当サイトで推奨している以下のレンタルサーバーなら、今回解説した「XML-RPC防御」や「WAF」などの機能が標準装備されています。
自分に合ったサーバーを見つけるために、まずは比較記事をチェックしてみてください。

【徹底比較】VPS vs レンタルサーバー!Linux初心者のあなたが選ぶべきはどっち?
こんにちは!「リナックス先生」です。当サイトではこれまで、Linuxの勉強用として「VPS」を使ったサーバー構築を解説してきました。しかし、コウ君。最近ちょっとお疲れ気味じゃない?先生、バレてますか…。実は、先日の不正アクセス対策やファイア...

▼学習用VPSを用意するなら

本講座で使用した、コマンド操作の練習に最適なVPSはこちらの記事で紹介しています。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

▼おすすめのレンタルサーバー

1. エックスサーバー (Xserver)
国内シェアNo.1。セキュリティ機能「WAF」の設定が非常に簡単で強力です。

レンタルサーバー エックスサーバー

2. ConoHa WING
表示速度最速クラス。コントロールパネルから「セキュリティ」設定が直感的に行なえます。

ConoHa WING(コノハウィング)

コメント