Apache が提供する情報を制限する ServerTokens 編

サーバの防衛の基本として、「攻撃者に多くの情報を提供しない」というものがあります。

現実に当てはめれば『独り暮らし』『平日の午前中は留守が多い』『セコムしてません』などの情報は 極力知られない方が良い、というのと同じですね。

今回は Web サーバ Apache の情報制限です。

CentOS などでは、 Apache をインストールすると デフォルトでは ServerTokens ディレクティブは次のように "OS" が設定されています。 (設定ファイルは /etc/httpd/conf/httpd.conf です)

ServerTokens OS

この場合、Webサーバにアクセスすると次のような値が戻ります。

HTTP/1.1 403 Forbidden
Date: Tue, 02 Feb 2010 05:36:28 GMT
Server: Apache/2.2.3 (CentOS)
Accept-Ranges: bytes
Content-Length: 5043
Connection: close
Content-Type: text/html; charset=UTF-8

Server: を見ると "Apache/2.2.3 (CentOS)" のように バージョン番号から OS まで 出力してしまっています。

これでは、仮に 2.2.3 に重大なセキュリティホールがあった場合、狙ってくださいと 言ってるようなものですよね。

というわけで、これを表示させないように変更します。

ServerTokens ProductOnly

このように設定すると、表示が "Apache" だけになります。

HTTP/1.1 403 Forbidden
Date: Tue, 02 Feb 2010 05:38:45 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 5043
Connection: close
Content-Type: text/html; charset=UTF-8

ServerTokens ディレクティブの デフォルト値は "Full" で、 これ以上は隠せないようです。

ちなみにこの設定は ServerSignature の表示内容にも影響します。 ServerSignature については、また次回。

Google サイト内検索

Amazonアソシエイト