嗨,我对此很陌生,所以你必须非常明确。
我在 CentOS 上设置了 IPSec,以便可以使用 VPN。用户身份存储在 中/etc/ppp/chap-secrets
,主要是因为这就是我使用的安装脚本中的工作方式。
现在我想编写一些规则来根据用户阻止某些网站。我试过:
iptables -t nat -A PREROUTING -s badsite.com -m owner --uid-owner 100 -i eth0 -p tcp -s --dport 80 -j REDIRECT --to-destination http://myserver.com/blockedsitewarning
其中 100 是我孩子的 unix 帐户 ID。但这是行不通的,因为该chap-secrets
帐户当然与帐户完全分开passwd
。
我将如何配置 IPSec 和/或 iptables,以便它们使用相同的身份验证系统和用户身份?请发布实际的配置文件,而不仅仅是抽象概念或手册页链接。谢谢!!!
答案1
你不能很好地做到这一点,而且无论如何它也可能不起作用。
“--到达目的地”的原因http://myserver.com/blockedsitewarning“之所以不起作用,是因为它是一个 URL 而不是站点,并且iptables
对 URL 一无所知;它在 TCP/IP 地址和端口级别上工作。您能做的最好的事情就是重定向到“myserver.com”。
此外,一些网站(例如 google.com,还有 Microsoft 和一些大流量色情网站)拥有多个 IP 地址或通过所谓的“CDN”(内容交付网络)进行访问。当你告诉 iptables 阻止 google.com 时,iptables
将解决在那一瞬间google.com 的地址并从此使用该号码。因此,您将阻止 DNS 系统为 google.com 返回的地址在那个特定的时刻对于一个查询,并且很可能一段时间后,相同的查询将返回不同的地址,刚刚给出的规则不会涵盖该地址。
您需要做什么才能阻止网站是完全不同的东西: