WordPressの管理画面のセキュリティ強化

WordPressの管理画面は、デフォルトでブルートフォース攻撃には対応していません。そこで、管理画面のセキュリティ強化する方法を紹介します。

最終更新日:2025-12-18 21:17

以前、放置したWordPressを久々に覗いてみたら、完全に乗っ取られていたことがありました。たいしたアクセスがあったサイトではないのですが、改めてWordPressのセキュリティ強化の重要性を知りました。
大手サイトのブログであれば、自動で対策してくれていますが、レンタルサーバーのWordPressは、自らメンテナンスをしなければなりません。
そこで今回は、管理画面のセキュリティ強化する方法をいくつか紹介します。

目次

WordPressのログイン画面のセキュリティ強化

2013年の大規模WordPress乗っ取り事件

2013年に大規模なWordPress乗っ取り事件が問題になりました。このときは管理者ユーザー名を「admin」のままだったり、「administrator」「test」「root」など推測しやすい名前にしていたWordPressを狙って、ブルートフォース攻撃を仕掛けて乗っ取る手法が使われました。
以降対策が取られていますが、今後もなにかしらバグをついた攻撃があるかもしれません。

そこで、なるべくセキュリティを上げるべき、すぐに実行できることを紹介します。
すべておこなう必要はありませんが、複数の項目を実行しておくことでセキュリティを上げることが出来ます。

管理者名の確認

現在のWordPressでは、「管理者ユーザー名」が「admin」として自動設定されることはなくなりましたが、推測されやすい名前になっていないか確認します。
確認方法は以下。

管理画面にログインしたら、左のメニューにある「ユーザー」を開き、「ユーザー一覧」をクリック。

ここの「ユーザー名」がadminなど推測されやすい名前か確認。

管理者ユーザー名を変更する

残念ながら一度設定した「管理者ユーザー名」は変更できません。
そこで新しく管理者権限のユーザーを作成し、古いユーザーを削除します。

同じ画面で「ユーザーを追加」をクリックします。

ユーザー名やメールアドレスなどを入力したら、「権限グループ」をクリックし、「管理者」を選択します。

「ユーザーを追加」をクリック。

古いアカウントを削除するには

古いアカウントを削除するには、一度、新しいアカウントでログインする必要があります。

ログアウトするには、管理画面の右上の自分のアカウントアイコンをクリックします。

「ログアウト」をクリックします。

このあと新しいアカウントでログインします。

古いアカウントのユーザー名にマウスカーソルを持っていくと、「削除」のリンクが表示されます。
ここをクリック。

このとき、記事のデータを引き継ぐ設定を忘れないでください。

「すべてのコンテンツを以下のユーザーのものにする」にチェックを入れ、新しいアカウントを選択します。

「削除を実行」をクリックします。

これで古いアカウントを消すことが出来ました。

ニックネームと同じになっていないか

WordPressには、ユーザー名以外に「ニックネーム(必須)」をつけることが出来ます。
このニックネームは、テーマによっては記事の最後に表示される場合があるんです。
また、ニックネームを設定していない場合は、デフォルトでユーザー名と同じになっているので、必ず変更しておきましょう。

ニックネームを変更する

ユーザー名にマウスカーソルを近づけると、「編集」というリンクが表示されるので、ここをクリック。

「ニックネーム(必須)」を書き換えます。

続いてその下の「ブログ上の表示名」のメニューをクリックし、新しくつけた表示名が反映されているので、選択します。

最後にページの下にある「プロフィールの更新」をクリックします。

ページを確認してみると、ニックネームが変わっていました。
これで管理者ユーザー名が推測されることはなくなったでしょう。

国外からのアクセスを遮断

これは、Wordpressの設定ではなく、レンタルサーバーのサービスの一つですが、さくらサーバーなどの大手レンタルサーバーでは、

国外からのアクセスを禁止するサービスが用意されています。
それが「国外IPアドレスフィルター」。

