VPN远程管理系统的设计与实现

时间:2022-06-15 01:42:24

VPN远程管理系统的设计与实现

摘要:本文在分析了VPN的基本原理、运行机制和相关管理技术的基础上,结合 VPN 远程管理系统的实际要求,设计与实现了一个相对简单的数字证书管理中心。

关键字:VPN 网络管理 IPSec OpenSSL 数字证书

前言

目前在国内,VPN 已成为了网络安全设备市场上迅速成长的主流消费品之一;而在国外,VPN 的应用也已相当广泛,许多网络设备供应商和网络安全集成方案提供商都拥有自己成熟的VPN产品和解决方案,因此在VPN 管理的研究设计方面有较大的发展空间。建立安全高效的 VPN 管理系统不只是对安全设备、安全软件进行管理,而是针对网络、网络设备、安全策略和用户的统一安全管理,管理员可以对网络中所有信息进行综合考虑,保证网络安全、可靠地运行,使它在 Internet 上开辟一条专用数据的通信渠道,为公司和商务伙伴之间建立一条安全的通路,为市场经济的繁荣和发展铺设坚实可靠的奠基石。

1 VPN与IPSec

VPN是Virtual Private Network的缩写,中文译为虚拟专用网。它是一种“基于公共数据网,给用户一种直接连接到私人局域网感觉的服务”。VPN极大地降低了用户的费用,而且提供了比传统方法更强的安全性和可靠性。VPN由客户机、传输介质和服务器这三部分组成,而它的连接是使用建立在公共网络或专用网络基础之上的隧道作为传输通道,靠的是对数据包的封装和加密,如Internet或Intranet。

IPSec(Internet Protocol Security)是由 Internet Engineering Task Force (IETF) 定义的安全标准框架,用以提供公用和专用网络的端对端加密和验证服务。它指定了各种可选网络安全服务,而各 IT 组织可以根据自己的安全策略综合和匹配这些服务。而IPSec协议提供了一种标准、健全的机制,可为 IP 及其上层协议提供安全保证。通过加密、认证、封装等手段为所有高层协议提供透明的安全保护,从而保证数据传输的可靠性、完整性和保密性。

2 VPN远程管理系统的设计与实现

2.1VPN远程管理系统总体设计

VPN远程管理系统包括了:设备管理模块(日志管理,状态监控),策略管理模块(添加策略,删除策略,实施策略),证书中心模块(初始化,签发证书,吊销证书)。

2.2 VPN远程管理系统的实现

2.2.1 策略管理模块

策略配置模块的功能可以概括为:从客户端获取各个配置参数值,和既定的公共策略综合在一起形成完整的一条VPN策略,然后写入配置文件,并通知VPN 系统更新策略,策略的实施则是通知VPN系统启用或停用该策略实现的。具体来说,对VPN策略的操作分为添加、修改、删除和实施,其中策略的实施可以分为启用策略和停用策略。

2.2.2 设备管理模块

它主要分为日志管理和设备监控两个功能。

在当今网络安全问题日益严峻的形势下,对于网络活动进行详细的日志记录是必要的, 它为网络管理员提供了一种查验网络历史记录并进行分析的手段。对VPN设备的状态监控分为两部分:VPN网关运行状态和VPN连接状态。VPN网关运行状态包括 IPSec 服务是否工作正常、证书配置是否正确等;VPN连接状态包括对活动隧道的状态显示和非活动隧道状态显示,所有的活动隧道和非活动隧道都将以列表的形式呈现给管理员,管理员可以选择指定的隧道,以查看其详细信息。这些信息包括:隧道名称(对应的策略名)、对应策略的描述、隧道状态、隧道活动时间等。

2.2.3 证书中心模块

同一CA签发的数字证书在身份认证过程可以成功地确认对方身份,换句话说,就是两个 VPN 节点如果使用同一CA签发的数字证书则可以成功地建立VPN连接,否则无法实现 VPN 互联(除非使用CA的分级或交叉认证)。因此,每个VPN安全域拥有一个为本域内所有VPN节点提供数字证书,以及对数字证书进行管理的“证书中心”。该证书中心执行 CA(认证中心)的基本功能,包括处理证书申请请求、签发证书、吊销证书、管理证书数据库。

