Squid での User-Agent の照合
宣言されたクライアント識別子には req_header ACL を使い、アクセス規則はより広い許可より前に置きます。
User-Agent ACL は、クライアントが HTTP リクエストに入れる識別子を照合します。Squid 7 の構成では、テスト用クライアントは req_header で分類できます:
acl legacy_probe req_header User-Agent -i ^LegacyProbe/
http_access deny legacy_probe
この例は LegacyProbe/ で始まるヘッダーに一致し、大文字と小文字は区別されません。パターンは目的のクライアント識別子に置き換えてください。式は正規表現であり、ブラウザ製品名の検索ではありません。
拒否ルールは、リクエストをすでに許可してしまうより広いアクセス規則より前 に置きます。この限定ルールの周囲では、プロキシの既存のクライアント制御と宛先制御を維持してください。
Mozilla のような広い接頭辞は多くの異なるブラウザに一致します。互換性やテストの方針をどこまで狭くするかを決めるときは、クライアントが実際に送るヘッダーを使ってください。
このヘッダーはクライアントが制御し、変更も省略もできます。このルールは申告された識別子を分類するものであり、強力なアプリケーション識別ではありません。また、Squid が検査できる HTTP メッセージに対して働き、通常の CONNECT トンネル内の暗号化されたウェブサイトのヘッダーには及びません。