ただし、制限を受けるのは管理画面のような一部のページだけで、コンテンツ自体には制限がありません。
以下のページやディレクトリが制限されます。

種別 ファイル名・ディレクトリ 用途
ディレクトリ /wp-admin/ WordPressの管理画面ディレクトリ
ディレクトリ /phpmyadmin/ phpMyAdminディレクトリ
ファイル wp-login.php WordPressの管理画面
ファイル mt.cgi Movable Type管理画面のログイン
ファイル admin.cgi 各種CGIの管理画面のログイン
ファイル wlwmanifest.xml WordPressの設定ファイル

それ以外にもコメントやフォーム(wp-comments-post.php、mp-comment.cgiなど)も制限を受けます。

公式サイトによると、Googleボットなどのコンテンツ自体へのアクセスは制限しないので、SEOには影響ないようです。

弊社にて管理する国内IPアドレスリストに含まれていないIPアドレスからのアクセスを制限します。 ※Googlebot は有効化の状態でもアクセス可能です。

国外IPアドレスフィルターを有効にする

さくらサーバーでは、デフォルトで「有効」になっています。が、手動で有効もしくは無効にしたい場合は、サーバーコントロールパネルにログインします。

左のメニューから「セキュリティ」を開きます。

「国外IPアドレスフィルター」をクリックします。

「アクセス制限設定」を「有効」になっているか確認します。

「管理画面の制限を有効にする」にチェックを入れると、WordPressやMovable Typeの管理画面への国外からのアクセスを遮断します。

最後に「保存する」をクリックすれば完了。

以上の設定だけでもかなり強力なセキュリティを実現してくれますが、さらにプラグインで強化してみます。

WAFを有効にする

最近のレンタルサーバーには、「WAFワフ」という、Webサイトへの攻撃を防ぐ高度なガードマンのようなサービスを無料で提供しています。

WAFとは?

WAFとは、Web Application Firewallの略で、従来のファイアーウォールがネットワークの入り口を見張るのに対し、WAFはWebサイトへの入力データの中身を見張ります。
コメントや要求するURLに不正なプログラムが紛れ込んでいないかチェックします。

これはかなり強力。私のサイトでも毎日ものすごい数の攻撃を受けていますが、強力に防いでいます。

Wordpressでは、プラグインなどによって強力にセキュリティを高くしても、バグなどをついた攻撃を防げない場合があります。

そんなときにWAFを有効にしていると、防げる可能性が高くなります。

WAFは、さくらサーバーやXサーバーやロリポップなど代表的なレンタルサーバーでは無料で使うことが出来ます。
以下は、さくらサーバーの場合。

さくらサーバーにログインし、「セキュリティ」を開きます。

「WAF設定ドメイン」をクリック。

WAFはサブドメインごとに設定します。
有効にしたいサブドメインの「設定」をクリックします。

「利用する」にチェックを入れ、「保存する」をクリックします。

WAFの注意点

WAFを有効にすると、ブログの記事などにとある文字が入力されていると、エラーになることがあります。
例えばフォルダパスなど。画像のパスなどがそうですね。WordPressではこのあたりはうまく動作してくれますが、エラーが出る場合はWAFを疑ってみてください。

このようなフィルターに引っかかるような文字列が含まれている場合は、一度別の文字列に変換し、サーバーサイドで元に戻す必要があります。

プラグインで乗っ取りを防ぐ

All-In-One Security (AIOS)のインストールと有効化

さくらサーバーなんかだと、WordPressには標準でインストールされている(ただし、デフォルトでは無効)「All-In-One Security (AIOS)」。
WordPressのセキュリティを高める最も人気のプラグイン。
ただし、ちょっと設定が高度でむずかしい。そこでここでは最低限、これだけ流行っておこうというものを詳しく解説。

もし、まだインストールしていない場合は、インストールしておきます。

