[Apache] Apacheのバージョンを調べる - itochif.com
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のバージョン情報を出ないようにする
上記のように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を使用している事は隠せません。Apacheを使用していることを隠すには、プログラムのソースを改変してApacheをインストールするか、WAF(ウェブ・アプリケーション・ファイアウォール)等で「Apache」の文字列を置換しなければできません。
掲載日 8/10/2008
バージョン情報から脆弱性を検索できるサイトもある昨今、バージョン情報が第三者から簡単にわかる設定が良いとは思えません。ここでは、第三者がApacheのバージョン情報を調べる方法とその対策を記載します。