web-dev-qa-db-ja.com

Apacheログで「Attempt to serve directory」というエラーメッセージはどういう意味ですか?

これはサーバーのApacheログによく表示されます(さまざまなIPから取得され、さまざまなパスに送信されます)。私はそれが攻撃の試みである可能性があるのだろうかと思います、そしていずれにせよ、それをどのように扱うのですか?

7
alfish

「attempt to serve directory」というメッセージは、Apacheがディレクトリであるディレクトリ(たとえば、「http:// www。yoursite。com/mydir」)のサーバーへのリクエストを受け取ったことを意味します。通常、Apacheは(DirectoryIndexディレクティブ、サーバーごと、vhostまたはディレクトリで定義された)インデックスファイルを探すか、ディレクトリのコンテンツを含むdirリストを作成しようとします。

したがって、そのメッセージは、DirectoryIndex(通常、PHPがインストールされているサーバーの場合はindex.htmlまたはindex.php)なしで、またはmod_dirモジュールがロードされておらず、mod_autodindexモジュールが無効になっているサイトの一部にアクセスしようとしていることを意味します。

インデックスファイルのないディレクトリが多数あり、ディレクトリの参照(自動インデックス)を有効にしたくない場合は、それらのメッセージが大量に表示されます。 DirectoryIndexディレクティブを設定しても、定義されたインデックスファイルが存在しない場合、Apacheはディレクトリ名を再試行して、そのログメッセージを表示します。

これらのメッセージを本当に削除したい場合に私が想像できる唯一の方法は、autoindexを有効にしてから、IndexIgnoreディレクティブを追加してすべてのファイルを無視し、空のディレクトリリストをレンダリングすることです。

IndexIgnore *

ただし、セキュリティ対策としてApacheでディレクトリの参照を無効にしている場合は、mod_autoindexの今後の脆弱性に注意してくださいmay攻撃者がディレクトリリストにアクセスすることを許可します(私が実際に脆弱だとは思わないもの) 、しかしあなただけがそれを決めることができます)。

この方法でアクセスされるディレクトリの数が少ない場合、メッセージを取り除く方法は、各ディレクトリにダミーのインデックスファイル(たとえば、空のindex.htmlファイル)を追加することです(およびDirectoryIndexをindex.htmlに設定します)。 。

4
MV.

FWIW-このエラーが発生したばかりで、dir_moduleが有効になっていないため、DirectoryIndexディレクティブを取得しませんでした。

HTH、クリス

2
Chris Kimpton