WordPressの管理画面を開き、メニューから「プラグイン」をクリックし、「インストール済みプラグイン」を開きます。

「プラグインを追加」をクリック。

「プラグインの検索」に

All-in-One-Security

と入力します。

「今すぐインストール」をクリック。

「有効化」をクリックします。

All-In-One Securityの設定

All-in-One-Securityのプラグインを有効化すると、左のメニューに、

AIOS

という項目が表示されるようになります。
設定する場合はここをクリック。

すると、サイドメニューが表示されました。
日本語化されているので、なんとなくなにが出来るのかイメージがつくでしょう。

現時点のセキュリティ強度は30点。

なにが出来ていて、なにが出来ていないか、の一覧も表示されていました。

最近のWordPressは、「管理者のユーザー名」と「データベース接頭辞」はデフォルトでマスターしているはず。

ユーザーセキュリティ

ユーザー名とニックネームは変更してあるので、ここではブルートフォース攻撃対策を設定します。

①AIOSを開き、②「ユーザーセキュリティ」を開きます。

ログインロックアウト」タブを開きます。

ログインロックアウトとは、管理画面のログインに何度か失敗すると、そのIPアドレスを指定時間アクセス禁止する機能。

ログインロックダウン機能を有効化」をオンにします。

管理画面にログインするときに、パスワードを間違えた場合の回数を指定した値をオーバーした場合に、該当のIPアドレスをブロックします。

あと設定しておきたいのは、「メールで通知」。
これはブロックした場合に、指定したメールアドレスに通知が届きます。

最後に「設定を保存」をクリックして保存します。
これでブルートフォース攻撃対策が出来ました。

実際にブロックされるか試してみた

設定を保存したあと、適当なユーザー名とパスワードでログインしてみました。

連続して5回、ログインできないと・・・・

ほんとうにブロックされました。
実際には「最大ログイン試行回数」+1でブロックされました。

ここで「ロック解除をリクエスト」をクリックすると・・・・

このようなメールアドレスの入力欄が表示されました。
ここに自分のメールアドレスを入力して送信すると、解除の仕方が書かれたメールが届くらしい。

また先ほど設定した「最小ロックアウト時間」が経過すると、自動で解除されます。

また、管理者宛にブロックしたユーザーがいたことを通知するメールも届きました。

ロックアウトの解除

先ほど設定した「最小ロックアウト時間」が経過すると、自動的にブロックは解除されます。
が、強制的に解除するには、WordPressの管理画面のサイドメニューにある

AIOS

をクリックしてダッシュボードを開きます。

「ロックアウトしたIPアドレス」タブを開きます。

誰かをブロックすると、このようにIPアドレスや、入力したユーザー名、どうしてブロックされたか・・・・などが表示されます。

解除したいIPアドレス付近にマウスカーソルを持っていくと、このような「ロック解除」というリンクが表示されます。
ここをクリックするか、

複数まとめてロック解除することも出来ます。

ファイルのセキュリティ

次は「ファイルのセキュリティ」を開きます。

まだ現時点では20点中、0点です。

一番下の「wp-config.php」のパーミッションが、0604なので、0640に変更します。

推奨パーミッションを設定」をクリック。

20点になりました。これだけで、「ファイルのセキュリティ」は設定完了。

点数が上がりました。

ファイアウォール

続いて「ファイアウォール」。

まずは「PHPルール」タブの「セキュリティ強化」。

XML-RPC」とは、外部のアプリケーションやサービスと通信するための(RPC)プロトコル。
主に「WordPressモバイルアプリ」などスマホで記事を投稿する場合に使われます。

またトラックバックなどにも使われます。
基本的に「無効」にしてしまってOK。

右下の「基本ファイアウォール設定」をクリックして保存します。

得点が上がりました。

.htaccess rules

続いて.htaccessの設定。

.htaccess rules」タブを開きます。

必須というわけでもありませんが、Apacheのバージョンなどを隠すので、クラッカーに狙われにくくなります。

