FreeBSD 9.3 RELEASE - apache - アクセス制限

 クラウディア
1. 概要
2. IP アドレスに対して制限をかける
3. パスワードによって制限をかける

1. IP アドレスに対して制限をかける

 「apache」のアクセス制限について記述します。  インターネットに公開している Web サーバであっても、構築中のサイトや、企業の LAN 内だけにしか公開したくないサイト等があります。  インターネットすべてには公開したくないサイトについてどうやって制限をかけるかという方法について記述します。  制限のかけ方にも、大きく分けて二通りの方法があります。他にも複雑な方法もあるのですが、ここではもっとも単純な二通りについて説明します。

2. IP アドレスに対して制限をかける

 例題は、以下の環境とします。   ドキュメントルートを /usr/local/www/data とします。   URL http://www.hogehoge.jp/aaa/に対して制限をかけるものとします。   IP アドレス 192.168.0.0 から 192.168.0.255 に対してのみ公開するものとします。  /usr/local/etc/apache22/Includes/hogehoge.conf というファイル(ファイル名は何かルールをつくって決めてください)を作成して、以下のように記述します。

<Directory  /usr/local/www/data/aaa>
    Options -Indexes FollowSymLinks
    Order   deny,allow
    deny    from all
    allow   from 192.168.0.0/24
</Directory>
 deny from all は、すべての (all) IP アドレスからのアクセスを非許可とするという意味です。  allow from 192.168.0.0/24 は、上位 24 ビットがマッチする(サブネットマスク 0xFFFFFF00) IP アドレスについて、アクセスを許可するという意味です。  deny from と allow from についての記述方法は、他にも下に示すような方法があります。
定義内容定義方法例
すべてに対して定義するall
IP アドレスと上位アドレスがマッチするものに対して定義する192.168.0.0/24
IP アドレスとマスクを指定してマッチするものに対して定義する192.168.0.0/255.255.255.0
広義のドメイン(例 日本国内)に対して定義する.jp
狭義のドメインに対して定義する.
hogehoge
.jp
 /usr/local/etc/apache22/Includes/hogehoge.conf の記述を終えたら、configtest と restart を行って、設定を反映させます。

3. パスワードによって制限をかける

 例題は、以下の環境とします。   ドキュメントルートを /usr/local/www/data とします。   URL http://www.hogehoge.jp/bbb/に対して制限をかけるものとします。  /usr/local/etc/apache22/Includes/hogehoge.conf に以下のように記述します。

<Directory  /usr/local/www/data/bbb>
    AuthType        Basic
    AuthName        "Welcome to hogehoge"
    AuthUserFile    /hogehoge/passwd
    require         valid-user
</Directory>
 AuthType は、認証機構の種別を指定するものですが、パスワードによる基本認証を行う場合は Basic にします。  AuthName は、パスワード入力画面の、「領域:」として表示させるメッセージです。必ず、ダブルクォーテーションでくくります。中身には、自分の好きなメッセージや、領域を示す内容を記述します。メッセージの表示形式はブラウザによっても異なります。  AuthUserFile は、パスワードファイルを指定するものです。パスワードファイルを置くディレクトリやファイル名は自由ですが、セキュリティ上、WEBサーバのドキュメントルート外におくべきです。  require valid-user は、認証されたユーザにしか、アクセスさせないという定義です。  次に、パスワードファイルを作成します。パスワードファイルの管理には、htpasswd というコマンドを使用します(apache22 のインストール時に /usr/local/bin にインストールされています)。

> htpasswd -c /hogehoge/passwd
 「-c」オプションは、作成する(create) という意味です。その先のパラメータは、パスワードファイル名を示しています。  パスワードファイルが作成されたら、パスワードの設定を行います。

> htpasswd /hogehoge/passwd hogehoge
New password:
Re-type new password:
Adding password for user hogehoge
 1行目:/hogehoge/passwd は、パスワードファイル名の指定です。hogehoge はパスワードを設定するユーザアカウント名です。  2行目:パスワードを入力します。  3行目:パスワードを再入力します。  パスワードの入力は、エコーバックされません。  パスワードを打ち間違えると、ユーザアカウントが作成されないので、もう一度コマンドを入力するところからやりなおしてください。  パスワードの変更時も同じコマンドで「-c」オプションをつけないことで変更できます。  ユーザアカウントを削除するときは、パスワードファイルをテキストエディタで開いて、対象のユーザアカウントの行を削除してください。  /usr/local/etc/apache22/Includes/hogehoge.conf の記述、パスワードファイルの作成、パスワードの設定を終えたら、configtestrestart を行って、設定を反映させます。
earthcar(アースカー)