私は私のシステム(つまりネットワークではなく)でページをブロックするようにSquidを設定し、SSLがページブロックで動作するようにします。これを行うには、SSL-bumpを設定し、ブラウザに証明書をインストールしました。
(HTTPSとHTTPで)ブロックしたいのですが(HTTPとHTTPSで)サブURLのみを許可したい*.reddit.com/*
と思います。*.reddit.com/r/LearnJapanese
これは私のsquid.confファイルの一部です。
acl bad_domain url_regex "/usr/local/squid/etc/block.acl"
acl good_domain url_regex "/usr/local/squid/etc/allow.acl"
http_access deny bad_domain !good_domain
http_access allow good_domain
http_access allow localnet
http_access allow localhost
http_access deny all
# Squid normally listens to port 3128
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=10MB cert=/usr/local/squid/etc/squid.pem
ssl_bump allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
block.aclの内容:
^http(s)?://(.+)?reddit\.com(.+)?$
allowed.aclの内容:
^http(s)?://(.+)?reddit\.com/r/LearnJapanese(.+)?$
HTTPではうまく機能しますが(例:reddit.com/r/LearnJapanにはアクセスできますが、Redditの残りの部分にはアクセスできません)、HTTPSでは同じ幸運を享受できませんでした。
HTTPS経由でRedditにアクセスすると、ページはまったくブロックされませんが、ブロックする必要があります(もちろんreddit.com/r/LearnJapanを除く)。
以下を除くすべてのRedditへのアクセスをブロックするにはどうすればよいですか?.reddit.com/r/Learn日本语/)HTTPとHTTPSを介して?ありがとうございます。
答え1
SSLはエンドツーエンドで暗号化されているため、Squidなどのプロキシは通常HTTPよりもHTTPS要求についてははるかに少ないことを知っています(http://wiki.squid-cache.org/Features/HTTPS#CONNECT_tunnel):
リクエストURLの[多く]共通部分がCONNECTリクエストにありません。
- URLスキームまたはプロトコル(例:http://、https://、ftp://、voip://、itunes://またはtelnet://)
- URLパス(例:/index.htmlまたは/secure/images/)、
- とクエリ文字列(例:?a = b&c = d)
HTTPS要求の詳細については、Squidはクライアントに対して本質的に中間者攻撃を実行する必要があります。イカ文書これを行う方法について説明していますが、これによりプライバシーに関するいくつかの問題が発生することに注意してください。ユーザーは通常、暗号化された情報であなたを信頼する必要があり、Webブラウザは攻撃に対して警告することがあります。
答え2
ssl_bump server-first all
それがssl_bump allow all
問題に役立つかどうかはわかりませんが、端末にも次の行を入れました。
/sbin/iptables -t nat -A PREROUTING -p TCP -s 127.0.0.1 --dport 80 -j REDIRECT --to-port 3128
/sbin/iptables -t nat -A PREROUTING -p TCP -s 127.0.0.1 --dport 443 -j REDIRECT --to-port 3128
HTTPSを使用してブラックリストのページに移動しようとすると、「アクセス拒否」というメッセージは表示されませんが、すべてのプロトコル(HTTPやHTTPSなど)に対してSquidプロキシを使用するようにFirefoxを設定すると、「プロキシサーバー接続が拒否されました」というメッセージが表示されます。メッセージ)以前に生成されたルート証明書(/usr/local/squid/etc/squid.pem
)を追加しました。