Linux下OPENVPN的安装配置方法
Linux下OPENVPN的安装配置方法
发布时间:2017-01-05 来源:查字典编辑
摘要:环境需求:OPENVPN-2.2.2(服务端):http://swupdate.openvpn.org/community/releases...

环境需求:

OPENVPN-2.2.2(服务端):

http://swupdate.openvpn.org/community/releases/openvpn-2.2.2.tar.gz

OPENVPN-2.0.9-GUI(Windows客户端):

http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe

操作系统版本:CentOS 6.3

额外软件包需求:

lzo lzo-devel openssl openssl-devel pam pam-devel (可直接yum install)

pkcs11-helper pkcs11-helper-devel (需要在rpmfind.net上查找并下载)

额外的软件包检查结果

[root@liaosnet ~]# rpm -qa lzo lzo-devel openssl openssl-devel pam pam-devel

pkcs11-helper pkcs11-helper-devel

pam-devel-1.1.1-10.el6_2.1.i686

pkcs11-helper-devel-1.08-1.el6.rf.i686

pam-1.1.1-10.el6_2.1.i686

lzo-2.03-3.1.el6.i686

lzo-devel-2.03-3.1.el6.i686

openssl-1.0.0-25.el6_3.1.i686

openssl-devel-1.0.0-25.el6_3.1.i686

pkcs11-helper-1.08-1.el6.rf.i686

1、使用RPMBUILD创建.rpm并安装openvpn

[root@liaosnet ~]# rpmbuild -tb openvpn-2.2.2.tar.gz

经过编译后,提示在/root/rpmbuild/RPMS/i386/ 目录下生成openvpn-2.2.2-1.i386.rpm,即可按正常的.rpm的安装方式安装openvpn,也可于用相同系统下的安装。

[root@liaosnet i386]# rpm -ivh openvpn-2.2.2-1.i386.rpm

Preparing... ########################################### [100%]

1:openvpn ########################################### [100%]

2、配置openvpn服务(服务端)

新安装的openvpn可通过chkconfig --list openvpn 看到服务已经加入到init.d里,但由于尚未进行任何配置,是无法正常工作的。

1) 初始化PKI(Public Key Infrastructure)

在/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0目录下,修改默认的变量vars

[root@liaosnet.com 2.0] vi vars

修改最后的几行的export的值自定义的值

export KEY_COUNTRY="CN"

export KEY_PROVINCE="GD"

export KEY_CITY="GuangZhou"

export KEY_ORG="NetSky Studio"

export KEY_EMAIL="liaosnet@liaosnet.com"

export KEY_EMAIL=liaosnet@liaosnet.com

export KEY_CN=liaosnet

export KEY_NAME=liaosnet

export KEY_OU=liaosnet

export PKCS11_MODULE_PATH=liaosnet

export PKCS11_PIN=1234

[root@liaosnet 2.0]# . vars

**************************************************************

No /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/openssl.cnf file could be found

Further invocations will fail

**************************************************************

NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys

使用当前变量生效(. vars),若出现提示的找不到openssl.cnf,直接做个链接到openssl-1.0.0.cnf,再试即可。

[root@liaosnet 2.0]# ln -s openssl-1.0.0.cnf openssl.cnf

[root@liaosnet 2.0]# . vars

NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys

清除之前的keys

[root@liaosnet 2.0]# ./clean-all

2) 创建私钥(ca private key)

[root@liaosnet 2.0]# ./build-ca

由于刚配置了默认变量,故一路回车下去即可

Linux下OPENVPN的安装配置方法1

完成后,在keys目录下生成1024位RSA私钥ca.key和ca.crt 两个文件

3) 创建服务器密钥(server key)

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

Linux下OPENVPN的安装配置方法2

完成后,在keys目录下生成1024位RSA服务器密钥server.key、server.crt和server.csr 三个文件

4) 创建用户密钥(user private key)

[root@liaosnet 2.0]# ./build-key user1

Linux下OPENVPN的安装配置方法3

创建用户私钥的过程与服务器密钥的过程类似。完成后,在keys目录下生成1024位RSA服务器密钥user1.key、user1.crt和user1.csr 三个文件

若要建立多个用户私钥,以不用的用户名build-key USERNAM,生成多个用户密钥。

5) 生成Diffie Hellman参数

[root@liaosnet 2.0]# ./build-dh

Generating DH parameters, 1024 bit long safe prime, generator 2

This is going to take a long time

完成后,在keys目录下生成dh参数文件dh1024.pem

将/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys 目录下的所有文件复制到/etc/openvpn下

[root@liaosnet ~] cp /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/* /etc/openvpn/

6) 创建服务端配置文件server.conf

将/usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf复制到/etc/openvpn/目录下server.conf并修改以下参数

[root@liaosnet openvpn]# vi server.conf

# TCP or UDP server?

proto tcp

;proto udp

用分号注释proto udp,去掉proto tcp的分号注释,即使用tcp方式连接

;server 10.8.0.0 255.255.0.0

server 192.168.18.0 255.255.255.240

改成自己使用的IP网络段

user nobody

group nobody

去除user nobody 和group nobody前的分号,使系统使用nobody用户启动openvpn进程

log openvpn.log

;log-append openvpn.log

这两个建议去掉其中一个的分号,若不去除之一,openvpn的日志将写到系统日志中去。log项,每次启动将清空之前的openvpn.log;log-append项,日志是追加的(每次启动不清空之前的openvpn.log)

7) 设置允许IP转发

在/etc/openvpn目录下编写openvpn-startup文件,内容如下:

# enable IP forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

完成以上所有操作后,openvpn基本上就配置完成了。

使用service openvpn start 即可启动openvpn,而后可以看到openvpn的进程

[root@liaosnet openvpn]# ps -ef | grep openvpn

nobody 9428 1 0 00:53 ? 00:00:00 /usr/sbin/openvpn --daemon --writepid /var/run/openvpn/server.pid --config server.conf --cd /etc/openvpn

使用ifconfig -a可以看到配置使用的openvpn接口tun0也已经启动

注:可能需要增加iptables的nat策略

iptables -t nat -A POSTROUTING -s 192.168.18.0/28 -o eth0 -j MASQUERADE

其中的网络地址与server.conf中的网络配置应一致

3、配置openvpn客户端(windows)

在windows下安装openvpn-2.0.9-gui-1.0.3-install.exe

假设安装目录为:C:Program FilesOpenVPN

1) 加载密钥文件(用户user1,其它用户如user2则下载user2的用户密钥)

将服务端/etc/openvpn目录下的

user1.crt

user1.csr

user1.key

ca.crt

ca.key

文件下载到C:Program FilesOpenVPNconfig目录下

2) 配置client.conf

将C:Program FilesOpenVPNsample-config下的client.opvn复制到C:Program FilesOpenVPNconfig目录下,并修改之

proto tcp

;proto udp

用分号注释proto udp,去掉proto tcp的分号注释,即使用tcp方式连接(与服务端相等)

;remote my-server-1 1194

remote 192.168.80.60 1194

将服务器名改成实际的IP地址或者域名

cert user1.crt

key user1.key

cert和key改成实际用户user1的密钥

完成后即可使用Openvpn GUI 与openvpn建立VPN连接。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新网络通讯学习
热门网络通讯学习
软件教程子分类