web-dev-qa-db-ja.com

透過的なHTTP / HTTPSドメインフィルタリングプロキシ

送信先のホスト名(ドメイン)に基づいて送信要求をフィルタリングするために、透過的なHTTP/HTTPSプロキシをセットアップしたい。プロキシ自体は非侵入型で、トラフィックを転送するだけで、復号化/変更しないでください。 HTTPSの場合は、TLS SNI拡張を使用して、復号化せずにホスト名を抽出する必要があります。

複数のクライアントがプロキシを使用して複数のホストにアクセスするため、プロキシは、要求を行ったクライアントに対して特定の宛先ホスト名が許可されているかどうかを調べる必要があります。

これはSquid(できればバージョン3.3.8)で可能ですか?もしそうなら、それを実現する方法の簡単な設定例を提供できますか?そうでない場合、そうすることができる代替案をお勧めできますか?

追加情報:

  • プロキシを実行する必要があるサーバーは、Ubuntu 14.04です。
  • トラフィックのリダイレクトは、そのサーバーの固定ポートへの別のルーターによってカバーされています
  • リクエストを転送するとき、プロキシは通常どおりDNSを使用して宛先ホスト名を解決する必要があります

どうもありがとう!

4
Cybran

バージョン3.5以降のsquidでは、必要な機能が可能です。これは、そのバージョンで導入された「ピークアンドスプライス」機能が必要だからです。 「ピーク」と呼ばれるアクション: http://wiki.squid-cache.org/Features/SslPeekAndSplice

次のようなものを使用してください:

https_port 3130 intercept ssl-bump
ssl_bump peek all
ssl_bump splice all

interceptはプロキシを透過的にします。

3番目の要件(DNS名の使用)についてはよくわかりません。このモードでは、Squidは本当に透過的です。しかし、SNI情報があればそれを抽出する必要があります。

ACLでその情報を使用できます。

acl aclname ssl::server_name .foo.com ...
2