WWW Server(Apache)の設定

とにかく動かすだけならとっても簡単....

/etc/httpd/conf/http.conf

 ここにApacheの動作を制御する幾つかの設定ファイルの内、一番の基本となるhttpd.confの設定内容を紹介しようと考えていたのですが、実際に内容を眺めてみると、実は

何も設定しておらず、全くデフォルトのままで動いている

という事実に気が付きました。このため、ここで書くこともありません....

 実際、Turbo Linux Workstaion 6.0をインストールすると自動的にインストールされ(All in Oneの場合)、特に設定をしないでも動いているので、あたりまえといえばあたりまえなんですが、特に変な設定を行わずに利用する分には、全くデフォルトで動くようです。

 今でも不思議なんですが、このサイトには掲示板が設けられており、そちらはcgiを利用しているのですが、その設定すらしていません(cgiの設定の部分がコメントアウト状態になっている)。

 特に設定していない場合に適用されるデフォルトの設定があるので、cgiなんかもその中に入るのかもしれませんが、本当に何も設定はしていません(^^)。

 

2000/12/10に加えた変更

 httpd.confを一箇所だけ変更しました。

 それはなぜかというと、なんとなく/var/log/httpd/acces_logを眺めていたら、

ディレクトリを直接参照し、なおかつそれで403ではなく200が返されているログ

 が発見されたからです。ちなみに、200が返されているということは、要求されたりソースの取得に成功したということになります。つまり、ディレクトリの一覧が取れているということになります。ちなみに、成功してしまうとこのようにブラウザ上から見えます。

 これは個人の考え方かもしれませんが、私は基本的にディレクトリの一覧をユーザーに見せるべきではないと思います。もちろん正規の操作方法(リンクをたどる)ではそのような一覧が表示されるはずはありませんが、好奇心からURLの一番最後のファイル名を削ってアクセスしてみることは、実際に私もすることがあります。

 しかし、その結果としてディレクトリの一覧が参照できてしまうと、例えばまだ製作中で公開前のファイルを見ることが出来てしまったり、場合によっては外部に漏れてはまずい情報が載っているファイルを除き見られてしまう可能性があるのです。

 というわけで、何らかの理由で公開する必要があるのならばともかく、基本的には私は画すべきだと考えています。しかし、今回ログを眺めていて一覧が取れることが分かったので、その閲覧を禁止するようにhttpd.confの変更を行うことにしまいた。

 変更する個所は以下のとおりです。390行目付近の

<Directory />
  Options Indexs FollowSymLinks
  AllowOverride None
</Directory>

の部分にある"Indexs"を削除し、以下の状態に変更します。

<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>

 その後、"killall -HUP httpd"でhttpdの再起動を行います。そうすると以後ディレクトリの一覧を取得しようとするとエラーが返されるようになります。

 ちなみに以下が修正後の正しいログです。

192.168.0.100 - - [10/Dec/2000:17:05:54 +0900] "GET /Env/ HTTP/1.0" 403 269 "-"
"Mozilla/4.75 [ja] (X11; U; Linux 2.2.16-1 i686)"

 "403"が"301"に対して返されていれば、ディレクトリ自体への参照が失敗して、エラー画面が表示されていることになります。ブラウザ上ではこのように見えるようになり、ディレクトリの中に含まれているファイルの情報について、リモートからは一切分からなくなります。