web-dev-qa-db-ja.com

squidを使用してhttp / httpsアダルトコンテンツをフィルタリングするローカル透過プロキシ

ホワイトリストを使用してすべてのインターネット(httpおよびhttps)接続をフィルター処理したい。

イカのことを聞いたので、走り始めました。私は2つの主要なチュートリアルを見つけました:

https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit

https://docs.diladele.com/tutorials/transparent_proxy_debian/iptables.html#redirect-http-and-https-traffic

そしてビデオ: https://www.youtube.com/watch?v=Bogdplu_lsE

最初にsquid4 AURパッケージ(Arch Linux)をインストールし、有効にしてビルドします

--with-openssl \
--enable-ssl-crtd \

設定ファイル(/etc/squid/squid.conf)を編集して、次を追加します。

# add a custom blocking rule:
acl block_websites dstdomain .org .io
http_access deny block_websites

http_port 3128 intercept
https_port 3129 intercept ssl-bump \
    cert=/etc/squid/ssl_cert/myCA.pem \
    generate-Host-certificates=on \
    dynamic_cert_mem_cache_size=4MB
http_port 3127 ssl-bump \
    cert=/etc/squid/ssl_cert/myCA.pem \
    generate-Host-certificates=on \
    dynamic_cert_mem_cache_size=4MB
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/ssl_db -M 4MB
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all

SSL証明書(httpsフィルタリング用)を生成するには、次のようにします。

cd /etc/squid/ssl_cert
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem
openssl x509 -in myCA.pem -outform DER -out myCA.der
# now add myCA.der to firefox
Sudo /usr/lib/squid/security_file_certgen -c -s /var/lib/ssl_db -M 4MB

次に、iptablesを使用してすべてを流用します。

Sudo iptables -A INPUT -j ACCEPT -p tcp --dport 3128
Sudo iptables -A INPUT -j ACCEPT -p tcp --dport 3129
Sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128
Sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 127.0.0.1:3129

対応するiptables-save

*filter
:INPUT DROP [8:936]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3129 -j ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT [8:936]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination :3128
-A PREROUTING -p tcp -m tcp --dport 443 -j DNAT --to-destination :3129
COMMIT

最後に私はイカを有効にします:

Sudo systemctl enable squid

しかし、これは機能しません(firefoxは「サーバーに接続できません...」と私に言っています)。何が悪いのですか?

1
light9876

申し訳ありませんが、誤解による誤解です。まだコメントのため削除していません。

1
Hauke Laging

Firefoxでのシステムプロキシの自動検出は、常に提供されるとは限りません。手動で設定してください。問題である場合とそうでない場合がありますが、知っておくと役に立ちます。

0
John Scott