また、画像などのファイルのアップロードの最大容量を10MBに制限します。

オンにしてもコンテンツなどには影響はないので、有効にしておきます。

右下にある「Save .htaccess firewall settings」のボタンをクリックして保存します。

総当たり攻撃

続いて「総当たり攻撃(ブルートフォース攻撃)」です。

ログインページの名前変更

管理画面のURLを変更します。この設定は細心の注意を払っておこなってください。

管理画面のメニューから「総当たり攻撃」を開きます。

WordPressの管理画面のURLは、

https://example.com/wp-admin/admin.php

のようなURLになりますが、このURLの■色の部分を変更してしまうと言うわけ。

ただし、変更するのはログイン画面だけ。
正しくログインすると、/wp-admin/以下のページでアクセスできます。

ログインページの名前変更機能を有効化」をオンにし、

②の欄に推測されにくい文字列を入力します。
ただし、設定したURLを保存しておかないと、管理画面にアクセスできなくなるので注意!

最後に③の「Save setting」をクリック。

ログアウトして古い管理画面のURLにアクセスしようとすると・・・・
このように拒否されてしまいます。

この時点での強度は、110点でした。
このときのバージョンでは満点は585点らしい。

管理画面のURLを忘れてしまったら

残念ながら管理画面のURLを忘れてしまったら、管理者もログインできません。が、安心してください。
この設定は、.htaccess で行われています。
レンタルサーバーの管理ページから修正することが出来ます。

例えばさくらサーバーの場合は、管理画面を開き、「セキュリティ」にある「ファイルマネージャー」を開きます。

# BEGIN All In One WP Security ←ここから
#AIOWPS_BASIC_HTACCESS_RULES_START 
....
....
#AIOWPS_BASIC_HTACCESS_RULES_END
# END All In One WP Security ←ここまでを削除する

二段階認証

All-in-One-Securityでは、管理画面のログインに2段階認証を設けることも出来ます。
設定は他の2段階認証と同じ。
今回は、GoogleのAuthenticatorを使った設定方法を紹介します。

「AIOS」の「2要素認証」を開きます。

2要素認証の有効化」の部分の「有効化」にチェックを入れ、「変更を保存」をクリックします。

下にスクロールすると、QRコードが用意されています。

Authenticatorを起動します。

画面右下にあるプラスのアイコンをタップします。

「QRコードをスキャン」をタップします。

カメラが立ち上がるので、先ほどのQRコードをフレームの中に入れます。

追加されました。

2段階認証でログインしてみる

さっそくログアウトして、2段階認証でログインしてみます。

IDとパスワードを入力し送信すると、このような「One Time Password」というページが表示されました。
ここで、Authenticatorに表示された6桁の数字を入力します。

数字があっていると管理画面にログインできました。
あまりにあっけないので、適当な数字を入れてみると・・・・

このようにエラーが表示されてしまいました。

セキュリティ強度メーターは、130点まで上がりました。

WordPress本体やプラグインの更新

最も危険なのは、WordPressやプラグインのバグをついた攻撃。なので、「自動更新」をオンにしておき、不要なプラグインは「無効」にしておきましょう。

使用していないプラグインは、この際削除しておきましょう。

PHPやPerlのアップグレード

それ以外にもPHPなどのアップグレードもチェックしておく必要があります。プラグインやWordPressの本体では、最新のPHPでないと動作しないものもあります。

最新のPHPにアップグレードします。
ただし、場合によっては動作しなくなるスクリプトもあるので注意。

その場合は、エラー内容をChatGPTやGeminiに渡し、分析してもらってください。

まとめ

ここまでの設定だけでも、かなりセキュリティは強化されました。
ただし、今までもプラグインのバグをついて乗っ取られた例もあります。
なので、放置しているブログでも時々ダッシュボードを覗いて、更新などの情報をチェックしておく必要があるでしょう。

関連ページ

Sponsored Link

関連ページ