Apache の標準セキュリティ モジュール
標準の Apache ディストリビューションに含まれるセキュリティ関連モジュールについて、以下に説明しよう。
mod_access
- これは、標準の Apache ディストリビューションで強制制御を適用するための唯一のモジュールだ。ドキュメント
へのアクセスを許可/禁止するホスト、ドメイン、IP アドレス、またはネットワークの一覧を作成できる。
mod_auth
- これは、ほとんどの Apache セキュリティ モジュールの基本となるものだ。通常のテキスト ファイルが認証デー
タベースとして使用され、そのエントリは「
ユーザー名:パスワード」という形式をと
る。パスワードに続けてコロンで区切ればさらにフィールドを追加できるが、それらは無視される。
mod_auth_db
- このモジュールは基本的に
mod_auth と同じだが、認証情報が Berkeley DB ファイル形式で保存
される。指示子には「DB」という文字が追加されている (例:AuthDBUserFile)。
mod_auth_dbm
mod_auth_db と同様、mod_auth と似ているが認証情報が DBM ファイルに保存さ
れる。
mod_auth_anon
- このモジュールの動作は匿名 FTP とよく似ている。有効な認証情報のデータベースを使用する代わりに、(FTP サ
ーバーが
ftp や anonymous を認識するように) 有効なユーザー名を認識して、基本的
にどんなパスワードを入力してもアクセスが許可される。このモジュールは実際のアクセス制御のためというよりは、
リソースへのアクセスをログへ記録したり、ロボット型検索エンジンによる巡回を避けるのに役に立つ。
mod_auth_digest
- 他の任意制御モジュールがすべて基本認証をサポートしているのに対し、現在
mod_auth_digest
モジュールだけがダイジェスト認証メカニズムをサポートしている。1999 年にいくつかの重要な修正が行われ、新しい
バージョンは今のところ「試用バージョン」だ。しかし、新しいコードに対しての問題は特に指摘されておらず、じき
に安定バージョンとなるだろう。このモジュールで使用される認証情報は mod_auth と同じようにテキ
スト形式で保存され、ダイジェスト データベース ファイルは
htdigest
ツールで管理される。mod_digest の設定は基本認証の設定よりも複雑なので、詳細については、
このモジュールのドキュメントを参照す
ること。
ユーザーに自分のドキュメントへのアクセス制御を許可する
セキュリティ関連モジュールのすべての指示子は、ディレクトリ毎に置いた .htaccess ファイル中で
使用することができる。しかし、それらの設定ファイルの内容を Apache で有効にするには、該当するディレクトリが
AllowOverride 指示子の範囲内にあることが必要だ。この指示子には、AuthConfig (
任意制御時) または Limit (強制制御時) キーワードを指定する。たとえば、Apache がインストール
された標準的な Linux の場合、httpd.conf ファイルに次のような行を追加すればいい。
AllowOverride AuthConfig Limit
システムのパスワード ファイルを利用する
「どうすればシステムの /etc/passwd ファイルを Web 認証データベースとして利用できますか?」 よ
くある要望だが、これは非常に危険な考えだ。
一言で言えば、やめておいたほうがいい。その理由をいくつか挙げておこう。
- Web ページへアクセスしている人のユーザー名とパスワードが誰かにクラックされたら、あなたのシステムにもロ
グオンされてしまう。(Web 認証のほとんどには基本認証が使われており、非常にクラックされやすいことを覚えておこ
う。)
- システムへログインする場合は、パスワードを続けて数回間違えると、締め出されるか、接続が切られるか、ある
いはアカウントがロックされるなどの処理が行われる (そして、ログに記録される!)。しかし、Web へのアク
セスではそのような処理は行われない。したがって、誰でも簡単なスクリプトを書くだけで、自動的にシステムへ継続
的にアクセスして、ユーザー名とパスワードの組み合わせをいくらでも試すことができるのだ。
上記の理由を読み、Apache FAQ の追加情報を読んで、それでもやりたいと思うなら、自分でやることだ。
mod_access を使えば可能だということだけ言っておこう。すでに十分に説明してしまっているかもし
れないが。
次は
信頼できるデータベースは?
>>