.htaccess 特定のホスト、IPの許可と制限

eyecatch_732

問題点

WordPressの「wp-admin」ディレクトリーなど、セキュリティー面で少しでも防御するために、BASIC認証をなどを設定することがある。しかし、自分のサイトのWordPressの管理画面に入ってのスクレイピングなど、特殊な用途の場合など、特定のIPを制限したい時などがある。

結論:.htaccessを使うと、特定のホスト名やIPアドレスからのアクセスを許可・制限できます。WordPressの管理画面や重要なディレクトリを保護したい場合に有効ですが、設定を誤ると自分もアクセスできなくなるため、編集前に必ずバックアップを取ってから作業してください。

IPの許可と制限方法

基本的には、各ディレクトリーにおいてある、「.htaccess」ファイルにて設定します。

order allow,deny
allow from all
deny from 制限をかけるホスト、IP
deny from 制限をかけるホスト、IP
deny from 制限をかけるホスト、IP

この設定に関しては、

「order allow,deny」は、allow(許可)、deny(拒否)の順番を記入するという宣言です。この後に記載する、allow、denyの順番が決まりますので、注意が必要です。

「allow from all」は、特定のホスト以外のアクセス全てを許可すると言う意味です。

「deny from」は制限をかけるホスト、IPを指定します。複数指定する場合は、1行ずつ指定します。

まとめると、
許可、拒否の順番に宣言。
すべてのIPアドレスはアクセス許可。
ただし、指定したIPアドレスを除きます。
となります。

BASIC認証なしでアクセスするには

前項の「IPの許可と制限方法」が基本となります。
WordPressの「wp-admin」ディレクトリーにある「.htaccesss」(ない場合は作成)に下記コードを記載。

Satisfy Any

order deny,allow
deny from all
allow from 制限をかけるホスト、IP

AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /WEB公開していないディレクトリー/.htpasswd
require valid-user

この設定は、先ほどとは、逆で、
拒否、許可の順番に宣言。
すべてのIPアドレスはアクセス不可。
ただし、指定したIPアドレスを除きます。
となります。

後半の「AuthType Basic」は一般的なBASIC認証のやり方です。
注意点は、「.htpasswd」をWEB上から見れるディレクトリーに置かないことです。

あえて、最後に説明ですが、「Satisfy Any」はいずれかの条件が通ればよいということです。ここがこのコードのミソです。何も記載していないディフォルトの設定では「Satisfy All」となっており、全ての条件をクリアしないとアクセスできないになっています。

あわせて確認したいWordPress関連記事

WordPressのセキュリティ、HTTPS設定、ログ確認を見直したい場合は、以下の記事もあわせて確認してみてください。

.htaccessによるアクセス制限だけでなく、HTTPS設定、アクセスログ、ログイン通知もあわせて確認しておくと、WordPress運用時のセキュリティ確認がしやすくなります。

読者アンケート

このページの広告表示量について

表示されている広告の量を、どのように感じましたか?

今後の表示改善の参考にするため、近いものを1つ選んでください。

個人を特定する情報は保存しません。

WordPress 関連の相談先・運営者情報

WordPress 改修や実装メモの記事を読んだ方向けに、運営者情報と相談先を整理しています。連絡は X を基本窓口とし、内容確認後に対応可否をご案内します。

Xでご依頼・ご相談 ホームを見る

Windowsの不具合対処や更新情報は、確認できた範囲で随時整理しています。内容により個別対応できない場合があります。