japan.internet.com
LinuxTutorial2001年4月28日 00:00
文字サイズ文字サイズ小文字サイズ中文字サイズ大

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

この記事のURLhttp://japan.internet.com/linuxtutorial/20010428/1.html
著者:Ken Coar
海外internet.com発の記事
tutorial logo
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 サ ーバーが ftpanonymous を認識するように) 有効なユーザー名を認識して、基本的 にどんなパスワードを入力してもアクセスが許可される。このモジュールは実際のアクセス制御のためというよりは、 リソースへのアクセスをログへ記録したり、ロボット型検索エンジンによる巡回を避けるのに役に立つ。

mod_auth_digest
他の任意制御モジュールがすべて基本認証をサポートしているのに対し、現在 mod_auth_digest モジュールだけがダイジェスト認証メカニズムをサポートしている。1999 年にいくつかの重要な修正が行われ、新しい バージョンは今のところ「試用バージョン」だ。しかし、新しいコードに対しての問題は特に指摘されておらず、じき に安定バージョンとなるだろう。このモジュールで使用される認証情報は mod_auth と同じようにテキ スト形式で保存され、ダイジェスト データベース ファイルは htdigest ツールで管理される。mod_digest の設定は基本認証の設定よりも複雑なので、詳細については、 このモジュールのドキュメントを参照す ること。

ユーザーに自分のドキュメントへのアクセス制御を許可する
セキュリティ関連モジュールのすべての指示子は、ディレクトリ毎に置いた .htaccess ファイル中で 使用することができる。しかし、それらの設定ファイルの内容を Apache で有効にするには、該当するディレクトリが AllowOverride 指示子の範囲内にあることが必要だ。この指示子には、AuthConfig ( 任意制御時) または Limit (強制制御時) キーワードを指定する。たとえば、Apache がインストール された標準的な Linux の場合、httpd.conf ファイルに次のような行を追加すればいい。

<Directory /home/*/public_html> AllowOverride AuthConfig Limit </Directory>

システムのパスワード ファイルを利用する
「どうすればシステムの /etc/passwd ファイルを Web 認証データベースとして利用できますか?」 よ くある要望だが、これは非常に危険な考えだ。

一言で言えば、やめておいたほうがいい。その理由をいくつか挙げておこう。

  1. Web ページへアクセスしている人のユーザー名とパスワードが誰かにクラックされたら、あなたのシステムにもロ グオンされてしまう。(Web 認証のほとんどには基本認証が使われており、非常にクラックされやすいことを覚えておこ う。)
  2. システムへログインする場合は、パスワードを続けて数回間違えると、締め出されるか、接続が切られるか、ある いはアカウントがロックされるなどの処理が行われる (そして、ログに記録される!)。しかし、Web へのアク セスではそのような処理は行われない。したがって、誰でも簡単なスクリプトを書くだけで、自動的にシステムへ継続 的にアクセスして、ユーザー名とパスワードの組み合わせをいくらでも試すことができるのだ。

上記の理由を読み、Apache FAQ の追加情報を読んで、それでもやりたいと思うなら、自分でやることだ。 mod_access を使えば可能だということだけ言っておこう。すでに十分に説明してしまっているかもし れないが。

次は 信頼できるデータベースは? >>

japan.internet.comのウエブサイトの内容は全て、国際法、日本国内法の定める著作権法並びに商標法の規定によって保護されており、その知的財産権、著作権、商標の所有者はインターネットコム株式会社、インターネットコム株式会社の関連会社または第三者にあたる権利者となっています。
本サイトの全てのコンテンツ、テキスト、グラフィック、写真、表、グラフ、音声、動画などに関して、その一部または全部を、japan.internet.comの許諾なしに、変更、複製、再出版、アップロード、掲示、転送、配布、さらには、社内LAN、メーリングリストなどにおいて共有することはできません。
ただし、コンテンツの著作権又は所有権情報を変更あるいは削除せず、利用者自身の個人的かつ非商業的な利用目的に限ってのみ、本サイトのコンテンツをプリント、ダウンロードすることは認められています。

Copyright 2012 internet.com K.K. (Japan) All Rights Reserved.