我正在尝试确保通过VPN强制通过我们的统计服务器的所有流量,在VPN崩溃的情况下,不应该是流量尝试通过WAN路由。为了使DNS查找短路,我们在hosts文件中列出了主机,但它也会在更广阔的世界中解决。
这是我们拥有的:
$ echo "12.23.45.67 the.statsd.server" > /etc/hosts
# From a /etc/ppp/ip-up.d/thevpn (so it's a pptp client script that does this)
route add -host 12.34.45.67 dev ppp0
$ iptables -I INPUT -s 12.23.45.67 -i eth0 -j DROP
$ iptables -I OUTPUT -d 12.23.45.67 -o eth0 -j DROP
$ iptables -I OUTPUT -d 12.23.45.67 -o ppp0 -j ACCEPT
直到IP表工作的所有东西,但问题(如果它确实是一个问题)是我现在不能ping该主机,即使VPN已启动:
root@li149-82:~# ping the.statsd.server
PING the.statsd.server (12.23.45.67) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
我不是特别熟练IP表,关键的是,默认情况下它应该是不可能的路由到主机,在所有除非它已经结束了ppp0
。