Since 12/1/2007
Home > Security > Apache > Apacheのバージョンを調べる

[Apache] Apacheのバージョンを調べる - itochif.com

バージョン情報から脆弱性を検索できるサイトもある昨今、バージョン情報が第三者から簡単にわかる設定が良いとは思えません。ここでは、第三者がApacheのバージョン情報を調べる方法とその対策を記載します。

Apacheのバージョンを調べる

デフォルト設定のApache Webサーバの場合、HTTPレスポンスヘッダやデフォルトのエラー画面のフッタにバージョン情報が表示されます。

# telnet itochif.com 80 #telnetでitochif.comのTCPポート80番に接続
HEAD / HTTP/1.0	#(入力後に改行を2つ入れる)

HTTP/1.1 403 Forbidden
Date: Sun, 10 Aug 2008 10:00:00 GMT
Server: Apache/2.2.3
Accept-Ranges: bytes
Content-Length: 5043
Connection: close
Content-Type: text/html; charset=UTF-8
図1.telnetで接続し、TCP/80で稼動するWebサーバのバージョンを確認している

上記の赤色、「Apache/2.2.3」がApacheのバージョンです。
SSL/TLSを使用しているApacheの場合、opensslがインストールされていれば以下のコマンドで接続後、同じく「HEAD / HTTP/1.0」を送信します。

# openssl s_client -connect itochif.com:443
図2.opensslコマンドでitochif.comのTCPポート443番に接続を試みる

エラー画面では以下のように表示されます。

Apacheのバージョン

図3.ファイルが存在しない旨のエラー画面。バージョン情報が表示されている。

Apacheのバージョン情報を出ないようにする

上記のようにApacheのバージョン情報は、HTTPのレスポンスヘッダやエラーページのフッタで表示されます。こられは以下の設定を変更する事で表示されなくなります。

  • ServerTokensディレクティブの値を「Prod」もしくは「ProductOnly」に設定する。
    これは、HTTPレスポンスヘッダのバージョン情報を出さなくする設定です。
    設定値「Prod」もしくは「ProductOnly」はApache1.3.12以降で利用可能です。
    ※Apache 2.0.44以降なら、この設定だけでエラーページのフッタも制御できます。
  • ServerSignatureディレクティブの値を「Off」に設定する。
    これは、サーバが生成するドキュメントのフッタでバージョン情報を出さなくする設定です。
    Apache1.3以降なら使用できます。
# telnet itochif.com 80 #telnetでitochif.comのTCPポート80番に接続
HEAD / HTTP/1.0	#(入力後に改行を2つ入れる)

HTTP/1.1 403 Forbidden
Date: Sun, 10 Aug 2008 10:00:00 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 5043
Connection: close
Content-Type: text/html; charset=UTF-8
図4.設定ファイルに「ServerTokens Prod」を追記した後のHTTPレスポンスヘッダ

上記の赤色の部分に注目です。「Apache」とだけ表示され、バージョン情報がでていません。

エラー画面では以下のように表示されます。

Apacheのバージョン

図5.ファイルが存在しない旨のエラー画面。バージョン情報が表示されていない。

残念な事に、Apacheを使用している事は隠せません。Apacheを使用していることを隠すには、プログラムのソースを改変してApacheをインストールするか、WAF(ウェブ・アプリケーション・ファイアウォール)等で「Apache」の文字列を置換しなければできません。

掲載日 8/10/2008