Apache の ServerTokens や nginx の server_tokens の設定でサーバーのバージョンを非表示にするのがセキュリティ上良いとされていますが、 Apache Traffic Server でのバージョンを非表示にする設定を調べたのでメモです。
Server レスポンスヘッダー内のバージョンを非表示にする
デフォルトでは Apache Traffic Server からのレスポンスには Server:ATS/5.3.2
のような Server
ヘッダがついています。
Server
レスポンスヘッダー内のバージョンを非表示にするには records.config の proxy.config.http.response_server_str を ATS
にします。するとレスポンスの Server
ヘッダーは Server:ATS
のようになりました。
CONFIG proxy.config.http.response_server_str STRING ATS
proxy.config.http.response_server_str のドキュメント にはデフォルト値は ATS/
で、設定した値の後にバージョン番号が追加されると書かれていますが、これは間違いです。ソースコードを確認したところ、デフォルト値は "ATS/" PACKAGE_VERSION
でした。
{RECT_CONFIG, "proxy.config.http.response_server_str", RECD_STRING, "ATS/" PACKAGE_VERSION, RECU_DYNAMIC, RR_NULL, RECC_NULL, ".*", RECA_NULL}
Via レスポンスヘッダー内のバージョンを非表示にする
records.config の proxy.config.http.insert_response_via_str の値に応じて、レスポンスの Via
ヘッダーの値は以下のようになります。
- 0: (Via ヘッダー無し)
- 1:
http/1.1 copr-builder-673246007.novalocal (ApacheTrafficServer/5.3.2)
- 2:
http/1.1 copr-builder-673246007.novalocal (ApacheTrafficServer/5.3.2 [cSsSfU])
- 3:
http/1.1 copr-builder-673246007.novalocal (ApacheTrafficServer/5.3.2 [uScMsSf pSeN:t cCMi p sS])
2 と 3 の場合の角括弧の中身はキャッシュのヒット/ミスなどの状態を表しています。 Via Decoder Ring でデコードするか、 FAQ の どうやって Via: ヘッダーコードを解釈するのですか? を見れば意味がわかります。
Apache Traffic Server からクライアントへのレスポンスの Via
ヘッダー内のバージョンを非表示にするには records.config に以下のように設定します。
CONFIG proxy.config.http.response_via_str STRING ApacheTrafficServer
proxy.config.http.response_via_str
は records.config のドキュメント には記載されていませんでしたが、ソースコードでは https://github.com/apache/trafficserver/blob/770e7878c0f4dde9516f6f93490eb8b2f66a8dd2/mgmt/RecordsConfig.cc#L408 で定義されていて、デフォルト値は "ApacheTrafficServer/" PACKAGE_VERSION
です。
{RECT_CONFIG, "proxy.config.http.response_via_str", RECD_STRING, "ApacheTrafficServer/" PACKAGE_VERSION, RECU_DYNAMIC, RR_NULL, RECC_NULL, NULL, RECA_NULL}
Via リクエストヘッダ内のバージョンを非表示にする
records.configのproxy.config.http.insert_request_via_strの値に応じて、Apache Traffic Serverからオリジンサーバーへのリクエストの Via
ヘッダーは以下のようになります。
- 0: (Via ヘッダー無し)
- 1: http/1.1 copr-builder-673246007.novalocal[0A00020F] (ApacheTrafficServer/5.3.2)
- 2: http/1.1 copr-builder-673246007.novalocal[0A00020F] (ApacheTrafficServer/5.3.2 [uScH])
- 3: http/1.1 copr-builder-673246007.novalocal[0A00020F] (ApacheTrafficServer/5.3.2 [uIcHs f p eN:t cCSi p s ])
なお、値はカスタムログギングフィールドのpqh (プロキシーのリクエストの HTTP ヘッダー)で %<{Via}pqh>
のように指定して確認しました。
Apache Traffic Serverからオリジンサーバーへのリクエストの Via
ヘッダー内のバージョンを非表示にするには records.config に以下のように設定します。
CONFIG proxy.config.http.request_via_str STRING ApacheTrafficServer
proxy.config.http.request_via_str
は records.config のドキュメント には記載されていませんが、ソースコードでは https://github.com/apache/trafficserver/blob/770e7878c0f4dde9516f6f93490eb8b2f66a8dd2/mgmt/RecordsConfig.cc#L406 で定義されていて、デフォルト値は "ApacheTrafficServer/" PACKAGE_VERSION
です。
{RECT_CONFIG, "proxy.config.http.request_via_str", RECD_STRING, "ApacheTrafficServer/" PACKAGE_VERSION, RECU_DYNAMIC, RR_NULL, RECC_NULL, NULL, RECA_NULL}