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

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

海外海外internet.com発の記事
  • このエントリーを含むはてなブックマーク
  • この記事をクリップ!
  • Buzzurlにブックマーク
  • Yahoo!ブックマークに登録
  • newsing it!
  • この記事をokyuuへインポート
tutorial logo
信頼できるデータベースは?

ある保護領域で何種類かの認証データベースを組み合わせて使いたいときはどうすればいいのだろうか? 最初の認証 で使うデータベースや、最初の認証に失敗したときに次に使うデータベースを Apache に知らせる方法は?

その答えは、認証データベースの信頼度に関係がある。任意制御モジュールには、 AuthAuthoritative のような名前の指示子があり、その名前はモジュール毎に違う。たとえば AuthDBAuthoritativeAutDBMAuthoritative、あるいは Anonymous_Authoritative など。

あるモジュールが信頼できるとみなされている場合、Apache がモジュールから「この人物は知らない」という応答 を得たら、さらに他のデータベースを調べることはしない。モジュールが信頼できないものである場合は、サー バーは続けて他のモジュールを認証に使うことができる。

注: 実際はサーバー自身によって決定されるわけではない。各モジュールは自分が信頼できるかどうかを知っており (*Authoritative 指示子の設定の有無による)、認証に失敗した場合はサーバーへ停止/継続の信号 (そ れぞれ HTTP_UNAUTHORIZEDDECLINED) を返す。

デフォルトではユーザーが設定を変えないかぎり、モジュールは自身を信頼できるとみなすことが多い。後悔より は安全を選ぶ考え方に基づいているわけだ。この設定を明示的に行うには AuthAuthoritative On という行を追加する。あるいは、 AuthAuthoritative Off と設定すれば責任を分担するようにできる (各モジュールに合った指示 子を使おう!)。

Htpasswd、Htdigest、Dbmmanage ユーティリティ
これら 3 つのユーティリティは一般ユーザーが使えるツールだ。自分の Web ディレクトリ用のアクセス制御ファイル を作成できるが、実行するには管理者である必要はない。ドキュメントは Apache のインストール時に man/man1 サブディレクトリに収められており、次のようなコマンドで読むことができる。

% man /usr/local/web/apache/man/man1/htpasswd.1

このシリーズ記事のはじめに書いた前提事項に従えば、これら 3 つのアプリケーションは /usr/local/web/apache/bin/ ディレクトリにあり、man ページのソースは /usr/local/web/apache/man/man1/ にある。

htpasswd アプリケーションは、mod_auth モジュールの使用時にテキストベースの 認証データベースを作成、管理するために使われる。コマンドラインからユーザー名とオプションを入力すると、標準 入力からパスワードの入力 (確認のため 2 回) を受け付け、ユーザー名と暗号化されたパスワードが指定したテキスト ファイルに保存される。Apache サーバーが認証用の証明情報を受け取ると、その中のパスワードは、認証データベース へパスワードを保存する際に使用されたのと同じアルゴリズムで暗号化され、暗号化されたパスワード同士が比較され る。実際の平文のパスワードはシステム上には残らないのだ。

htpasswd コマンドの文法は次のとおり。

htpasswd [options] pwfile username [password]

コマンドラインで次のようなアルゴリズム用フラグを指定すると、htpasswd コマンドで様々なアル ゴリズムを使ってパスワードを暗号化することができる。

-m
パスワードの暗号化に、Apache 独自の改良 MD5 ハッシュ アルゴリズムが用いられる。この方式 で暗号化されたパスワードは他のアプリケーションでは利用できないが、それらはバージョン 1.3.9 以降のすべて の Apache で利用できる。したがって、Linux で使用中の .htpasswd ファイルを AIX 、 Solaris、Windows へ持っていき、それぞれの環境で変更を加えることなく使うことができる。これは Windows と TPF プラットフォームではデフォルトのアルゴリズムだ。

-d
システムの crypt() ライブラリ ルーチンを使ってパスワードを暗号化する。暗 号化されたパスワードは、システムのユーザー ファイルに保存されているパスワードと同じ程度に安全となるが、おそ らく他のシステムへ持っていくと使えないだろう。

-s
Netscape サーバーで利用されている SHA アルゴリズムを使ってパスワードを暗号化する。これ はサーバー間でパスワードファイルを移動させるときに役に立つ。

使用される暗号化アルゴリズムはファイル中の各エントリ毎に適用されるので、1 つのファイル中に異なる方法で暗 号化されたパスワードを含むことも可能だ。

htpasswd ツールでは、暗号化の制御以外にも次の 2 つのフラグが指定できる。

-b
パスワードを stdin から読み込む代わりにコマンドラインから読み込むようにす る。このフラグは主に Windows 環境の管理者向けだが、非対話環境 (ユーザーに CGI スクリプトでパスワードの変更 を許可するなど) でスクリプトベースのパスワード管理が可能になるので、他のプラットフォームでも役に立つだろう 。しかし、パスワードがコマンドライン上に平文で現れるため、ps コマンドの出力から他のユーザーに パスワードを見られる可能性がある。デフォルトで実行した時のようにパスワードを 2 回入力することもないので、正 しいパスワードを入力したかどうかも確認できない。このオプションは注意して使おう。

-c
デフォルトでは、htpasswdpwfile 認証データベース ファイルがすでにあるという前提で、そのファイルを更新する。新しいファイルを作成したり、既存のファイルを完全 に上書きするには、コマンドラインで -c フラグを使うとよい。

htdigest および dbmmanage ツールも /usr/local/web/apache/bin/ ディレクトリにあり、htpasswd アプリケーションと同 じような機能を持つ。htdigest はダイジェスト認証で用いられるテキスト データベースを管理するた めのもので、dbmmanage は DB、DBM、GDBM、そして NDBM データベース形式をサポートしている。 dbmmanage は Perl スクリプトなので、使用するにはシステムに Perl インタプリタ (バージョン 5 以降) がインストールされている必要がある。

次は 認証データベースの保管場所 >>

関連テーマ
このエントリーを含むはてなブックマーク この記事をクリップ!
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/