基于OPENVPN构建穿墙路由

一 环境:
公司采用ADSL 拔号上网 Linux网关拔号服务器一个,内网网段为192.168.1.0/24
租用阿里香港云服务器一台 最低配2M带宽成本为176元一个月

二 实现思路:
OPENVPN服务端 安装在阿里云服务器
OPENVPN客户端 安装在公司的Linux网关
获取国内全部IP网段,默认走VPN,访问国内的IP走本地网关
使用VPN通道连接的国外DNS服务器解析,解决DNS污染问题

三.如何安装服务器端
1.OPENVPN服务端 CentOS通过yum安装即可 执行yum install openvpn -y
2.生成KEY 执行 /usr/sbin/openvpn –genkey –secret /etc/openvpn/static.key
3.配置文件/etc/openvpn/opvps.conf 内容如下
port 1194
proto udp

dev tun
secret /etc/openvpn/static.key
ifconfig 10.8.0.1 10.8.0.2

push “redirect-gateway”
push “dhcp-option DNS 208.67.222.222″
push “dhcp-option DNS 208.67.222.220″

keepalive 10 120
comp-lzo
max-clients 100

persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
float
daemon

4.启动OPENVPN服务端 /usr/sbin/openvpn /etc/openvpn/opvps.conf
5.开启IP转发
执行echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf
再执行sysctl -p
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT –to 阿里云服务器IP

四. 公司Linux网关拔号服务器安装(略过pppoe拔号参考http://www.cncentos.com/thread-872-1-1.html)
1.OPENVPN服务端 CentOS通过yum安装即可 执行yum install openvpn -y
2.拷贝服务器的/etc/openvpn/static.key 到本地/etc/openvpn/static.key
3.配置openvpn客户端文件/etc/openvpn/opvps.conf 内容如下
remote 阿里云服务器IP 1194
dev tun

ifconfig 10.8.0.2 10.8.0.1
secret /etc/openvpn/static.key
comp-lzo
daemon

keepalive 10 60
ping-timer-rem
persist-tun
persist-key
redirect-gateway def1

4.启动OPENVPN客户端 /usr/sbin/openvpn /etc/openvpn/opvps.conf
5.开启IP转发
执行echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf
再执行sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
5.获取国内静态表并添加,有5400行左右的静态路由
执行 wget http://xencdn.net/dl/cn-route-table.sh
bash cn-route-table.sh

至此全文完,客户端的DNS设为8.8.8.8和8.8.4.4

经本人测试,测试可行再分享