这是我当前的环境:
我有一台运行 Ubuntu Server/Squid 的虚拟机,并且它被设置为非透明。我有一些 IP 地址需要绕过 Squid 身份验证,以便它们可以不受限制地访问。在某些情况下,这是必要的,因为某些应用程序无法很好地与代理配合使用。
目前通过以下 iptables 规则完成:
iptables -t nat -I PREROUTING -s 192.168.0.12 -p tcp --match multiport --dports 80,443 -j ACCEPT
我现在的问题是,我必须屏蔽 Facebook 上的几个不受限制的 IP 地址。
我已经搜索了很长时间,并测试了许多在当前规则中实施的方法,但都没有成功,所以我希望你们中的一些人可以就这种情况启发我。
答案1
为了可靠地过滤 Facebook,您需要设置一个透明代理(例如 squid)并根据域名进行过滤。
答案2
您可以将域阻止添加到 iptables 规则中,例如:
iptables -t nat -I OUTPUT -p tcp -d www.facebook.com -j DROP
iptables -t nat -I -p tcp -d facebook.com -j DROP
由于 DNS 查找,不建议在 iptables 中使用域名,因此您可以获取 Facebook 的 IP 地址(例如使用dig
或host
命令)并添加这些 IP(您必须查看这些 IP 以获取更新)。
或者您可以使用专门用于网页内容过滤的工具。