japan.internet.comThe Internet & IT Network
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2009年7月4日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
LinuxTutorial2001年4月21日 00:00

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

海外海外internet.com発の記事
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • Buzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
tutorial logo
ラベルと継承

それぞれの場所に対して有効な別々の認証ファイルを使えば、同じ保護領域にある URL を違う方法で保護すること ができる。しかし、保護領域は、ユーザーがどの証明情報を送信すればいいかを覚えておくための手がかりになるので 、同じ保護領域で複数の証明情報を使うように設定すると、同じ保護領域に見える (実際、同じ保護領域にある) 場所 で繰り返し再認証する必要が生じて、ユーザーを不快にさせてしまう。一般的に、保護領域と認証用ファイルとは一対 一の関係にしておくのがよいだろう。

しかし、最初にアクセス制御を有効にするにはどうすればいいのだろうか? 他の Apache 指示子にも当ては まることだが、そのためには適切な範囲で指示子を使う必要がある。

<Directory /usr/local/web/htdocs/finance> AuthName Finance AuthType Basic AuthUserFile /usr/local/web/apache/auth/.htpasswd-finance Require valid-user </Directory>

上の例では、finance サブディレクトリとすべてのファイル、そして下位のサブディレクトリが保 護される。products のような他のディレクトリには影響を与えない。

コンテナはとても役に立つが、ある 1 つのファイルだけを保護したい場合はどうすれ ばいいのだろうか? あるいは、mod_status から出力されるような、ファイルシステムにマップされな いドキュメントを保護したい場合は? その答えは前と同じだ。すなわち、保護する対象にセキュリティを設定できるよ うな、適切な範囲の指示子を使用する ( など)。

継承
他のほとんどの Apache 構成と同様に、特定のドキュメントやディレクトリへ適用されたセキュリティ指示子は、親レ ベルから、または、ツリー構造のより上位のレベルからも継承される。そのため、各レベルで異なる指示子だけを設定 すればいいことになる。次の 2 つの例は同じ設定を表す。

<Directory /usr/local/web/htdocs/finance> AuthName "Finance Department" AuthType Basic AuthUserFile /usr/local/web/apache/auth/.htpasswd-finance Require valid-user </Directory> <Directory /usr/local/web/htdocs/finance/strategy> AuthName "Finance Department" AuthType Basic AuthUserFile /usr/local/web/apache/auth/.htpasswd-finance Require user susan bob </Directory> <Directory /usr/local/web/htdocs/finance> AuthName "Finance Department" AuthType Basic AuthUserFile /usr/local/web/apache/auth/.htpasswd-finance Require valid-user </Directory> <Directory /usr/local/web/htdocs/finance/strategy> Require user susan bob </Directory>

2 つめの例では、親ディレクトリからの値の継承をうまく利用しており、サブディレクトリではアクセス リストを Bob と Susan に制限する指定だけで済んでいる。

一般的に、セキュリティの問題を扱う際に仮定をたてすぎるのはよい方法ではない。継承を利用して、あちこちで同 じ指示子を何度も記述する必要がなくなり楽になったと思っても、それは思いこみかもしれないのだ。高位のディレク トリに対する設定を 1 つ間違うだけで、継承されたすべての値が不適切なものになってしまい、面倒な結果になること もあるということを覚えておこう。

また、いくつかのアクセス制御モジュールのうち、アクセスが許可されるかどうかの最終決定権を持つのはどれかを 判別することも重要だ。

特定のユーザー名の要求
AuthUserFile や同種の指示子が、Apache (およびセキュリティ モジュール) に認証データベースの ある場所を知らせる役割を果たすのに対し、Require 指示子は、それらの使用法についての指示を与え る。あるセキュリティ範囲が Require 指示子を含まない (または継承しない) 場合、他の指示子があ るかどうかにかかわらず、任意アクセス制御は行われない。

Require 指示子による設定が複数ある場合は、それらはすべて条件リストに追加される。最初に一 致した条件で処理が止まるか、すべての条件を調べることになるかどうかは、モジュールのプログラマー次第だ。たと えば mod_auth では、処理が始まってから最初に一致したところでアクセスの条件が満たされる。以下 のような例を考えてみよう。

