Tips記事
» 2002年10月16日 21時34分 UPDATE

Apacheのバージョン表示を隠したい

[木田佳克,ITmedia]

 HTTPアクセスのレスポンスヘッダには、次のような内容が含まれている。「Server:」行を見ると分かるように、このサーバはApacheであることや、バージョン番号、ディストリビューション(RPMの場合)、モジュールなども表示される。

# telnet 172.16.7.xxx http
Trying 172.16.7.xxx...
Connected to ms7.xxx.zdnet.co.jp (172.16.7.xxx).
Escape character is '^]'.
HEAD /index.html HTTP/1.1
[Enter]押す
HTTP/1.1 400 Bad Request
Date: Tue, 15 Oct 2002 08:37:37 GMT
Server: Apache/1.3.26 (Red Hat Linux) mod_throttle/3.1.2 mod_ruby/0.9.7 Ruby/1.6.4
Connection: close
Content-Type: text/html; charset=iso-8859-1

Connection closed by foreign host.

 この表示内容を制限したい場合には、設定ファイル(httpd.conf)内で「ServerTokens」行を編集すればよい。何も設定されていない場合には「Full」と解釈されるが、Apache2.0(Red Hat Linux 8.0などのRPM)では「OS」が標準設定となっている。

# vi /etc/httpd/conf/httpd.conf

...中略...

ServerTokens [設定文字列]

---------------------------

・4つの設定文字列
ServerTokens ProductOnly
Apache ←表示結果

ServerTokens Minimal
Apache/1.3.26 ←表示結果

ServerTokens OS
Apache/1.3.26 (Red Hat Linux) ←表示結果

ServerTokens Full
Apache/1.3.26 (Red Hat Linux) mod_throttle/3.1.2 mod_ruby/0.9.7 Ruby/1.6.4 ←表示結果

 また、インデックス表示や、エラーページを表示する際にもバージョンが表示される。これを制限するためには次のように指定しよう。

ServerSignature Off

 なお、これらの設定はサーバ全体に反映されるため、個々のバーチャルホスト上で異なる設定はできない。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