我一直在寻找一种解决方案,通知浏览器用户请求被拒绝,因此停止加载。因为我已经屏蔽了 Facebook,每个带有 Facebook 插件的页面在加载时都会卡住 1 分钟,导致混乱。
当我使用此规则时:
iptables -A FORWARD -p tcp -m iprange --src-range192.168.1.50-192.168.1.100 --dport 443 -j REJECT
我必须添加此代码--reject-with tcp-reset
来执行下面的请求,这样浏览器就会立即注意到被拒绝并且不再等待加载。
现在我的问题是,我该如何使用最近添加的这个新规则来阻止 Facebook 使用 L7 信息?
iptables -A FORWARD -m string --string "facebook.com" --algo bm --from 1 --to 600 -j REJECT
答案1
当您使用 iptables(netfilter)时,您无法通知浏览器。此阻止在 OSI 模型的 4 级上起作用,但您需要 7 级。我在 Squid 代理中看到了解决方案,它会将用户浏览器重定向到某个 url。