Apache

.htaccess活用!特定IPのみ許可するWebサイトアクセス制限の設定方法

Webサイトの管理者として、特定のユーザーのみにアクセスを許可したいと考えることはよくあります。例えば、社内限定の情報を掲載したサイトや、テスト環境へのアクセスを制限したい場合などです。そんな時に役立つのが、Webサーバーの設定ファイル「.htaccess」の活用です。

.htaccessのRequireを使ってベーシック認証やリダイレクト等が設定できますが、今回はWebサイトに特定のIPアドレスからしかアクセス出来ないアクセス制限を設定する方法をご紹介します。
悪質なアクセス元(IP)を拒否するために掛けたりすることはありますが、固定IPアドレスを持ってる場合は逆に固定IPアドレスからしかWebサイトを閲覧出来ない様にできます。固定IPアドレスを持ってる会社内からしかアクセスできない様なWebサイトを作ることができます。

.htaccessとは何か?

.htaccessは、ApacheなどのWebサーバーで利用される設定ファイルの一つです。このファイルを使うことで、Webサイトへのアクセス制御やURLのリダイレクトなど、様々な設定を行うことができます。特にプログラミングの知識がなくても、簡単な文法で多くのことが実現できるため、Webサイトの管理者にとって非常に強力なツールです。

アクセス制限の基本:「Require all denied」と「Require all granted」
アクセス制限を設定する上で、まず知っておきたいのが「Require all denied」と「Require all granted」の二つのコマンドです。

全てのアクセスを拒否する:Require all denied

.htaccessにRequire all deniedと記述すると、すべてのユーザーからのアクセスが拒否されます。これは、特定の条件を満たすユーザーのみアクセスを許可したい場合の基本となる設定です。
.htaccessファイルに以下を記述することでWebサイトへの全てのアクセスを拒否します。

Require all denied

全てのアクセスを許可する:Require all granted

逆にRequire all grantedを記述すると、どのユーザーからのアクセスも許可されます。これは通常のWebサイトの状態と同じです。
全てのアクセスを許可する場合は以下になります。

Require all granted

特定のIPアドレスからのみアクセスを許可する:Require ip

アクセス制限のもう一つの重要な方法は、特定のIPアドレスからのアクセスのみを許可することです。これは、例えば社内からのみアクセスできる社内限定サイトを作る場合に便利です。
.htaccessファイルに以下を記述します。

Require ip XXX.XX.XXX.XXX

「XXX.XX.XXX.XXX」がIPアドレスになります。複数IPアドレスを指定したい場合は「Require ip XXX.XX.XXX.XXX」を複数行追加し、IPアドレス「XXX.XX.XXX.XXX」を追加したいIPアドレスに変更して下さい。

Require ip XXX.XX.XXX.XXX
Require ip XXX.XX.XXX.XX2

実際の設定例:特定のIPのみアクセス可能なサイト

これらのコマンドを組み合わせることで、特定のIPアドレスからのみアクセス可能なWebサイトを作成できます。設定は以下の通りです。
「全てのアクセスを拒否」+「特定のIPアドレスからのアクセスを許可」を.htaccessファイルに記述することで特定のIPアドレスのみアクセス可能なアクセス制限ができます。
記述は以下の通りです。

Require all denied

Require ip XXX.XX.XXX.XXX

 
この設定を行うことで、最初に全てのアクセスを拒否し、その後に特定のIPアドレスからのアクセスのみを許可するという仕組みになります。

まとめ

.htaccessを使うことで、Webサイトへのアクセスを細かく制御することができます。この機能は、セキュリティの向上や特定のユーザーグループへの情報提供など、多様なシナリオで有効に活用できます。是非この機会に、.htaccessの設定方法をマスターしてみてください。

 
※流用される場合は自己責任でお願いします。