openvpn servere有两块网卡,分别eth1和eth2,eth1为公网地址:10.0.0.4,eth2是内网网段,ip为192.168.10.10openvpn分配的客户端地址是172.16.1.0/24,如下图所示:在前面一张文章中如何安装已经实现点此直达安装openvpn,此时已经能够拨号连接,但是无法访问后端主机如果,需要访问后端主机则需要在每台被客户端访问的机器添加路由如下所示:1,route add default gw 192.168.10.11
添加vpnserver主机的内网ip为被客户端访问主机的网关2,route add -net 172.16.1.0/24 gw 192.168.10.11
添加net即可以上两种只需要添加一个即可
注意:这种方式比较麻烦,意味着每一台内网机器(vpn访问的)都需要添加路由,这种方式在重启就会失效,则需要配置静态路由
1,/etc/sysconfig/static-router 默认不存在,需要创建
2,/etc/sysconfig/network-scripts/route-eth0
3,/etc/rc.local
NAT模式上面的方法,需要在每台服务器上设置,较为麻烦,我们可以修改iptables即可首先,关闭掉防火墙一,添加
[root@node ~]# /sbin/iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth1-j SNAT --to-source 192.168.10.11
删除
[root@node ~]# /sbin/iptables -t nat -D POSTROUTING -s 172.16.1.0/24 -o eth1-j SNAT --to-source 192.168.10.11
二,如果你的地址不是固定,则可以使用如下这条:
[root@node ~]#/sbin/iptables -t nat -I POSTROUTING -s 172.16.1.0/24 -o eth1 -j MASQUERADE
注意:这是iptables的nat转换规则,其中:1,-o eth1是为vpn服务器内网网卡2,192.168.10.11为vpn服务器内网网卡ip3,-j MASQUERADE自动转换,固定转换-j SNAT --to-source 192.168.10.11
这种方式需要停止掉防火墙,有一个原则就是,你需要在调试好VPN后才能调试防火墙,这样可能不是很友好,于是我们可以不需要停止防火墙就能使用,如下:注释掉iptables两条规则,因为在默认中FORWARD是拒绝转发的,注释掉即可
#-A INPUT -p tcp --dprot 1194 -j ACCEPT
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
启动iptables
/etc/init.d/iptables start
添加规则:
[root@node ~]# /sbin/iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth1 -j SNAT --to-source 192.168.10.11
查看
[root@node ~]# iptables -L -nv
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
25 1780 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
4 572 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 22 packets, 3156 bytes)
pkts bytes target prot opt in out source destination
[root@node ~]# vim /etc/sysconfig/iptables
如果不想注释,也可以添加iptables -A INPUT -i tun+ -j ACCEPTiptables -A FORWARD -i tun+ -j ACCEPTiptables -A INPUT -i tap+ -j ACCEPTiptables -A FORWARD -i tap+ -i ACCEPTiptables -A INPUT -i eth1 -j ACCEPTiptables -A FORWARD -i eth1 -j ACCEPT
至于其他细节配置则需要详细的配置实现openvpn路由方式和NAT方式,NAT模式更加方便部署,路由的方式可以使用批量部署下发静态路由文件即可