嗨,我对此很陌生,所以你必须非常明确。
我在 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 以便它们使用相同的身份验证系统和用户身份?请发布实际配置文件,而不仅仅是抽象概念或指向手册页的链接。谢谢!!!
你不能很好地做到这一点,而且它可能无论如何也行不通。
“--to-destination http://myserver.com/blockedsitewarning ”不起作用的原因是它是一个 URL 而不是一个站点,并且
iptables
对 URL 一无所知;它在 TCP/IP 地址和端口级别工作。你能做的最好的事情就是重定向到“myserver.com”。此外,一些网站(例如 google.com,还有 Microsoft 和一些流量大的色情网站)有多个 IP 地址或通过所谓的“CDN”(内容分发网络)访问。当您告诉 iptables 阻止 google.com 时,
iptables
将立即解析google.com 的地址并从此使用该号码。所以你会阻止 DNS 系统在那个特定时刻为那个查询返回的地址,很可能一段时间后,同一个查询将返回一个不同的地址,一个刚刚给出的规则不会覆盖。您需要做的来阻止网站是完全不同的:
iptables
用于将端口 80 和 443 重定向到本地主机(可以在这里找到一个旧教程,但谷歌是你的朋友)。现在,所有流量都将由iptables
through引导squid
。