AuthUserFile /home/foo/.htpasswd-foo Require user foo Require user bar

この例では、「ユーザー名が foo または bar であることが必要」だ。

アクセス リストが大きくなった時に設定が複雑になるのを避けるため、「 Require valid-user」のような省略表記がある。これは「認証データベース中にユーザー名があ れば、この保護領域にアクセスできる」という意味だ。これがうまく動作するには、アクセスを許可するユーザーの証 明情報のみがデータベースに含まれている必要がある。アクセスさせたくないユーザーの証明情報がデ ータベース内にある場合は (複数の保護領域を通じて 1 つのデータベースを共有している場合に起こるかもしれない) 、グループ化や他のメカニズムを使う必要があるだろう。valid-user キーワードでは十分ではないか らだ。

Require 指示子はどのモジュールでも共通に使えるが、その構文はそうではない。使用される構文 に制限がないのだ。例えば、「Require candy-type caramel」という構文であっても、こ れを解釈できるセキュリティ モジュールがあれば問題ない。

ほとんどの任意制御モジュールでは、ユーザーのグループ化をサポートしており、個人の代わりにグループへアクセ ス許可を与えることができる。この機能は (mod_auth では) AuthGroupFile 指示子を 使って設定する。ユーザー ファイルと同様に、グループ ファイルには、各行にグループ名、コロン、そしてコンマで 区切られたユーザー名からなるテキスト情報だけが含まれている。アクセス要求の証明情報からユーザー名を受け取る と、モジュールはグループ ファイルを検索して、そのユーザーがどのグループに属しているかが調べられる。次はグル ープ ファイルの一例だ。

board:annette,bill,james,gwynyth finance:susan,steve,phoebe,zoe,bill_s engineering:geekboy,lisa,melanie,george,j_johnson

グループによるアクセスを許可するには、Require 指示子を次のように変更するだけでいい。

Require group board

通常の UNIX ユーザーと同じように、1 つのユーザー名は複数のグループに属することが可能だ。

次は Apache の標準セキュリティ モジュール >>



関連テーマ
このエントリーを含むはてなブックマーク この記事をクリップ!
BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
この記事をokyuuへインポート
最新トップニュース
データメーション
【データメーション】
中国が「Green Dam」フィルタ規制を撤回(7月1日)
Graphic Design Forum
【Graphic Design Forum】
Chris Dickman(6月25日)
プライバシー ジャパン・インターネットコム版
【プライバシー ジャパン・インターネットコム版】
グーグル・ストリートビューの問題について総務省の見解(6月23日)
エンジニアの独り言
【エンジニアの独り言】
システムを「使う」時代のエンジニアに求められるもの(6月2日)
最新ハイテク講座
最新ハイテク講座
電気は家庭でつくる時代へ!燃料電池「エネファーム」(7月3日)
アクセス解析で見るWebマーケティング
アクセス解析で見るWebマーケティング
決定力を探るアクセス解析(7月3日)
百式のネットビジネス研究
百式のネットビジネス研究
ファーストフードを高級っぽく盛り付けて紹介している「Fancy Fast Food」(7月3日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(7月2日)
成約率、反応率を上げる Web 文章術
成約率、反応率を上げる Web 文章術
言葉がダイレクトにキャッシュを生む(7月2日)
不況時代の Web ビジネス最適化講座
不況時代の Web ビジネス最適化講座
アクセス解析エキスパートここだけの話、Web コンシェルジュの“勉強法”こっそり教えます(7月2日)
「Webからの脅威」―その傾向と最新対策
「Webからの脅威」―その傾向と最新対策
不正プログラムの分類(7月1日)
DevX
DevX
JavaScriptとDOMによる動的なWebページの作成(6月30日)
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
今のままで大丈夫?3匹の子ブタ的キャリア危険度診断(6月30日)
アイレップの SEM フロンティア
アイレップの SEM フロンティア
Web サイトは「無駄な穴のたくさん開いたじょうご」〜サイト成果向上の基本的な考え方(6月30日)
Copyright 2009 Japan Internet.com K.K. All Rights Reserved.http://www.internet.com/