WordPress管理画面のアクセス制限方法

WordPress管理画面へのアクセスを制限する方法の紹介です。

wordpress_img

以下、WordPressをインストールすると、ドキュメントルート配下に作成される、.htaccessファイルです。

デフォルトの.htaccessファイル

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

指定した拠点のIPからのみ管理画面へアクセスできるようにする方法

以下、指定した拠点のIPからのみ管理画面へアクセスできるようにする方法です。
また、セキュリティー的にwp-config.phpへアクセスできない方が望ましいので、その設定もしています。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# wp-config.phpには、DB接続情報等が記載されているので、アクセスできないようにする。
<Files "wp-config.php">
order deny,allow
deny from all
</Files>

<Files "wp-login.php">
order deny,allow
deny from all
# アクセス許可するIPを以下のように、追記する。
allow from XXX.XXX.XXX.XXX
allow from XXX.XXX.XXX.XXX
allow from XXX.XXX.XXX.XXX
</Files>

管理画面へアクセスした場合は、Basic認証を行う設定方法

以下、管理画面へアクセスした場合は、Basic認証を行う設定方法です。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# wp-config.phpには、DB接続情報等が記載されているので、アクセスできないようにする。
<files wp-config.php>
order allow,deny
deny from all
</files>

# Basic認証を設定する
<Files wp-login.php>
AuthUserFile /var/www/vhosts/sample.com/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>

.htpasswdを作成します。

# htpasswd -c /var/www/vhosts/sample.com/.htpasswd hogeuser1
新しいPassword:   任意のパスワードを入力 

上記コマンドを投げると、/var/www/vhosts/sample.com/.htpasswd というファイルが生成されます。
管理画面へアクセスした際、上記で入力したユーザー名、パスワードを入力し、アクセスすることが可能になります。

ユーザー名:
hogeuser1
パスワード
任意のパスワード