1、OpenVPN是基于OpenSSL的,所有要先安装OpenSSL:
[[email protected] ~]# yum install openssl openssl-devel gcc
2、安装lzo软件,用于压缩隧道通信数据加快传输数度(版本lzo-2.06),关于OpenVPN安装所用到的软件包我放在百度网盘http://pan.baidu.com/s/1i3suZOD
[[email protected] lzo-2.06]# ./configure --prefix=/usr/local/lzo
[[email protected] lzo-2.06]# make
[[email protected] lzo-2.06]# make install
3、安装OpenVPN(版本openvpn-2.2.2)
[[email protected] openvpn-2.2.2]# ./configure --prefix=/usr/local/openvpn --with-lzo-lib=/usr/local/lzo/
[[email protected] openvpn-2.2.2]# make
[[email protected] openvpn-2.2.2]# make install
4、配置OpenVPN
1)建立CA的详细信息,进入源代码相关目录操作,编辑文件vars设定相关变量值。
[[email protected] ~]# cd /root/src/openvpn-2.2.2/easy-rsa/2.0
[[email protected] 2.0]# vim vars
###vim vars 需要修该的项###
export KEY_COUNTRY="CN" #定义国家
export KEY_PROVINCE="SH" #定义省份
export KEY_CITY="Shanghai" #定义城市
export KEY_ORG="xincheng1234" #定义组织
export KEY_EMAIL="[email protected]" #定义邮件地址
###vim vars###
[[email protected] 2.0]# source vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/src/openvpn-2.0.9/easy-rsa/2.0/keys
#初始化keys目录
[[email protected] 2.0]# ./clean-all
生成根CA证书ca.key、ca,crt,用于签发server和client证书,由于定义了预设值创建过程中一路回车就可以。
[[email protected] 2.0]# ./build-ca
为服务器生成Diffie-Hellman文件
[[email protected] 2.0]# ./build-dh
2)为OpenVPN服务器生成证书和密钥,一般只需要输入A challenge password []、An optional company name []:这两项,其它的默认或”y”,如果不使用默认的预设值填入你想要的即可。
[[email protected] 2.0]# ./build-key-server server
3)为OpenVPN客户端生成证书文件,以客户端xiaoma为例,与服务端的步骤一样如果不更改默认预设值,一路回车或”y”就行了。需要说明的是每个客户端的证书文件都是这样生成的(如果结合radius认证就不用这么麻烦了,后面的文章有介绍),每个客户端都要独立生成证书文件。
[[email protected] 2.0]# ./build-key xiaoma
4)修改相关配置文件
为了方便,将keys文件夹整个拷贝到OpenVPN的安装目录/usr/local/openvpn/
[[email protected] 2.0]# cp -rp keys/ /usr/local/openvpn/
拷贝OpenVPN的配置文件/root/src/openvpn-2.2.2/sample-config-files/server.conf到OpenVPN的安装目录
[[email protected] 2.0]# mkdir /usr/local/openvpn/etc
[[email protected] 2.0]# cd ../../sample-config-files/
[[email protected] sample-config-files]# cp server.conf /usr/local/openvpn/etc/
编辑配置文件/usr/local/openvpn/etc/server.conf
[[email protected] sample-config-files]# cd /usr/local/openvpn/etc/
[[email protected] etc]# vim server.conf
####vim server.conf 新增加或修改的项####
proto tcp #使用TCP协议通信
ca /usr/local/openvpn/keys/ca.crt
cert /usr/local/openvpn/keys/server.crt
key /usr/local/openvpn/keys/server.key
server 10.8.0.0 255.255.255.0 #OpenVPN服务启动时为VPN网络分配的网段
push "dhcp-option DNS 202.96.209.5"
push "route 10.10.10.0 255.255.255.0" #内网
#指定日志文件,默认的日志送给syslog记录在/var/log/message文件
log /var/log/openvpn.log
####vim server.conf####
#开启系统IP转发功能,让数据包在不同的网段之间流通
[[email protected] etc]# echo "1" > /proc/sys/net/ipv4/ip_forward
上面只是临时开启IP转发功能,下次开机后失效。更改文件/etc/sysctl.conf使其永久生效。
[[email protected] etc]# vim /etc/sysctl.conf
####vim 更改的参数 ####
net.ipv4.ip_forward = 1
#使用sysctl -p使参数立即生效
[[email protected] etc]# sysctl -p
5)启动OpenVPN server
[[email protected] openvpn]# /usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/etc/server.conf
#一般放到后台运行的这样
[[email protected] openvpn]# nohup /usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/etc/server.conf &
当然也可以使用源码包提供的脚本/root/src/openvpn-2.2.2/sample-scripts/openvpn.init稍加修改就适应当前的环境。
[[email protected] sample-scripts]# cp openvpn.init /etc/init.d/openvpn
[[email protected] sample-scripts]# vim /etc/init.d/openvpn
####vim openvpn 需要更改的项####
#添加openvpn可执行文件自定义的安装目录/usr/local/openvpn/sbin/openvpn
openvpn_locations="/usr/sbin/openvpn /usr/local/sbin/openvpn /usr/local/openvpn/sbin/openvpn"
#更改配置文件目录为/usr/local/openvpn/etc
work=/usr/local/openvpn/etc
####vim openvpn ####
#启动openvpn并加入开机启动项
[[email protected] sample-scripts]# /etc/init.d/openvpn start
正在启动 openvpn: [确定]
[[email protected] sample-scripts]# chkconfig openvpn on
[[email protected] sample-scripts]#
6)先安装OpenVPN客户端(我的win7 64位)安装程序也在网盘中,然后将keys文件夹下相关的三个证书ca.crt, xiaoma.crt, xiaoma.key文件放到客服端的C:\Program Files\OpenVPN\config文件夹下。
installopenvpn
然后以OpenVPN服务端提供的client.conf(/root/src/openvpn-2.0.9/sample-config-files/client.conf)文件为模板建立客户端的配置文件,windows需要将后缀名改成.ovpn
需要更改的项只有4项分别是:remote,ca,cert,key,我的一份配置xiaoma.ovpn如下:
client
dev tun
proto tcp
remote 192.168.5.168 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert xiaoma.crt
key xiaoma.key
comp-lzo
verb 3
配置完成后就可以双击OpenVPN的图标启动客户端程序,然后右击右下角的小图标选择“connect”连接即可。