Linux,如何通过VPN强制所有流量到特定主机?


0

我正在尝试确保通过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

Answers:


1

在/ etc / hosts中,您应该将统计信息服务器的私有地址设置为公共服务器。路线应该足够了。route add -host PRIVATE_ADDRESS dev ppp0。配置the.statsd.server的配置只会解析为它的私有地址,并且将被路由到ppp0接口。不需要iptables,因为如果vpn没有启动,服务器将无法通过它的私有地址访问。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.