VPN实战1:构建SSL VPN

安全
OpenVPN可以运行在多种操作系统中,包括:Linux, Windows 2000/XP and higher, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Solaris。

OpenVPN 是一个强大、高度可配置、基于SSL的 VPN (Virtual Private Network)Open Source 软件。它具有多种的验证方式以及许多强大的功能。OpenVPN使用SSL/TLS协议进行网络传输。支持多种客户认证方法,如证书、smart cards,加上用户名密码的证书认证等。除此以外,还有强大的ACL功能限制客户的信息交换。

OpenVPN可以运行在多种操作系统中,包括:Linux, Windows 2000/XP and higher, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Solaris。通过使用OpenVpn,可以实现如下一些功能:

使用特定udp或tcp端口实现两台主机的之间的vpn连接。

实现C/S结构,实现多台client通过server服务器互连互通。

通过TLS/SSL加密保证数据传输的安全。

通过数据的压缩,提高数据传输的速度。

安装OpenVPN

企业级Linux版本的的安装光盘中已经自带了OpenVPN的安装程序,在系统安装的时候,用户可以选择进行安装。如果系统安装时没有安装,用户也可以随时使用安装盘进行安装。为了确认系统是否已经安装该软件,可以使用如下命令进行查看:

#rpm –qa | grep openvpn

制作证书

1.制作证书前的准备

复制openvpn证书工具包,在安装完openvpn后,系统会在/etc下建一个openvpn的目录,这样我们可以把openvpn证书工具包拷贝到/etc/openvpn目录下,需要注意如下几个主要的存放位置:

证书工具包默认位置:/usr/share/openvpn/easy-rsa

准备配置证书位置:/etc/openvpn/

证书生成位置:/etc/openvpn/easy-rsa/2.0/keys

使用命令如下所示:

# cp -r /usr/share/openvpn/easy-rsa /etc/openvpn/

# mkdir /etc/openvpn/easy-rsa/2.0/keys

2.修改vars变量初始化配置文件

编辑easy-rsa/2.0/vars文件,需要进行如下几个操作:

注释掉export CA_EXPIRE=3650,在前面加个#号即可

注释掉export KEY_EXPIRE=3650,在前面加个#号即可

修改证书默认值(如图1中白色区域所示)

VPN实战1:构建SSL VPN

图1 修改vars文件中的相应区域

#p#

3.初始化证书库

主要包括初始化变量库和清空变量库两个步骤,如下所示的命令:

//初始化变量库

#./vars

//清空证书库

#./clean-all

4.证书验证机制

执行如下命令,如图2所示,在执行过程中,输入对应的信息,完成后在keys目录下,会生成ca.crt和ca.key这两个文件:

VPN实战1:构建SSL VPN

图2  完成证书验证机制

5.生成服务器证书

执行./build-key-server server命令,执行完成后在keys目录下,会生成server.crt、server.csr和server.key这三个文件,如图3所示:

VPN实战1:构建SSL VPN

图3  生成服务器证书

6.生成客户端证书

在openvpn中,这种配置方法是每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接(如果有两个机器安装相同证书,同时拨服务器,都能拨上,但是只有第一个拨上的才能连通网络)。所以需要建立许多份证书。执行./build-key vpn_client1命令将执行完成后在keys目录下,会生成vpn_client1.crt、vpn_client1.csr和vpn_client1.key这三个文件,如图4所示:

VPN实战1:构建SSL VPN

图4 为客户端vpn_client1生成客户端证书

一个服务器端可以配多个客户端证书,但是每个客户端都不能一样,主要体现在Common Name这里,每一个客户端的Common Name都必须不一样,用户可以再继续建出多个客户端证书,如下所示:

#./build-key vpn_client2

#./build-key vpn_client3

7.编译证书

采用./build-dh命令将刚刚生成出来的证书和钥匙等等进行了一次加密算法,然后证书和钥匙都准备好了,此时在keys目录下,会生成dh1024.pem文件。如图5所示:

VPN实战1:构建SSL VPN

图5  编译证书

#p#

配置服务端

如果上面所述的七步都运行正常的情况下,用户就开始配置服务端了,如果中间过程有出现什么问题,建议清空证书库,重新来过,执行./clean-all来清空库即可。

配置客户端需要执行如下几个步骤:

(1)首先把几个证书、钥匙和验证机制都拷贝到/etc/openvpn目录下,如下命令所示:

# cp /etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/

# cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn/

# cp /etc/openvpn/easy-rsa/2.0/keys/server.crt /etc/openvpn/

# cp /etc/openvpn/easy-rsa/2.0/keys/server.key /etc/openvpn/

(2)然后把服务器的配置文件拷贝到/etc/openvpn目录下,如下所示:

# cp /usr/share/doc/openvpn-2.1/sample-config-files/server.conf /etc/openvpn/

(3)编辑/etc/openvpn/server.conf配置文件,去掉下述选项前面的;分号,以使其生效:

;user nobody

;group nobody

(4)启动openvpn,查看一下端口1194是否已开放,如果1194已开放那就表明openvpn服务端已经配置成功了,如下所示:

#/etc/init.d/openvpn start

(5)设置开机自启动openvpn,使用如下命令,找到openvpn服务(如图6所示),并选中服务确认即可,下次系统启动的时候会自动加载openvpn服务:

#ntsysv

VPN实战1:构建SSL VPN

图6  设置OpenVPN开机启动

(6)设置防火墙,使得VPN流量能够正常通过。在系统管理中,打开防火墙配置,开启OpenVPN和SSH(前面打沟即可),如图7所示:

VPN实战1:构建SSL VPN

图7 设置防火墙

配置客户端

配置客户端vpn_client1需要使用源代码包目录sample-config-files里的client.conf 修改即可,如下片段所示:

client

dev tun

proto tcp

remote IP_address port

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

cert vpn_client1.crt。

key vpn_client1.key

#comp-lzo

其中,主要考虑如下几个参数的设定:

proto tcp或proto udp:和server.conf 一致即可

remote IP_address port:指定vpn server 的IP 地址和端口

cert vpn_client1.crt和key vpn_client1.key:这2 行填给vpn_client1生成的密钥文件

通过如上配置后,就可以使用OpenVPN进行安全通信了。

责任编辑:蓝雨泪 来源: TechTarget中国
相关推荐

2012-09-28 09:44:32

2012-09-26 09:49:44

2012-09-27 09:51:00

2011-05-30 09:27:44

2010-06-10 23:53:24

SSL VPN深信服科技

2010-01-19 22:07:24

2010-06-30 09:14:03

SSL VPN远程访问深信服科技

2009-07-08 15:44:21

SSL VPN安全灵活

2009-06-24 15:12:00

2015-07-02 13:51:29

SSL VPN市场深信服

2010-04-09 17:41:15

VPN构建

2011-03-09 17:20:43

SSL VPNVPN

2010-09-09 13:34:30

2014-04-30 15:36:05

2011-04-13 08:17:33

Frost & SulSSL VPN深信服

2011-05-23 09:24:56

深信服SSL VPN

2010-12-16 10:54:07

SSL VPNVPN

2011-07-18 10:40:39

2009-11-13 15:08:11

2013-08-07 09:15:52

点赞
收藏

51CTO技术栈公众号