OpenVPN部署 安装OpenVPN服务端

1、OpenVPN是基于OpenSSL的,所有要先安装OpenSSL:

[root@Zabbix-Server ~]# yum install openssl openssl-devel gcc

2、安装lzo软件,用于压缩隧道通信数据加快传输数度(版本lzo-2.06),关于OpenVPN安装所用到的软件包我放在百度网盘http://pan.baidu.com/s/1i3suZOD

[root@Zabbix-Server lzo-2.06]# ./configure --prefix=/usr/local/lzo
[root@Zabbix-Server lzo-2.06]# make
[root@Zabbix-Server lzo-2.06]# make install

3、安装OpenVPN(版本openvpn-2.2.2)

[root@Zabbix-Server openvpn-2.2.2]# ./configure --prefix=/usr/local/openvpn --with-lzo-lib=/usr/local/lzo/
[root@Zabbix-Server openvpn-2.2.2]# make
[root@Zabbix-Server openvpn-2.2.2]# make install

4、配置OpenVPN
1)建立CA的详细信息,进入源代码相关目录操作,编辑文件vars设定相关变量值。

[root@Zabbix-Server ~]# cd /root/src/openvpn-2.2.2/easy-rsa/2.0
[root@Zabbix-Server 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="1989051805@qq.com"    #定义邮件地址
###vim vars###
[root@Zabbix-Server 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目录
[root@Zabbix-Server 2.0]# ./clean-all

生成根CA证书ca.key、ca,crt,用于签发server和client证书,由于定义了预设值创建过程中一路回车就可以。

[root@Zabbix-Server 2.0]# ./build-ca

为服务器生成Diffie-Hellman文件

[root@Zabbix-Server 2.0]# ./build-dh

2)为OpenVPN服务器生成证书和密钥,一般只需要输入A challenge password []、An optional company name []:这两项,其它的默认或”y”,如果不使用默认的预设值填入你想要的即可。

[root@Zabbix-Server 2.0]# ./build-key-server server

3)为OpenVPN客户端生成证书文件,以客户端xiaoma为例,与服务端的步骤一样如果不更改默认预设值,一路回车或”y”就行了。需要说明的是每个客户端的证书文件都是这样生成的(如果结合radius认证就不用这么麻烦了,后面的文章有介绍),每个客户端都要独立生成证书文件。

[root@Zabbix-Server 2.0]# ./build-key xiaoma

4)修改相关配置文件
为了方便,将keys文件夹整个拷贝到OpenVPN的安装目录/usr/local/openvpn/

[root@Zabbix-Server 2.0]# cp -rp keys/ /usr/local/openvpn/

拷贝OpenVPN的配置文件/root/src/openvpn-2.2.2/sample-config-files/server.conf到OpenVPN的安装目录

[root@Zabbix-Server 2.0]# mkdir /usr/local/openvpn/etc
[root@Zabbix-Server 2.0]# cd ../../sample-config-files/
[root@Zabbix-Server sample-config-files]# cp server.conf /usr/local/openvpn/etc/

编辑配置文件/usr/local/openvpn/etc/server.conf

[root@Zabbix-Server sample-config-files]# cd /usr/local/openvpn/etc/
[root@Zabbix-Server 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转发功能,让数据包在不同的网段之间流通

[root@Zabbix-Server etc]# echo "1" > /proc/sys/net/ipv4/ip_forward
上面只是临时开启IP转发功能,下次开机后失效。更改文件/etc/sysctl.conf使其永久生效。
[root@Zabbix-Server etc]# vim /etc/sysctl.conf
####vim 更改的参数 ####
net.ipv4.ip_forward = 1
#使用sysctl -p使参数立即生效
[root@Zabbix-Server etc]# sysctl -p

5)启动OpenVPN server

[root@Zabbix-Server openvpn]# /usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/etc/server.conf
#一般放到后台运行的这样
[root@Zabbix-Server openvpn]# nohup /usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/etc/server.conf &

当然也可以使用源码包提供的脚本/root/src/openvpn-2.2.2/sample-scripts/openvpn.init稍加修改就适应当前的环境。

[root@Zabbix-Server sample-scripts]# cp openvpn.init /etc/init.d/openvpn
[root@Zabbix-Server 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并加入开机启动项
[root@Zabbix-Server sample-scripts]# /etc/init.d/openvpn start
正在启动 openvpn:                                         [确定]
[root@Zabbix-Server sample-scripts]# chkconfig openvpn on
[root@Zabbix-Server 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”连接即可。
文章出处: http://www.xiaomastack.com/2014/12/04/installopenvpn/

5 Comments

 Add your comment
  1. 按你教程做,openvpn的服务启动失败,怎么搞?

  2. [root@localhost log]# service openvpn start
    正在启动 openvpn: [失败]
    [root@localhost log]# cat openvpn.log
    Mon Feb 16 00:01:26 2015 OpenVPN 2.2.2 x86_64-unknown-linux-gnu [SSL] [LZO2] [EPOLL] [eurephia] built on Feb 15 2015
    Mon Feb 16 00:01:26 2015 NOTE: OpenVPN 2.1 requires ‘–script-security 2’ or higher to call user-defined scripts or executables
    Mon Feb 16 00:01:26 2015 Cannot open dh1024.pem for DH parameters: error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such file

  3. 嗯~,不好意思春节不在,这个错误我装的时候没有出现,根据提示貌似缺少相关的文件或配置,你可以根据报错信息google(废话)。我刚才google了下,有很多帖子谈到了这个问题。

  4. openvpn国内有没有封杀?国内还可以使用吗?

  5. 貌似GFW有干扰

发表评论:

你的电子邮件地址将不会被公开.

79 + = 82