1、OpenVPN是基于OpenSSL的,所有要先安装OpenSSL:
1 | $ yum install openssl openssl-devel gcc |
2、安装lzo软件,用于压缩隧道通信数据加快传输数度(版本lzo-2.06),关于OpenVPN安装所用到的软件包我放在百度网盘http://pan.baidu.com/s/1i3suZOD
1 | $ ./configure --prefix=/usr/local/lzo |
3、安装OpenVPN(版本openvpn-2.2.2)
1 | $ ./configure --prefix=/usr/local/openvpn \ |
4、配置OpenVPN
1) 建立CA的详细信息,进入源代码相关目录操作,编辑文件vars设定相关变量值。
1 | $ cd /root/src/openvpn-2.2.2/easy-rsa/2.0 |
生成根CA证书ca.key、ca,crt,用于签发server和client证书,由于定义了预设值创建过程中一路回车就可以。
1 | $ ./build-ca |
为服务器生成Diffie-Hellman文件
1 | $ ./build-dh |
2) 为OpenVPN服务器生成证书和密钥,一般只需要输入A challenge password []、An optional company name []:这两项,其它的默认或”y”,如果不使用默认的预设值填入你想要的即可。
1 | $ ./build-key-server server |
3) 为OpenVPN客户端生成证书文件,以客户端xiaoma为例,与服务端的步骤一样如果不更改默认预设值,一路回车或”y”就行了。需要说明的是每个客户端的证书文件都是这样生成的(如果结合radius认证就不用这么麻烦了,后面的文章有介绍),每个客户端都要独立生成证书文件。
1 | $ ./build-key xiaoma |
4) 修改相关配置文件 为了方便,将keys文件夹整个拷贝到OpenVPN的安装目录/usr/local/openvpn/
1 | $ cp -rp keys/ /usr/local/openvpn/ |
拷贝OpenVPN的配置文件/root/src/openvpn-2.2.2/sample-config-files/server.conf到OpenVPN的安装目录
1 | $ mkdir /usr/local/openvpn/etc |
编辑配置文件/usr/local/openvpn/etc/server.conf
1 | $ cd /usr/local/openvpn/etc/ |
开启系统IP转发功能,让数据包在不同的网段之间流通
1 | $ echo "1" > /proc/sys/net/ipv4/ip_forward |
5) 启动OpenVPN server
1 | $ /usr/local/openvpn/sbin/openvpn --config \ |
当然也可以使用源码包提供的脚本/root/src/openvpn-2.2.2/sample-scripts/openvpn.init稍加修改就适应当前的环境。
1 | $ cp openvpn.init /etc/init.d/openvpn |
6) 先安装OpenVPN客户端(我的win7 64位)安装程序也在网盘中,然后将keys文件夹下相关的三个证书ca.crt, xiaoma.crt, xiaoma.key文件放到客服端的C:\Program Files\OpenVPN\config文件夹下。
然后以OpenVPN服务端提供的client.conf(/root/src/openvpn-2.0.9/sample-config-files/client.conf)文件为模板
建立客户端的配置文件,windows需要将后缀名改成.ovpn
需要更改的项只有4项分别是:remote,ca,cert,key,我的一份配置xiaoma.ovpn如下:
1 | client |
配置完成后就可以双击OpenVPN的图标启动客户端程序,然后右击右下角的小图标选择“connect”连接即可。