WordPressの管理画面のセキュリティ強化
最終更新日 2025-12-18 21:17:21
以前、放置したWordPressを久々に覗いてみたら、完全に乗っ取られていたことがありました。たいしたアクセスがあったサイトではないのですが、改めてWordPressのセキュリティ強化の重要性を知りました。
大手サイトのブログであれば、自動で対策してくれていますが、レンタルサーバーのWordPressは、自らメンテナンスをしなければなりません。
そこで今回は、管理画面のセキュリティ強化する方法をいくつか紹介します。
目次
- WordPressのログイン画面のセキュリティ強化
WordPressのログイン画面のセキュリティ強化
2013年の大規模WordPress乗っ取り事件
2013年に大規模なWordPress乗っ取り事件が問題になりました。このときは管理者ユーザー名を「admin」のままだったり、「administrator」「test」「root」など推測しやすい名前にしていたWordPressを狙って、ブルートフォース攻撃を仕掛けて乗っ取る手法が使われました。
以降対策が取られていますが、今後もなにかしらバグをついた攻撃があるかもしれません。
そこで、なるべくセキュリティを上げるべき、すぐに実行できることを紹介します。
すべておこなう必要はありませんが、複数の項目を実行しておくことでセキュリティを上げることが出来ます。
管理者名の確認
現在のWordPressでは、「管理者ユーザー名」が「admin」として自動設定されることはなくなりましたが、推測されやすい名前になっていないか確認します。
確認方法は以下。
管理画面にログインしたら、左のメニューにある「ユーザー」を開き、「ユーザー一覧」をクリック。
ここの「ユーザー名」がadminなど推測されやすい名前か確認。
管理者ユーザー名を変更する
残念ながら一度設定した「管理者ユーザー名」は変更できません。
そこで新しく管理者権限のユーザーを作成し、古いユーザーを削除します。
ユーザー名やメールアドレスなどを入力したら、「権限グループ」をクリックし、「管理者」を選択します。
「ユーザーを追加」をクリック。
古いアカウントを削除するには
古いアカウントを削除するには、一度、新しいアカウントでログインする必要があります。
ログアウトするには、管理画面の右上の自分のアカウントアイコンをクリックします。
このあと新しいアカウントでログインします。
古いアカウントのユーザー名にマウスカーソルを持っていくと、「削除」のリンクが表示されます。
ここをクリック。
「すべてのコンテンツを以下のユーザーのものにする」にチェックを入れ、新しいアカウントを選択します。
これで古いアカウントを消すことが出来ました。
ニックネームと同じになっていないか
WordPressには、ユーザー名以外に「ニックネーム(必須)」をつけることが出来ます。
このニックネームは、テーマによっては記事の最後に表示される場合があるんです。
また、ニックネームを設定していない場合は、デフォルトでユーザー名と同じになっているので、必ず変更しておきましょう。
ニックネームを変更する
ユーザー名にマウスカーソルを近づけると、「編集」というリンクが表示されるので、ここをクリック。
続いてその下の「ブログ上の表示名」のメニューをクリックし、新しくつけた表示名が反映されているので、選択します。
最後にページの下にある「プロフィールの更新」をクリックします。
ページを確認してみると、ニックネームが変わっていました。
これで管理者ユーザー名が推測されることはなくなったでしょう。
国外からのアクセスを遮断
これは、Wordpressの設定ではなく、レンタルサーバーのサービスの一つですが、さくらサーバーなどの大手レンタルサーバーでは、
- メール送信(SMTP)
- ファイル転送(FTP/SFTP)
- シェルログイン(SSH)
- ウェブアクセス(HTTP/HTTPS)の一部のページ
の国外からのアクセスを禁止するサービスが用意されています。
それが「国外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アドレスフィルターを有効にする
さくらサーバーでは、デフォルトで「有効」になっています。が、手動で有効もしくは無効にしたい場合は、サーバーコントロールパネルにログインします。
「管理画面の制限を有効にする」にチェックを入れると、WordPressやMovable Typeの管理画面への国外からのアクセスを遮断します。
以上の設定だけでもかなり強力なセキュリティを実現してくれますが、さらにプラグインで強化してみます。
WAFを有効にする
最近のレンタルサーバーには、「WAF」という、Webサイトへの攻撃を防ぐ高度なガードマンのようなサービスを無料で提供しています。
WAFとは?
WAFとは、Web Application Firewallの略で、従来のファイアーウォールがネットワークの入り口を見張るのに対し、WAFはWebサイトへの入力データの中身を見張ります。
コメントや要求するURLに不正なプログラムが紛れ込んでいないかチェックします。
これはかなり強力。私のサイトでも毎日ものすごい数の攻撃を受けていますが、強力に防いでいます。
Wordpressでは、プラグインなどによって強力にセキュリティを高くしても、バグなどをついた攻撃を防げない場合があります。
そんなときにWAFを有効にしていると、防げる可能性が高くなります。
WAFは、さくらサーバーやXサーバーやロリポップなど代表的なレンタルサーバーでは無料で使うことが出来ます。
以下は、さくらサーバーの場合。
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
という項目が表示されるようになります。
設定する場合はここをクリック。
すると、サイドメニューが表示されました。
日本語化されているので、なんとなくなにが出来るのかイメージがつくでしょう。
なにが出来ていて、なにが出来ていないか、の一覧も表示されていました。
最近のWordPressは、「管理者のユーザー名」と「データベース接頭辞」はデフォルトでマスターしているはず。
ユーザーセキュリティ
ユーザー名とニックネームは変更してあるので、ここではブルートフォース攻撃対策を設定します。
ログインロックアウトとは、管理画面のログインに何度か失敗すると、そのIPアドレスを指定時間アクセス禁止する機能。
管理画面にログインするときに、パスワードを間違えた場合の回数を指定した値をオーバーした場合に、該当のIPアドレスをブロックします。
- 最大ログイン試行回数
- 何回失敗したらブロックするか、の設定です。デフォルトは3回。今はブラウザのパスワード管理などで管理しているでしょうから少なくてもいいんですけれど、何かしらの理由でパスワード管理アプリが使えなくなった場合を考え、5回ぐらいでもいいかもしれない。
- ログイン再試行時間 (分)
- ここで設定した時間内に、「最大ログイン試行回数」の回数を超えた場合にブロックする。デフォルトのままでOK。
- 最小ロックアウト時間
- ブロックした場合のブロックする最短時間。デフォルトのままでOK。
- 最大ロックアウト時間
- ブロックした場合のブロックする最大の時間。「最小ロックアウト時間」との違いは、最初のブロックは「最小ロックアウト時間」が適用され、何度もブロックされると、こちらの設定した時間、ブロックされます。デフォルトのままでOK。
あと設定しておきたいのは、「メールで通知」。
これはブロックした場合に、指定したメールアドレスに通知が届きます。
最後に「設定を保存」をクリックして保存します。
これでブルートフォース攻撃対策が出来ました。
実際にブロックされるか試してみた
設定を保存したあと、適当なユーザー名とパスワードでログインしてみました。
連続して5回、ログインできないと・・・・
ほんとうにブロックされました。
実際には「最大ログイン試行回数」+1でブロックされました。
ここで「ロック解除をリクエスト」をクリックすると・・・・
このようなメールアドレスの入力欄が表示されました。
ここに自分のメールアドレスを入力して送信すると、解除の仕方が書かれたメールが届くらしい。
また先ほど設定した「最小ロックアウト時間」が経過すると、自動で解除されます。
また、管理者宛にブロックしたユーザーがいたことを通知するメールも届きました。
ロックアウトの解除
先ほど設定した「最小ロックアウト時間」が経過すると、自動的にブロックは解除されます。
が、強制的に解除するには、WordPressの管理画面のサイドメニューにある
AIOS
をクリックしてダッシュボードを開きます。
誰かをブロックすると、このようにIPアドレスや、入力したユーザー名、どうしてブロックされたか・・・・などが表示されます。
解除したいIPアドレス付近にマウスカーソルを持っていくと、このような「ロック解除」というリンクが表示されます。
ここをクリックするか、
ファイルのセキュリティ
一番下の「wp-config.php」のパーミッションが、0604なので、0640に変更します。
「推奨パーミッションを設定」をクリック。
20点になりました。これだけで、「ファイルのセキュリティ」は設定完了。
ファイアウォール
「XML-RPC」とは、外部のアプリケーションやサービスと通信するための(RPC)プロトコル。
主に「WordPressモバイルアプリ」などスマホで記事を投稿する場合に使われます。
またトラックバックなどにも使われます。
基本的に「無効」にしてしまってOK。
右下の「基本ファイアウォール設定」をクリックして保存します。
.htaccess rules
続いて.htaccessの設定。
必須というわけでもありませんが、Apacheのバージョンなどを隠すので、クラッカーに狙われにくくなります。
また、画像などのファイルのアップロードの最大容量を10MBに制限します。
オンにしてもコンテンツなどには影響はないので、有効にしておきます。
右下にある「Save .htaccess firewall settings」のボタンをクリックして保存します。
総当たり攻撃
続いて「総当たり攻撃(ブルートフォース攻撃)」です。
ログインページの名前変更
管理画面の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を使った設定方法を紹介します。
「2要素認証の有効化」の部分の「有効化」にチェックを入れ、「変更を保存」をクリックします。
カメラが立ち上がるので、先ほどのQRコードをフレームの中に入れます。
2段階認証でログインしてみる
さっそくログアウトして、2段階認証でログインしてみます。
IDとパスワードを入力し送信すると、このような「One Time Password」というページが表示されました。
ここで、Authenticatorに表示された6桁の数字を入力します。
数字があっていると管理画面にログインできました。
あまりにあっけないので、適当な数字を入れてみると・・・・
WordPress本体やプラグインの更新
最も危険なのは、WordPressやプラグインのバグをついた攻撃。なので、「自動更新」をオンにしておき、不要なプラグインは「無効」にしておきましょう。
PHPやPerlのアップグレード
それ以外にもPHPなどのアップグレードもチェックしておく必要があります。プラグインやWordPressの本体では、最新のPHPでないと動作しないものもあります。
最新のPHPにアップグレードします。
ただし、場合によっては動作しなくなるスクリプトもあるので注意。
その場合は、エラー内容をChatGPTやGeminiに渡し、分析してもらってください。
まとめ
ここまでの設定だけでも、かなりセキュリティは強化されました。
ただし、今までもプラグインのバグをついて乗っ取られた例もあります。
なので、放置しているブログでも時々ダッシュボードを覗いて、更新などの情報をチェックしておく必要があるでしょう。
関連ページ
- Chromeでパスワードが保存できない原因と対策
- ネットワーク資格情報の入力 パスワードが違う?
- さくらサーバーでBasic認証とアクセス制限を設定する.htaccessの書き方
- バリュードメインからさくらインターネットへドメインを移管
- さくらで無料のSSLを使う設定
最終更新日 2025-12-18 21:17:21
Sponsord Link
最終更新日 2025-12-18 21:17:21 / 投稿日:2025-12-18 21:17:21
|
|
|







































