实验环境
服务器外网ip:192.168.189.132
vpn服务器内网ip: 192.168.110.132
系统需支持tun模块:
服务器端:
一,下载所需软件包,并解压。
# cd /usr/local/src/ # wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz # wget http://openvpn.net/release/openvpn-2.0.9.tar.gz # tar -zxvf lzo-2.03.tar.gz # tar -zxvf openvpn-2.0.9.tar.gz
二,编译安装lzo。
#cd lzo-2.0.3 #./configure -prefix=/usr/local/lzo && make && make install
三,编译安装openvpn。
安装openvpn需要openssl库支持,若没有,安装openssl:
# yum -y install openssl* # cd ../openvpn-2.0.9 # ./configure --prefix=/usr/local/openvpn --with-lzo-headers=/usr/local/lzo/include --with-lzo-lib=/usr/local/lzo/lib --with-ssl-headers=/usr/include/openssl--with-ss-lib=/usr/lib # make && make install
四,openvpn配置前准备。
创建openvpn配置目录与文件:
# mkdir /usr/local/openvpn/etc # cp -r /usr/local/src/openvpn-2.0.9/easy-rsa/ /usr/local/openvpn/etc/ # cp /usr/local/src/openvpn-2.0.9/sample-config-files/server.conf /usr/local/opevpn/etc/
编辑vars文件,并使之生效(以个人配置为准):
# tail -n 5 /usr/local/openvpn/etc/easy-rsa/2.0/vars export KEY_COUNTRY="CN" export KEY_PROVINCE="FJ" export KEY_CITY="FZ" export KEY_ORG="hui.com" export KEY_EMAIL=root@hui.com # cd /usr/local/openvpn/etc/easy-rsa/2.0/ # source ./vars NOTE: If you run ./clean-all, I will bedoing a rm -rf on /home/usr/local/openvpn/etc/easy-rsa/2.0/keys # ./clean-all
生成dh1024.pem文件:
#./build-dh
生成服务器证书文件:
生成客户端证书文件:
创建key文件路径
# mkdir /usr/local/openvpn/etc/keys/ # cd /usr/local/openvpn/etc/easy-rsa/2.0/keys/ # cp ca.crtcmhserver.crt cmhserver.key dh1024.pem /usr/local/openvpn/etc/keys/
五:openvpn简单配置。
# vi/usr/local/openvpn/etc/server.conf local 192.168.189.132 port 1194 proto tcp dev tun ca /usr/local/openvpn/etc/keys/ca.crt cert/usr/local/openvpn/etc/keys/cmhserver.crt key/usr/local/openvpn/etc/keys/cmhserver.key dh /usr/local/openvpn/etc/keys/dh1024.pem server 10.2.2.0 255.255.255.0 ----vpn分配的地址段 ifconfig-pool-persist ipp.txt push "redirect-gateway" push "dhcp-option DNS 8.8.8.8" client-to-client keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn-status.log verb 3
六,启动服务并验证。
打开服务器的ip路由转发功能,并生效: # grep ipv4 /etc/sysctl.conf net.ipv4.ip_forward=1 # sysctl -p net.ipv4.ip_forward=1 开启openvpn服务: # /usr/local/openvpn/sbin/openvpn--daemon --config /usr/local/openvpn/etc/server.conf
验证openvpn是否开启:
检测tun端口是否启用:
iptables防火墙配置,允许vpn地址转换:
# iptables -F # iptables -Z # iptables -X # iptables -P INPUT ACCEPT # iptables -P FORWARD ACCEPT # iptables -t nat -A POSTROUTING -s 10.2.2.0/24 -o eth0 -j MASQUERADE (这里的网卡,指定为外网接口:-o eth0,转发10.2.2.0/24网段) # service iptables save
检查iptables的nat规则
客户端:(windows)
一:下载客户端软件,地址:http://openvpn.se/files/install_packages/,客户端软件需与服务器端匹配。
二:将服务器端/usr/local/openvpn/etc/easy-rsa/2.0/keys/目录下的ca.crt、cmhclient.crt、cmhclient.key三个文件拷贝到C:\ProgramFiles\Open×××\config路径下。将服务器端/usr/local/src/openvpn-2.0.9/sample-config-files/目录下的client.conf文件拷贝到C:\ProgramFiles\Open×××\config路径下。将client.conf文件更名为client.ovpn。
三:修改client.ovpn配置文件,内容如下:
四:拨号前观察测试。
检查虚拟网卡是否建立(使用ipconfig /all查看):
这时候,客户端ping服务器外网地址,可以ping通。ping服务器vpn内网地址,ping不通。
五:拨号连接,验证openvpn拨号是否成功。
检查虚拟网卡是否获取vpn地址:
ping服务器外网地址与vpn内网地址:
这时发现虚拟网卡的地址变为10.2.2.6。跟之前不同,ping 服务器外网地址,ping不通。ping服务器vpn内网地址,可ping通。
以上现象说明vpn拨号成功。
--------------------------------------------------------------------------
问题:
每次重启系统后,当想重新生成客户端key时,就会报以下错误
Please edit the vars script to reflect your configuration,
then source it with "source./vars".
Next, to start with a fresh PKI configurationand to delete any
previous certificates and keys, run"./clean-all".
Finally, you can run this tool (pkitool) tobuild certificates/keys.
需重新运行一次 source ./vars。