apacheでアクセスを制限する

March. 13, 2003



あるwebページに対して,特定ドメインや特定IPからのアクセスのみ受け付けるように設定する方法である. ここに書いてあるのは .htaccess を使った最も簡単な方法だが, 通常レベルのセキュリティならこれで十分だろう.

まず,アクセス制限を設けるディレクトリを決める. ここでは /home/akasaka/public_html/inhouse というディレクトリにアクセス制限を設けるとする. 次に,/etc/httpd/conf/httpd.conf に以下の記述を追加する.

<Directory /home/akasaka/public_html/inhouse>
  AllowOverride Limit
</Directory>
この記述は,アクセス制限を設けるディレクトリに置く .htaccess に何を書くかを設定している. AllowOverrideの後に,Options, FileInfo, AuthConfigおよびLimitを組み合わせて指定するか, あるいはAllを指定することができる. それぞれの意味は以下のようになる.

Options CGIの実行,シンボリックリンクをたどるかどうかなどの制御を .htaccess で指定できる.
FileInfo 拡張子とファイルタイプの対応の指定や File 名置換などを .htaccess で指定できる.
AuthConfig ユーザー認証に関する指定を .htaccess で指定できる.
Limit アクセス制限に関する指定を .htaccess で指定できる.
All 以上の全てを指定したのと同じ

したがってアクセス制限を設ける場合は Limit が設定されていれば良いことになる.

httpd.confを変更したらapacheを再起動する.

$ /etc/rc.d/init.d/httpd restart
次に,アクセス制限を設けるディレクトリ(ここでは/etc/httpd/conf/httpd.conf)に .htaccess というファイルを作成し, 以下のように書く.
order deny,allow
deny from all
この .htaccess ではすべてのアクセスを拒否するようになっている. ブラウザのURL欄にこのディレクトリにあるファイルを指定してみて "forbidden" という返事が返ってくればアクセス制限は成功である.

もちろんこれでは誰もコンテンツを見ることは出来ないので,特定ドメインからのみ閲覧可能にするには,

order deny,allow
deny from all
allow from .kyushu-u.ac.jp
のように書く. これで .kyushu-u.ac.jp 内の全ドメインからのアクセスだけが可能になる.

IPアドレスを直接指定することもできる.例えば,

order deny,allow
deny from all
allow from 133.1.2.3
とすれば 133.1.2.3からのアクセスのみ可能である. IPアドレスとサブネットマスクを合わせて指定することもでき,例えば,
order deny,allow
deny from all
allow from 133.1.2.0/255.255.255.0
とすれば 133.1.2.1から133.1.2.254 までのIPアドレスからアクセスが可能である.
お問い合わせはメールにて: akasaka@klc.ac.jp

戻る
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送