japan.internet.comThe Internet & IT Network
Twitter
RSS
  • ニュース
  • コラム
  • リサーチ
  • ヘッドライン
  • 特集
  • ブログ
  • プレスリリース
  • 専門チャンネル
  • イベント
  • ランキング
  • ニュースメール
2009年11月24日
文字サイズ文字サイズ小文字サイズ中文字サイズ大
事業仕分けによる次世代スーパーコンピューターの開発予算削減について、どうお考えですか?
賛成
反対
どちらとも言えない
投票締切 11/30 12:00
LinuxTutorial2001年4月21日 00:00

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

海外海外internet.com発の記事
  • Post to Twitter
  • Post to Facebook
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • 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 の標準セキュリティ モジュール >>



関連テーマ
  • プリンター用
  • 記事を転送
  • Post to Twitter
  • Post to Facebook
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • BuzzurlにブックマークBuzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
最新トップニュース
Graphic Design Forum
【Graphic Design Forum】
流動的媒体と静的媒体に関する見解(11月18日)
「IT の耳」
「IT の耳」
【書評】『Hyper-V スタートアップバイブル』――仮想化についてのすぐれた解説書(11月20日)
百式のネットビジネス研究
百式のネットビジネス研究
世界でもっともパワフルな iPod のスピーカー「Wall of Sound」(11月20日)
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(11月19日)
海外ソーシャルウェブに学ぶ成功の秘訣
海外ソーシャルウェブに学ぶ成功の秘訣
ゲーム業界を襲う世界的な激震。ソーシャルゲーム急成長のインパクト(11月19日)
今さら聞けない初歩からのアクセス解析
今さら聞けない初歩からのアクセス解析
サイトリニューアル前のアクセス解析活用法(11月19日)
成約率、反応率を上げる Web 文章術
成約率、反応率を上げる Web 文章術
文章力を磨き、キャッシュを生み出す Web サイト に(11月19日)
「Webからの脅威」―その傾向と最新対策
「Webからの脅威」―その傾向と最新対策
新たな対策技術:スパムフィルタリングと E-mail レピュテーション(11月18日)
ROI向上のための戦略的WebPR
ROI向上のための戦略的WebPR
「戦略的 WebPR」のしかけ方〜WebPR の効果測定手法とは〜(11月18日)
スマートにソーシャルウェブを構築しよう
スマートにソーシャルウェブを構築しよう
社員力を生かすソーシャルメディアポリシー(11月17日)
DevX
DevX
Erlangを使った並列処理プログラムの作成(11月17日)
Copyright 2009 Japan Internet.com K.K. All Rights Reserved.http://www.internet.com/