japan.internet.com
japan.internet.com メンバーID
Twitter
Facebook
RSS
ピックアップ
2001年4月21日 00:00

セキュリティと Apache:初級必読本 5

著者Ken Coarオリジナル版を読む海外海外発
tutorial logo
IP アドレスによるアクセス制限

IP アドレスは、クライアント/サーバー型の HTTP リレーションシップを確立するための一要素だ。送信中 に変更 することはできないし、ネットワーク システムへ割り込む協力者なしには偽装するのは難しいので、非任意制 御とみな されている。そのため、Apache のディストリビューションには、mod_access などのアクセス制 限用モ ジュールが含まれている。

mod_access モジュールを使えば、アクセスを許可/拒絶するドメインやアドレス、および 2 つのリ スト (許可と拒絶) が評価される順序を指定することができる。AllowDeny 指示子 の基本的な構文を以下に示す。

Allow from host-or-network

host-or-network に指定できるのは次のようなものだ。

  • ホストまたはドメイン名 (www.foo.com)
  • IP アドレス (10.0.72.3)
  • IP アドレスとサブネット マスク (10.0.0.0/255.0.0.0)
  • IP アドレスと CIDR マスク サイズ (10.73.128.0/18)

できれば常にドメイン名ではなく IP アドレスを使うほうがいい。ドメイン名を使用すると、Apache サー バーはそ れをクライアントの IP アドレスへ変換するために二重逆引きを行う必要があるからだ。(二重逆引きとは、セ キュリテ ィに関連した状況でホスト名を扱う際に、Apache が常に行う作業だ。名前をいったん IP アドレスへ 変換して 、それをまた名前へ戻す。この双方向の変換がうまくいかなかったら、Apache はホスト/ドメイン名の一致に 失敗した とみなす。)

他にも Allow および Deny 指示子を使った指定方法がある。「 from env=[!]envariable-name」を使えば、環境変数の有無をもとにして可/不可の決定 ができるのだ。環境変数はサーバー全体の環境に対して設定することもできるし、mod_setenvif のよ うなモジュールを使えば、各要求に対して設定することもできる。

Order 指示子は、Allow および Deny 指示子のリストが並んで いる 場合に、その解釈方法を制御する。順序が Allow,Deny (キーワードの間にはスペースを入れて はいけ ない!) の場合、初期状態は Deny from All と同じであり、Allow の条件 リストが処理された後、Deny の条件リストが処理される。Order Deny,Allow は その逆で、初期状態では「すべて許可」 であり、Deny の条件リストが処理された後、 Allow の条件リストが処理される。

デフォルトの状態を覚えておくための簡単な方法は、それが最後のキーワードと一致するということを思い 出せばい い。つまり、Deny,Allow は「許可」で、Allow,Deny は「拒否」となる。

Order 指示子の設定には、もう 1 つある。mutual-failure だ。このキーワー ドで は「デフォルトの状態」がない。アクセスが許可されるクライアントは、どの Deny 指 示子に もなく、少なくとも 1 つの Allow 指示子にある必要がある。

ユーザー認証による制限
保護されたページへの訪問者はユーザー名とパスワードを入力する必要があるように設定する場合は、 mod_auth モジュールが役に立つ。これは、任意制御モジュールの中でも、もっともシンプルで 簡単に 使えるものの 1 つだ。

アクセス制御を確立する上で重要な指示子は、認証データベースの場所の定義と承認されたユ ーザー の確認に関するものだ。mod_auth モジュールでは、それらの指示子は AuthUserFileRequire だ。他のモジュールにも同様の役割を持つ指示子がある。

AuthUserFile 指示子は、フルパスで指定したファイル名をとる (例: /home/foo/.htpasswd-foo)。これは、現在の保護領域でモジュールが使用するテキスト形式の認 証フ ァイルの場所を指定するものだ。パスの省略形や相対パスによるファイル指定は許可されていない。

Require 指示子は、実は mod_auth に特有なものというよりはコア サーバー の一 部であり、<http://www.apache.org/docs/mod/core.h tml#require>に説明されている。Require については、次のセクションでもう少し 詳しく 説明する。

次は ラベルと継承 >>

関連テーマ
プリンター用
記事を転送
この記事をクリップ!
japan.internet.com Androidアプリ
japan.internet.com Androidアプリ Android で japan.internet.com のニュースがどこでも、いつでも読めて、ニュースをTwitterに直接つぶやいたり、Facebookにコメントできる。 人気ニュースランキング、ブックマーク機能なども使えます。詳しくは こちらから
注目のトピックス
Copyright 2012 internet.com K.K. (Japan) All Rights Reserved.