Apache Traffic ServerでServerヘッダとViaヘッダのバージョンを非表示にする

  • 1
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

Apache の ServerTokens や nginx の server_tokens の設定でサーバーのバージョンを非表示にするのがセキュリティ上良いとされていますが、 Apache Traffic Server でのバージョンを非表示にする設定を調べたのでメモです。

Server レスポンスヘッダー内のバージョンを非表示にする

デフォルトでは Apache Traffic Server からのレスポンスには Server:ATS/5.3.2 のような Server ヘッダがついています。

Server レスポンスヘッダー内のバージョンを非表示にするには records.configproxy.config.http.response_server_strATS にします。するとレスポンスの Server ヘッダーは Server:ATS のようになりました。

/etc/trafficserver/records.config
CONFIG proxy.config.http.response_server_str STRING ATS

proxy.config.http.response_server_str のドキュメント にはデフォルト値は ATS/ で、設定した値の後にバージョン番号が追加されると書かれていますが、これは間違いです。ソースコードを確認したところ、デフォルト値は "ATS/" PACKAGE_VERSION でした。

https://github.com/apache/trafficserver/blob/770e7878c0f4dde9516f6f93490eb8b2f66a8dd2/mgmt/RecordsConfig.cc#L412

mgmt/RecordsConfig.cc#L412
  {RECT_CONFIG, "proxy.config.http.response_server_str", RECD_STRING, "ATS/" PACKAGE_VERSION, RECU_DYNAMIC, RR_NULL, RECC_NULL, ".*", RECA_NULL}

Via レスポンスヘッダー内のバージョンを非表示にする

records.configproxy.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 に以下のように設定します。

/etc/trafficserver/records.config
CONFIG proxy.config.http.response_via_str STRING ApacheTrafficServer

proxy.config.http.response_via_strrecords.config のドキュメント には記載されていませんでしたが、ソースコードでは https://github.com/apache/trafficserver/blob/770e7878c0f4dde9516f6f93490eb8b2f66a8dd2/mgmt/RecordsConfig.cc#L408 で定義されていて、デフォルト値は "ApacheTrafficServer/" PACKAGE_VERSION です。

mgmt/RecordsConfig.cc#L408
  {RECT_CONFIG, "proxy.config.http.response_via_str", RECD_STRING, "ApacheTrafficServer/" PACKAGE_VERSION, RECU_DYNAMIC, RR_NULL, RECC_NULL, NULL, RECA_NULL}

Via リクエストヘッダ内のバージョンを非表示にする

records.configproxy.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 に以下のように設定します。

/etc/trafficserver/records.config
CONFIG proxy.config.http.request_via_str STRING ApacheTrafficServer

proxy.config.http.request_via_strrecords.config のドキュメント には記載されていませんが、ソースコードでは https://github.com/apache/trafficserver/blob/770e7878c0f4dde9516f6f93490eb8b2f66a8dd2/mgmt/RecordsConfig.cc#L406 で定義されていて、デフォルト値は "ApacheTrafficServer/" PACKAGE_VERSION です。

mgmt/RecordsConfig.cc#L406
  {RECT_CONFIG, "proxy.config.http.request_via_str", RECD_STRING, "ApacheTrafficServer/" PACKAGE_VERSION, RECU_DYNAMIC, RR_NULL, RECC_NULL, NULL, RECA_NULL}