デフォルトの設定では、ServerTokens は、OS に設定されています。
ProductOnly に設定することで、レスポンスヘッダ内のサーバ情報を最低限にすることができます。
セキュリティーの観点から、ProductOnly に設定することをお勧めします。
# vi /etc/httpd/conf/httpd.conf ServerTokens OS ←変更前 ↓ ServerTokens ProductOnly ←変更後 設定を反映します。 # service httpd reload Reloading httpd: [ OK ]
では、ServerTokensについて少し記載します。
ServerTokens は、Apacheのレスポンスヘッダに関しての設定です。
Apacheのマニュアルには、以下のように記述されています。
HTTP 応答ヘッダを設定する クライアントに送り返す Server 応答ヘッダ内に、サーバの一般的な OS 種別や、 コンパイルされて組み込まれているモジュールの情報を 含めるかどうかを指定します。
では、デフォルトの ServerTokens OS の場合どういった応答ヘッダになるでしょうか。
wgetコマンドで、応答ヘッダを確認できます。
# wget -S http://test.domain ・・・ HTTP/1.1 200 OK Date: xxx, xx xxx xxxx xx:xx:xx GMT Server: Apache/2.2.3 (CentOS) Content-Length: xxxx Connection: close Content-Type: text/html;charset=ISO-8859-1 ・・・
上記出力では、ApacheのバージョンとOS情報が取得できています。
ServerTokens OS では、OS情報のみ出力しますという意味なんですね。
また、ServerTokens Full または 未指定の場合は、以下の出力になります。
# wget -S http://test.domain ・・・ HTTP/1.1 200 OK Date: xxx, xx xxx xxxx xx:xx:xx GMT Server: Apache/2.2.3 (CentOS) DAV/2 PHP/5.x.x Content-Length: xxxx Connection: close Content-Type: text/html;charset=ISO-8859-1 ・・・
Apacheのバージョン、OS情報、Apacheのモジュール情報、PHPのバージョンが出力されています。
ServerTokens ProductOnlyの場合
# wget -S http://test.domain ・・・ HTTP/1.1 200 OK Date: xxx, xx xxx xxxx xx:xx:xx GMT Server: Apache Content-Length: xxxx Connection: close Content-Type: text/html;charset=ISO-8859-1 ・・・
上記出力では、WEBサーバは、Apache であることのみを出力しています。
このように、ServerTokens を ProductOnly に設定することで応答ヘッダの内容を最小限にすることができます。
Apacheのバージョンが古かったりすると攻撃者に脆弱性を狙われてしまったりするので、ProductOnlyに設定しましょう。
[対象]
CentOS 5.x
CentOS 6.x
Apache 2.2.xx