管理画面(wp-adminフォルダ)とログイン画面wp-login.phpにBasic認証

WPセキュリティ対策 IT

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認証を掛けることを記載しました。

他にも、プラグインの脆弱性を攻撃してくることもあるので、プラグインも最新に保つと良いです。

タイトルとURLをコピーしました