我的 iptables 中有这条规则来阻止以 : 结尾的域.watch
:
sudo iptables -A OUTPUT -j DROP -m string --string ".watch" --algo kmp
但问题是.
无法匹配。所以上面的行不匹配任何东西。但是,如果我从中删除点.watch
,watch
它就可以了。
我怎样才能阻止点“。” 在 iptables 规则中?
我的 iptables 中有这条规则来阻止以 : 结尾的域.watch
:
sudo iptables -A OUTPUT -j DROP -m string --string ".watch" --algo kmp
但问题是.
无法匹配。所以上面的行不匹配任何东西。但是,如果我从中删除点.watch
,watch
它就可以了。
我怎样才能阻止点“。” 在 iptables 规则中?
我有一台带有自己防火墙(iptables 规则)的 linux 机器。
我刚刚发现 Virtualbox 能够以某种方式绕过我的防火墙,因为来宾系统能够连接到互联网。
如何添加 iptables 规则来阻止 virtualbox 访问互联网?
目前我正在使用这个规则(Virtualbox 可以绕过它):
sudo iptables -I OUTPUT -p tcp -m owner ! --uid-owner 186 -m multiport --dports http,https -j REJECT
我想使用白名单过滤我所有的互联网(http 和 https)连接。
我听说过鱿鱼,所以我开始尝试运行它。我找到了两个主要教程:
https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
还有一段视频: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 告诉我“我们无法连接到...的服务器”)。我究竟做错了什么?