首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用squid过滤http/https成人内容的本地透明代理

使用squid过滤http/https成人内容的本地透明代理
EN

Server Fault用户
提问于 2020-04-23 20:55:58
回答 3查看 2.9K关注 0票数 1

我想要过滤我所有的互联网(http & https)连接使用白名单。

我听说了鱿鱼,所以我开始试着运行它。我找到了两个主要的教程:

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

https://docs.diladele.com/tutorials/transparent_代理_debian/iptables.html#redirect-http-and-https-traffic

还有一段视频:https://www.youtube.com/watch?v=Bogdplu_lsE

首先,我安装了squid4 AUR包(Arch ),我构建它时启用了

代码语言:javascript
复制
--with-openssl \
--enable-ssl-crtd \

我编辑配置文件(/etc/squid/squid.conf),并添加:

代码语言:javascript
复制
# 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筛选),我正在这样做:

代码语言:javascript
复制
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

然后我用iptable来转移所有的东西:

代码语言:javascript
复制
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

代码语言:javascript
复制
*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

最后,我启用了鱿鱼:

代码语言:javascript
复制
sudo systemctl enable squid

但是这不起作用(firefox告诉我‘我们不能在.连接到服务器’)。我做错了什么?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2020-07-21 06:08:51

有人在youtube上用e2guardian准确地回答了我的问题:

https://www.youtube.com/watch?v=jPqjEgF49Uo

这是一个2个月的测试答案,如果您正确配置它,它是%100有效。

票数 0
EN

Server Fault用户

发布于 2020-04-23 21:15:20

对不起,错误的答案是因为误解。因为这些评论,我还没有删除它。

票数 1
EN

Server Fault用户

发布于 2020-04-24 03:11:30

使用Firefox自动检测系统代理并不总是给定的。手动设置。可能是问题,也可能不是问题,但很高兴知道。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1013855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档