我正在尝试与第三方 VPN 站点建立 VPN 连接,然后使用 IPTables 将流量从我的内部计算机(目前为 ssh 和 ping)转发到 VPN 站点。
第三方<->(tun0/eth0)Linux VPN 盒(eth1)<-> Windows7TestBox
我在 CentOS 6.3 Linux 上运行,有两个网络连接 eth0->public eth1->private。我正在运行 vpnc-0.5.3-4,它目前正在连接到我的目的地。
当我连接时,我可以 ping 目标 IP 地址,但这是我所能达到的极限。
ping -I tun0 10.1.33.26 # success
ping -I eth0 10.1.33.26 # fail
ping -I eth1 10.1.33.26 # fail
我已经将我的专用网络 Windows 7 测试盒设置为将 VPN 服务器的 eth1(专用)网络作为其网关,并且可以正常 ping 通它。我需要 IPTables 将 Windows 7 流量发送出 VPN 隧道。
几天来,我尝试了本网站和其他网站上的许多不同 IPTables 配置,其他示例要么太简单,要么太复杂。此服务器唯一要做的就是连接到 VPN 并转发所有流量。
所以我们可以“清除”一切并从头开始。这是一块空白的石板。
#!/bin/bash
ipt="/sbin/iptables"
# Zero out all counters
$ipt -Z
$ipt -t nat -Z
$ipt -t mangle -Z
# Flush all active rules, delete all chains
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -t nat -A POSTROUTING -o tun0 -j MASQUERADE
$ipt -A FORWARD -i eth1 -o eth0 -j ACCEPT
$ipt -A FORWARD -i eth0 -o eth1 -j ACCEPT
$ipt -A FORWARD -i eth0 -o tun0 -j ACCEPT
$ipt -A FORWARD -i tun0 -o eth0 -j ACCEPT
再次,我做了上述许多变化,并制定了其他帖子中的许多其他规则,但一直无法取得进展。这似乎是一项非常简单的任务,然而……