LINUX

ApacheのBasic認証の設定

2016/02/24

Apacheのログを確認すると、wordpressの管理画面に大量にアクセスされていました。不正ログインを防ぐために、管理画面にbasic認証をかけたいと思います。

.htaccessの編集

wordpressのディレクトリに.htaccessというファイルがあります。このファイルを編集します。

cat .htaccess

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
ここに以下を追記します

<Files wp-login.php>
AuthUserFile /etc/httpd/.htpasswd
AuthName "Member Only"
AuthType Basic
require valid-user
</Files>

AuthUserFile

パスワードを格納するファイルの場所を記入します。

AuthName

ただのテキストファイルではなく以下のようになります。
http://daichan.club の "Member Only" に対するユーザ名とパスワードを入力してください
詳しい説明は下記リンクをご覧ください。

require

require user

ユーザ単位で、認証の機会を与えます。パスワードファイルに登録されているユーザのうち、user-id だけに認証の機会を与えほかは拒否します。例えば,hogeというユーザーのみ認証させたい場合は
require user hoge
とします。

require group

グループ単位で、認証の機会を与えます。パスワードファイルに登録されているユーザのうち、group-name グループに属している場合だけに認証の機会を与え、ほかは拒否します。AuthGroupFile であらかじめグループ定義を行う必要があります。

valid-user

全てのユーザに、認証の機会を与えます。

以上で.htaccessの編集は終了です。

.htpasswdの編集

先ほど説明したbasic認証のパスワードとアカウント名の格納場所を編集します。
コマンドでも編集できますが、便利なサイトがあるのでこちらを使わせてもらいましょう。ID/PW hoge/hogeと入力し生成ボタンを押すと、hoge:31ArnNHkFc5JYというテキストが出来上がります。これをコピーして.htpasswdファイルにペーストします。

最後にapacheをリスタートして完了です。

-LINUX
-