WordPressは、とても有名なCMS(content management system)です。
有名なCMSなので、管理画面へのログイン画面や、管理画面などが管理されているURLは、少し調べたらアクセスができてしまいます。
ユーザーIDとパスワードがわからないと管理画面へログインできませんが、悪意があるアクセスの場合、ブルートフォースアタック(Brute-force attack)という「総当たり攻撃」によるパスワードを解読を試みて、不正アクセスしてくる場合もあります。
そんな強引な管理画面への不正アクセスを少しでも軽減、自分でできるセキュリティ対策としてできることを記載します。
環境
- エックスサーバーを利用。
- WordPress 6.7.1を利用。
- ドキュメントルートにWordPressがインストールされている。
wp-adminフォルダにBasic認証
CMSは、管理画面のアクセスURLと、ユーザーIDとパスワードがわかれば管理画面にログインできてしまいますので、まずは、管理機能が保存されているwp-adminフォルダにBasic認証を設定します。
エックスサーバーでは、フォルダへのBasic認証はサーバーパネルから対応ができます。
「アクセス制限」をクリック

サーバーパネルにログイン。
左メニューの「ホームページ」→「アクセス制限」を順にクリックします。
アクセス制限を「ON」
nikobang.comは、このサイトのドメインになります。ドメイン部分は、適宜、読み替えをお願いします。

ドキュメントルートにインストールしている場合は、上述のような構成になっていると思います。
ひと目で、アクセス制限がかかっているのことがわかります。
今回は「wp-admin」フォルダにBasic認証をかけたいので、「wp-admin」フォルダを「ON」にします。
各フォルダ・ファイルの概要は下表の通りです。
フォルダ名 | 内容 |
---|---|
インストールフォルダ(ホームディレクトリ) | 色々なファイルがあるが、主なファイルを記載。WordPressの設定ファイル(wp-config.php)。アクセスを制御(.htaccess)。ログイン画面(wp-login.php)。サイトにアクセスがあった時に最初に読み込まれるファイル(index.php)。 |
wp-admin | 管理画面の制御などに必要なファイル。WordPressバージョンアップで置き換わるファイル類。 |
wp-content | テーマファイル・プラグインファイル・アップロードファイル。カスタマイズすることが多い。 |
wp-includes | ブログ表示に必要なファイル。WordPressバージョンアップで置き換わるファイル類。 |
ユーザーを追加

「ユーザー設定」→「+ユーザーIDを追加」ボタンを押下することで、Basic認証の「ユーザーID」と「パスワード」を追加できます。
.htpasswdはどこに?
Basic認証のユーザーIDとパスワードが記載されたファイルは、サーバー内の
/home/xsample/<ドメイン>/htpasswd/wp-admin/.htpasswd
にあります。
xsampleは、サーバーIDです。
wp-login.php にBasic認証する際にもこのファイル(同じユーザーIDとパスワード)を利用しようと思います。
wp-login.phpログイン画面にもBasic認証
wp-login.phpファイルは、ドキュメントルールにあります。
エックスサーバーの場合のドキュメントルートは、以下になります。
/home/xsample/<ドメイン>/public_html
同じフォルダ階層にある「.htaccese」にのBasic認証のコードを記載する必要があります。例のまま編集すると良いと思います。
ファイルマネージャーを開き「.htaccess」を確認
エックスサーバーサーバーパネルにログインしてからファイルマネージャーを開きます。

<ドメイン>となっていところは、自分が設定しているドメインに読み替えてください。
ドキュメントルート(/home/xsmaple/<ドメイン>/public_html)に「.htaccess」があります。
「.htaccese」を編集
「.htaccese」をバックアップ
あとで戻せるように、バックアップしたほうが良いです。
ファイルマネージャーのヘッダー部「コピー」を押下すると以下のポップアップが出ます。
名前をつけて「コピー」ボタンを押下してバックアップします。

編集
元々あったコードは編集しないようにしましょう。
ファイルマネージャーで、「.htaccess」を選択して、ヘッダー部「編集」を押下すると以下のポップアップが出ます。「更新」ボタンを押下することで内容が即座に反映されます。

xsampleは、サーバーID。<ドメイン>は、自分のドメインです。
以下を貼り付けると良いです。
<Files wp-login.php>
AuthType Basic
AuthUserFile /home/xsample/<ドメイン>/htpasswd/wp-admin/.htpasswd
AuthName "Admin only. Please enter your ID and password."
Require valid-user
</Files>
wp-login.phpに、Basic認証をかけますということが書かれています。
ユーザーIDとパスワードは「/home/xsample/<ドメイン>/htpasswd/wp-admin/.htpasswd」を利用しますということが書かれています。
自分でできるセキュリティ対策
自分でできるセキュリティ対策として、管理画面にBasic認証を掛けることを記載しました。
他にも、プラグインの脆弱性を攻撃してくることもあるので、プラグインも最新に保つと良いです。