使用 iptables 制作 VPN 路由器

使用 iptables 制作 VPN 路由器

我正在尝试与第三方 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

再次,我做了上述许多变化,并制定了其他帖子中的许多其他规则,但一直无法取得进展。这似乎是一项非常简单的任务,然而……

相关内容