WordPress管理画面へのアクセスを制限する方法の紹介です。
以下、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
パスワード
任意のパスワード