LoginSignup
1
1

More than 5 years have passed since last update.

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

Posted at

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 でした。

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}
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1