在签发数字证书之前,首先要产生一个证书申请。证书申请的功能由 Web 服务器提供的表单功能从客户端获得。证书申请过程主要是要提供证书保护密码和证书主题信息,以上信息通过 POST 方法传递到 CGI 处理程序 cert_request.php,该程序调用 OpenSSL 命令: openssl req -newkey rsa:1024 -keyout hostkey.pem out hostreq.pem。

其中rsa:1024 表示使用1024位的RSA加密算法,密钥输出文件为 hostkey.pem,hostreq.pem 是输出的未进行 CA 签名的证书文件。与证书中心初始化操作类似,该 OpenSSL 命令同样需要在命令行输入诸如密码、主题信息、确认信息等,通过命令管道方式向命令行输入管理员设定的证书保护密码和证书的主题信息。该命令执行成功后,当前目录下将创建两个文件,一个为私钥文件,另一个是没有签名的公钥证书。接下来,就要调用另一个 OpenSSL 命令对公钥证书文件进行签名操作:

openssl ca -in hostreq.pem -days 356 -out hostcert.pem notext

其中hostreq.pem指定了需要签名的证书文件,356表示证书有效期为一年, 输出文件为 hostcert.pem,即完成签名的公钥证书文件。

命令执行成功后,还要提供给管理员下载。首先是对两个证书文件的改名操作,使用管理员自定义的证书名称分别更改公钥证书文件和私钥文件的文件名,并放在以证书名称为目录名的目录中。为了方便管理员对证书文件的管理,将对上述两个文件和 CA 公钥证书文件进行加密压缩打包操作:“tar cf name.tar name”(其中 name 代表管理员自定义的证书名称)。最后在客户端页面上显示证书打包文件的下载链接并提醒管理员下载。管理员下载的证书打包文件可以直接上传到VPN网关为其更新 “本地网关证书”。

作为一个功能比较完善的 CA 系统,必须能够提供吊销证书的功能。因此,在参考了 OpenSSL 关于证书吊销的内容后,实现了一个相对简单的撤销数字证书的功能。证书就相当于我们平常所用的身份证一样,被撤销后,它就是无效的了,也就无法用它来进行身份认证了。因此,吊销证书时一定要谨慎,不能随便任意地吊销用户的证书,系统中如果管理员想进行该操作的话,也会给出相应的警告信息,等管理员确定要执行该操作时才真正吊销该证书。

管理系统客户端从已签发证书列表中选择要吊销的证书,发出吊销该证书的请求后,CGI 处理程序 cert_revoke.php 将调用 cert_revoke()函数,该函数执行OpenSSL命令:

openssl ca -revoke somecert.pem

其中 somecert.pem 为要吊销的证书名称。

该命令执行之后,证书信息数据库将更新,被吊销证书对应的证书状态将更改为“R”,表示该证书已被吊销,同时,证书吊销时间字段将被设置为吊销证书的时间。证书吊销成功后,还必须重新生成证书撤销列表,该功能的实现通过调用 OpenSSL 命令:

openssl ca -gencrl -crldays 30 -out crl.pem

其中30表示证书撤销列表的有效时间;crl.pem 为输出的撤销列表文件名。

该命令执行之后,当前目录下将产生名为 crl.pem 的撤销列表文件,接下来把该文件保存到证书中心的crl目录下,并在客户端页面上提供下载该文件的链接,提供给各VPN网关下载。

结束语

VPN产品从第一代的VPN路由器、交换机,发展到第二代的VPN集中器,性能不断得到提高。在网络时代,企业发展取决于是否最大限度地利用网络。VPN将是企业的最终选择。

参考文献:

[1]P. C. Cheng.J. A. Garay.A. Herzberg.H.Krawczyk.“A Security Architecture for the Internet Protocol”.IBM System Journal.Vol. 37,No. 1.Feb. 1998.

[2]S. Kent.R. Atkinson.“Security Architecture for the Internet Protocol”.RFC 2401.Internet work Working Group.Nov. 1998.

[3]杨杰.VPN远程管理系统的设计与实现[J].四川大学.

[4]杨杰,李涛等.应用虚拟设备驱动实现改进的SSL VPN 系统[J].计算机工程.

[5]张国鸣,唐树才,薛刚逊.网络管理实用技术[D].清华大学出版社,2002.

[6]杨家海,任宪坤,王沛瑜.网络管理原理与实现技术[D].清华大学出版社,2000.

[7]谢希仁.计算机网络(第 2 版)[D].电子工业出版社,1999.

上一篇:网络教学信息资源系统的建设分析 下一篇:基于蜜罐技术的蠕虫检测系统的研究与设计