HTTPレスポンスでApache httpdのバージョンを返却しなくする設定方法

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

概要

 Apache httpd のデフォルトでは、HTTPレスポンスで Apache httpd のバージョンや、利用しているプログラミング言語とバージョン、OpenSSLの情報などが返却されるようになっています。 しかし、サーバー側のソフトウェアの詳しい情報を返却していると、脆弱性を攻撃されるきっかけになりかねません。 本稿では、HTTPレスポンスで Apache httpd のバージョンなどを返却させなくする設定について解説します。

HTTPレスポンスヘッダ「Server」

 どのようにしてHTTPレスポンスでサーバーで利用しているソフトウェアの情報が返却されているのかと言えば、HTTPレスポンスヘッダにあるServerヘッダが利用されています。 Serverヘッダは、HTTPリクエストを処理したサーバーソフトウェア名を返却するためのヘッダです。 詳しくは別稿「HTTPレスポンスヘッダ Server とは?」を参考にして頂きたいですが、Apache httpd のデフォルトだと、次のように Apache httpd のバージョンとOSまでを含む値を返却するようになっています。

HTTP/1.1 200 OK
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16

セキュリティの懸念

 このようにサーバーソフトウェアの詳細な情報を返却していると、セキュリティ上の懸念が出てきます。 サーバーソフトウェアのバージョン番号をHTTPレスポンスで返却してしまうと、クラッカーの攻撃のきっかけになってしまうからです。 サーバーソフトウェアで脆弱性のあるバージョンを利用していることがわかれば、クラッカーはその脆弱性を突こうと考えます。 したがって、できる限りサーバーソフトウェアの情報はミニマムに返却するのが望ましいでしょう。

ServerTokens

 Apache httpd において、この Server ヘッダの返却項目を設定するのが、設定項目「ServerTokens」です。 返却する Server の値をミニマムにするには、次のように Prod を指定します。

ServerTokens Prod

 ServerTokens に指定できる設定値とその意味は次の通りです。

設定値意味レスポンス返却例
Prod製品名だけServer: Apache
Majorメジャーバージョン番号までServer: Apache/2
Minorマイナーバージョン番号までServer: Apache/2.0
Minミニマムバージョン番号までServer: Apache/2.0.41
OSOS名までServer: Apache/2.0.41 (Unix)
Full (もしくは未指定)全てServer: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

おわりに

 本稿ではHTTPレスポンスで Apache httpd のバージョン番号などを返却しなくする方法について解説しました。 もしサーバーサイドのプログラムにPHPを利用している場合は、次の記事の対策も合わせて実施しておくことをオススメします。

Apache httpd 入門へ戻る

Apacheのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca