FreeBSD 10.4 RELEASE - apache24 - アクセス制限
1. 概要 「apache」のアクセス制限について記述します。 インターネットに公開している Web サーバであっても、構築中のサイトや、企業の LAN 内だけにしか公開したくないサイト等があります。 インターネットすべてには公開したくないサイトについてどうやって制限をかけるかという方法について記述します。 制限のかけ方にも、大きく分けて二通りの方法があります。他にも複雑な方法もあるのですが、ここではもっとも単純な二通りについて説明します。 2. IP アドレスに対して制限をかける 例題は、以下の環境とします。 ドキュメントルートを /usr/local/www/data とします。 URL http://www.hogehoge.jp/hogehoge/に対して制限をかけるものとします。 IP アドレス 192.168.0.0 から 192.168.0.255 に対してのみ公開するものとします。 /usr/local/etc/apache22/Includes/hogehoge.conf というファイル(ファイル名は何かルールをつくって決めてください)を作成して、以下のように記述します。 <Directory /usr/local/www/data/hogehoge> Options -Indexes +FollowSymLinks <RequireAll> <RequireAny> 192.168.0 という記述も可 Require ip 192.168.0.0/24 </RequireAny> </RequireAll> </Directory> deny from all は、すべての (all) IP アドレスからのアクセスを非許可とするという意味です。 allow from 192.168.0.0/24 は、上位 24 ビットがマッチする(サブネットマスク 0xFFFFFF00) IP アドレスについて、アクセスを許可するという意味です。 また、注意すべき点として、Options に続くオプションの記述は、apache22 までは符号ありの記述と符号なしの記述の混在が許されていましたが、apache24 ではどれかのオプションに符号をつけたら他のオプションにもすべて、+ か - かどちらかの符号をつける必要があります。 /usr/local/etc/apache22/Includes/hogehoge.conf の記述を終えたら、configtest と restart を行って、設定を反映させます。 3. パスワードによって制限をかける 例題は、以下の環境とします。 ドキュメントルートを /usr/local/www/data とします。 URL http://www.hogehoge.jp/hogehoge/ に対して制限をかけるものとします。 /usr/local/etc/apache22/Includes/hogehoge.conf に以下のように記述します。 <Directory /usr/local/www/data/hogehoge> 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 「/hogehoge/passwd hogehoge」の「/hogehoge/passwd」は、パスワードファイル名の指定です。hogehoge はパスワードを設定するユーザアカウント名です。 パスワードとして入力した文字は、エコーバックされません。打ち間違えると、ユーザアカウントが作成されないので、もう一度コマンドを入力するところからやりなおしてください。 パスワードの変更時も同じコマンドで「-c」オプションをつけないことで変更できます。 ユーザアカウントを削除するときは、パスワードファイルをテキストエディタで開いて、対象のユーザアカウントの行を削除してください。 「/usr/local/etc/apache22/Includes/hogehoge.conf」 の記述、パスワードファイルの作成、パスワードの設定を終えたら、」「configtest」と「restart」を行って、設定を反映させます。
ドキュメントルートを /usr/local/www/data とします。 URL http://www.hogehoge.jp/hogehoge/に対して制限をかけるものとします。 IP アドレス 192.168.0.0 から 192.168.0.255 に対してのみ公開するものとします。
<Directory /usr/local/www/data/hogehoge> Options -Indexes +FollowSymLinks <RequireAll> <RequireAny> 192.168.0 という記述も可 Require ip 192.168.0.0/24 </RequireAny> </RequireAll> </Directory>
ドキュメントルートを /usr/local/www/data とします。 URL http://www.hogehoge.jp/hogehoge/ に対して制限をかけるものとします。
<Directory /usr/local/www/data/hogehoge> AuthType Basic AuthName "Welcome to hogehoge" AuthUserFile /hogehoge/passwd Require valid-user </Directory>
htpasswd -c /hogehoge/passwd
> htpasswd /hogehoge/passwd hogehoge New password: ← パスワードを入力 Re-type new password: ← パスワードを再入力 Adding password for user hogehoge