.htaccessでWordPressの管理画面にBasic(ベーシック)認証を設定
WordPressで作成されているサイトで、初期設定の状態のままならドメインの後ろに
/wp-admin
でアクセスしたときWordPressの管理画面へのログイン画面が表示されてしまいます。
誰でもアクセスできる状況は良くないので、ベーシック認証やアクセス制限をかける方法を記載します。今回はいずれもドキュメントルート直下の.htaccess
を使って設定を行います。
今回の環境は
- webサーバはapache
- webサーバで
.htaccess
の使用が許可されていること - OSは Linux(Amazon Linux)
を前提としています。
Basic(ベーシック)認証
1. Basic認証用ファイルの準備
以下のコマンドで認証に利用するユーザとPWのファイルを新規作成します。
1.$ htpasswd -c /var/www/secure/.htpasswd username
2.New password:
3.Re-type new password:
4.Adding password for user username
コマンドが使えない場合は.htpasswdファイル生成(作成)で作成可能。
2 .htaccessへの記載
.htaccess
に以下を追記。
1.<Files wp-login.php>
2.AuthName "Please input ID & PW"
3.AuthType Basic
4.AuthUserFile /var/www/secure/.htpasswd
5.Require valid-user
6.</Files>
AuthUserFile
に認証用ファイルを指定します。
任意の場所でOKですが、公開ディレクトリ以外の場所に設置します。
3. Webサーバ再起動
修正を反映するためwebサーバを再起動します。
1.$ sudo /etc/init.d/httpd restart
これでBasic認証が適用されました。
よりセキュリティ的にベターな設定として、アクセス制限があります。
アクセス制限
.htaccess
に以下を追記。
1.<Files wp-login.php>
2.order deny,allow
3.deny from all
4.allow from XX.XX.XX.XX
5.</Files>
XX.XX.XX.XX
は自分のIPアドレス。
いつもアクセス元が決まっていて、固定IPの場合は、アクセス制限も
併用すると良いかと思います。
まとめ
併用すると.htaccess
はこんな感じ。
1.<Files wp-login.php>
2.order deny,allow
3.deny from all
4.allow from XX.XX.XX.XX
5.
6.AuthName "Please input ID & PW"
7.AuthType Basic
8.AuthUserFile /var/www/secure/.htpasswd
9.Require valid-user
10.</Files>
アクセス制限は、WordPressの管理画面へのアクセスができるIPアドレスを固定するので、
スマホやカフェで作業したりする人は、IPアドレスが変わるので、Basic(ベーシック)認証だけでOKですね。
今回は、WordPressの管理画面へのアクセスまわりのセキュリティでしたが、
管理画面へのログイン時のセキュリティを強化するGoogleの2段階認証
を用いたものもなどありますのでコスパが良いものはまた記載したいと思います。
ちなみに今回のBasic認証を簡単に設定できるWordPressのプラグイン「WP Admin Basic Auth」があります。こちらを使用するともっと簡単に設定できそうですね。
WordPressだとやりたいことをまずプラグインで探してみるとたいてい見つかるかもしれないですね。