使用 roadwarrior ipsec 客户端作为网关

使用 roadwarrior ipsec 客户端作为网关

设想:

INTERNET --- VPN-Server <----> ROUTER <----> Roadwarrior  <----> Subnet 
             132.1.1.1       192.168.2.1     192.168.2.50       176.168.10.0/24 
                                  |  
                              INTERNET  

VPN 服务器:CISCO
Roadwarrior:Linux 上的 racoon

我正在尝试设置该场景,以便来自子网 176.168.10.0/24 的所有 INTERNET 流量都通过 VPN 服务器而不是通过路由器。

到目前为止:我可以通过 Roadwarrior 连接到 VPN 服务器。此外,roadwarrior 上生成的所有流量都通过 VPN 服务器传输到互联网。但是,使用以下命令路由的子网流量会通过互联网中的路由器:

iptables -t nat -A POSTROUTING -s 176.168.10.0/24 -j SNAT --to-source 192.168.2.50

使用以下命令,子网中的流量就不会传输到互联网(无论是通过路由器还是通过 VPN 服务器):

iptables -t nat -A POSTROUTING -s 176.168.10.0/24 -j SNAT --to-source 132.1.2.2 (internal ip assigned to roadwarrior from VPN-Server)

有任何想法吗?

勇士之路:

eth0   192.168.2.50
eth0:1 132.1.2.2
br0    176.168.10.1

ip route list
default via 192.168.2.1 dev eth0  src 132.1.2.2 
132.1.0.0/16 dev eth0  proto kernel  scope link  src 132.1.2.2 
132.1.1.1 via 192.168.2.1 dev eth0 
176.168.10.0/24 dev br0  proto kernel  scope link  src 176.168.10.1 
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.50 

答案1

我找到了...phase1-up.sh脚本末尾包含以下几行:

44 #
45 # XXX This is a workaround for Linux forward policies problem.
46 # Someone familiar with forward policies please fix this properly.
47 #
48 echo "
49 spddelete 0.0.0.0/0[any] ${INTERNAL_ADDR4}[any] any
50        -P fwd ipsec esp/tunnel/${REMOTE}-${LOCAL}/require;
51 " | setkey -c
52

这段代码必须注释掉,这样转发策略才不会被删除。然后一个简单的

iptables -t nat -A POSTROUTING -o $WAN_IP -j MASQUERADE 

成功了。

相关内容