APP下载

VPN安全性与地址冲突研究*

2011-01-05孙丕波

关键词:链表内网空闲

王 晓,孙丕波

(1.青岛远洋船员职业学院,山东青岛266071;2.青岛酒店管理学院信息工程技术学院,山东青岛266100)

VPN安全性与地址冲突研究*

王 晓1,孙丕波2

(1.青岛远洋船员职业学院,山东青岛266071;2.青岛酒店管理学院信息工程技术学院,山东青岛266100)

为了解决校园网络升级改造过程中引入DMZ与VPN技术后,导致的内网资源安全性降低与虚拟IP地址碰撞的难题,在传统VPN解决方案基础上,提出虚拟IP地址生成算法与IP地址连接池的思想。异地用户通过VPN访问内网资源时,必需使用IP地址连接池来获取虚拟IP地址,实现虚拟IP地址分配的动态管束,有效控制虚拟IP地址的随意分配,避免因争夺虚拟IP地址资源而产生的碰撞问题。这种方法对于提高VPN网络的安全性和访问效率,遏制黑客通过匹配IP地址的方式入侵内网、保护内网资源安全与解决地址冲突问题非常有效。

DMZ专区;虚拟专用网络;IP地址连接池;动态管束

为了解决既能在校外使用内网资源,又能充分保证内网资源的高度安全,通常的做法是将DMZ和VPN技术结合建设校园网络。通过DMZ技术实现内网资源与公开信息的分离,为内网资源提供安全保障;通过VPN技术实现异地用户对内网资源的共享访问,为外网用户提供异地访问内网资源的VPN通道。这种做法,虽然兼顾了内网资源的安全与异地访问的便利,但是从国内外已有的案例分析,还主要存在如下两方面的缺陷:一是随机生成的虚拟IP地址,只要符合DMZ与VPN的要求,就可以通过VPN实现内网资源的访问,为黑客通过匹配IP地址方式入侵内网提供了方便,从而降低了内网资源的安全性;二是当使用VPN的异地用户数量过多时,容易造成虚拟IP地址的碰撞(冲突),反复查询空闲虚拟IP地址的操作增加了访问的时间复杂度。本文在对DMZ与VPN技术分析研究基础上,对VPN虚拟IP地址分配函数加以改进,提出了IP地址连接池的思想,将其应用于数字化校园的升级改造。

1 构建DMZ专区保护内网资源安全

DMZ是非军事区(Demilitarized Zone)的简称,与军事区(信任区)相对应。它是1个既不同于外网,又不同于内网的特殊网络区域。其作用是通过DMZ网络把校园网分为开放区与保护区2个区域,把WEB、E-mail、考试系统等允许外部访问的服务器连接在DMZ服务器的DMZ(开放)端口上,构成开放区网络;把不允许外部访问的内网服务器连接在DMZ服务器的MZ(信任)端口上,构成保护区网络。根据资源的开放程度,实现开放信息与私有信息的分离。DMZ专区设置后,可以将一些公开信息放到DMZ专区的公用服务器上,将机密信息或仅对师生开放的信息放到内网中,从而根据不同的需要,有针对性地采取隔离措施,在对外提供信息服务的同时,最大限度地保护内部网络安全。

DMZ区与内网区、外网区的通信是通过网络地址转换(NAT)原理[1]实现的。这里主要用到了静态地址转换与重载2种地址转换模式(见图1)。在进行网络配置时,需要在DMZ服务器上,按照这两种模式对内网IP地址分区间段,将1个内网IP地址映射到1个已注册的外网IP地址,从而达到从外网访问校内资源时,隐藏内部网络IP地址的目的。

图1 网络地址转换(NAT)与请求转发关系Fig.1 Network address translation and the relationship between the request forwarding

由于DMZ专区的存在,极大地提高了内网资源的安全级别,同时也设置了外网用户自由访问内网资源的限制。如果异地用户想通过外网访问内网资源,则必须在授权的情况下,通过VPN虚拟通道,实现异地用户对内网资源的访问。

2 构建VPN网络实现内网资源异地共享

2.1 VPN原理

VPN虚拟网络[2]是通过源、宿(内、外网)IP地址转换,利用公用网络(通常是因特网Internet)构建虚拟局域网[3]实现的。通过这条连接为外网用户虚拟出1条内部专线,从而将内部网络扩展到整个Internet互联网络,实现异地用户对于内网信息的自由访问。VPN的核心就是利用公共网络建立虚拟私有网络,其关键是将来自外部网络请求的IP地址映射为1个虚拟内网IP地址,将外部请求映射为内部请求,从而做到异地用户像校内用户一样自由地访问内网资源。异地用户访问内网时,会利用浏览器内建的VPN技术,将用户请求封包处理,通过浏览器连接到学校内部的VPN服务器,VPN服务器会对合法请求的IP地址,按照(1)式映射关系[4],将异地请求转变为1个虚拟的内网请求,让异地用户也能像校内用户一样,方便地使用内网资源。VPN虚拟专网构建原理见图2。

其中:A是内网未注册的IP地址集合,C是公网注册的IP地址集合,公式中反应的映射关系见图2。

图2 VPN实现内网的访问Fig.2 VPN access to campus network

2.2 VPN解决方案

定义虚拟内网IP地址时,一般根据整个校园网络的IP地址规划分为不同区间段,将某1个区间段或者某几个区间段的IP地址留作VPN使用。以IPv4为例,通常做法是将IP地址的前3个整数固定,第4个整数由程序随机生成1个0~255范围内的整数填充。虚拟IP地址形式如下

10.168.172.XX

其中,XX的取值为0~255之间的整数,10.168.172表示内网的1个区间段,在图5链表图示中用172表示。

如果以上256个IP地址不够分配,则按照如下形式继续分配

10.168.173.XX

其中,XX取值同上,10.168.173表示另一个区间段,在图5链表图示中用173表示。

依此类推,当异地用户通过VPN通道访问内网时,运行在VPN服务器上的程序,会根据合法外部请求的定义以及合法请求的提取流程找出合法请求,并为合法请求生成1个形如10.168.172.XX的IP地址(此时的XX值已经确定),将外部请求转变为1个虚拟的内部请求,从而实现异地用户对内网资源的访问。

2.2.1 合法外部请求的定义 1个能够通过VPN验证的合法外部请求需要满足以下2个条件:

Ⅰ该请求是对校内某一特定VPN服务器发出的请求,这一VPN服务器的IP地址通过网络地址转化后,与1个公网注册的IP地址唯一对应。

Ⅱ对VPN服务器发出的请求必须是合法用户发出的。即通过VPN建立虚拟专线时,客户端输入的用户名和密码必须通过VPN验证。

2.2.2 合法请求的提取过程 对于合法请求的提取,采用端口监听方式实现:首先、建立用户信息资料库,为用户访问内网资源创建认证信息——包括用户名和密码等;其次、设置异地主机VPN网络[5],输入需要访问VPN服务器的IP地址以及验证需要的用户名、密码等信息;第三、按照流程图(3)编写监听程序,并在VPN服务器上部署端口监听程序。

采用VPN技术改造校园网络,对于异地用户共享内网资源提供了方便,使远程办公与内网的异地维护工作成为可能。同时,这也给校园网络正常运行带来了两方面的隐患:一是程序随机生成的虚拟IP地址,只要符合10.168.172.XX这种形式,整数XX的取值范围在0~255之间,就能符合DMZ与VPN的要求,就可以顺利地通过VPN实现内网资源的访问,从而使内网资源的安全性降低,容易遭受黑客的攻击;二是当使用VPN的异地用户数量增加时,容易造成虚拟IP地址的碰撞(冲突),这种碰撞不一定是由于预设的虚拟IP地址被分配完毕,而主要是由于查询VPN随机分配的虚拟IP地址是否已经被使用造成的,这种反复查询空闲虚拟IP地址的操作增加了访问的时间复杂度,容易引发VPN服务器的局部繁忙与网络拥塞。

图3 VPN服务器端口监听程序流程图Fig.3 VPN Server port monitoring program flow chart

3 VPN技术的改进

3.1 虚拟IP地址生成函数

多数程序一般采用随机函数rand()生成虚拟IP地址。rand()函数生成“随机数”的算法有很多,但无论如何,都不可能产生真正的随机数,因为电脑程序是个确定状态转换机,一种输入必定产生一种确定的输出。试验发现,当循环次数增多后rand()函数产生的结果就会有很多相同,并且还有一定规律可循。因此,寻找1个合理的IP地址产生函数对于维护内网的安全性、克服IP地址发生冲突、降低算法的复杂度至关重要。本文采用(2)式作为虚拟IP地址生成函数

其中,x是自变量;e是欧拉数,e≈2.718 281 828 4;λ是调整系数,取值为0~1之间的小数。

从(2)式可以看出,当x=0时,f(x)=255;当x→∞时,f(x)→0,也即当x在整个实数集上取值,则f(x)的值域空间为[0,255]。因此,在实数空间中,对f(x)取整运算所得结果完全符合IPv4协议需要的IP地址。采用(2)式作为虚拟IP地址生成函数的最大好处是,自变量x的取值可以变得更加自由,程序员可以采用多种方式来控制x的取值,从而达到所获IP地址的随机性。

3.2 IP地址连接池技术

连接池是众多连接对象的“缓冲存储池”,是连接对象的集合体[6]。在连接池内部提供1种管理机制,能够控制连接池内部连接对象的数目,对应用程序提供获取、释放连接的接口以及控制连接对象的生存周期。本文提出的IP地址连接池是1个专门用于为VPN连接分配虚拟IP地址的“产生器”,它提前将n(n>0)个空闲虚拟IP地址放在连接池中,当外网请求需要分配虚拟IP地址时,系统会从连接池中获取1个IP地址,通过这个IP地址为异地用户建立起1条VPN虚拟连接。工作原理见图4。

图4 虚拟IP地址连接池工作原理图Fig.4 the connection pool works of virtual IP address diagram

3.2.1 连接池的构成 虚拟IP地址连接池内部包含2个彼此独立且相互依存的链表:一个是空闲链表,用于存放由(2)式产生的空闲IP地址,供系统建立VPN连接使用;另一个是使用链表,用于存放正在被VPN连接占用的虚拟IP地址,标记虚拟IP地址的使用情况。连接池与外部的信息交换是通过地址获取接口getIP()和地址释放接口freeIP()实现的,通过调用getIP()接口,获取连接池中1个空闲虚拟IP地址;通过调用freeIP()接口,回收断开连接的虚拟IP,交予连接池管理进程释放。虚拟IP地址连接池内部结构如图5。

图5 虚拟IP地址连接池内部结构图Fig.5 the connection pool within the structure of virtual IP address chart

3.2.2 地址连接池的操作

创建结点creatNode() 调用(2)式生成1个空闲IP地址,并将这个IP地址作为结点插入到空闲链表中。插入结点InsertNode() 从空闲链表中取出第一个结点,插入到按照IP地址排好序的使用链表中,从而得到1个新的、结点数增1的有序使用链表。

释放结点freeNode() 将超期或者断开连接的IP地址从使用链表中删除,从而得到一个新的、结点数减1的有序使用链表。

查找结点seekNode() 根据(2)式生成的IP地址,在使用链表中查找是否存在其值等于该IP地址的结点。若存在则查找成功,返回该结点;若不存在,则查找不成功,返回“空”指针。

取结点值GetNodeIP() 返回连接池中空闲链表第一个结点的IP值,交给地址获取接口getIP(),建立连接后,调用插入结点InsertNode()操作,把该结点插入到使用链表中,并从空闲链表删除该结点。

创建连接池CreatPool() 在连接池中生成2个链表─空闲链表和使用链表。调用创建结点creatNode()操作,在空闲连表中插入n(一次生成空闲结点的最大值)个IP结点,生成长度为n的空闲链表;生成使用链表,设置使用链表初值为空。创建后连接池的初始状态如下图6。

图6 虚拟IP地址连接池初始状态图Fig.6 The connection pool initial state of virtual IP address diagram

管理连接池managePool() 主要完成两方面的工作,一是维护使用链表,通过地址释放接口freeIP()获得断开连接的IP和连接超时的IP,调用释放结点free-Node()操作,把结点从使用链表中释放;二是创建空闲链表,当空闲链表中的结点被分配完毕,即n=0时,调用查找结点seekNode()操作和创建结点creatNode()操作,生成n个空闲IP结点,创建1个新的空闲链表。关闭连接池closePool() VPN连接断开后,由系统把断开连接的虚拟IP通过地址释放接口freeIP()返还给连接池,由连接池调用释放结点freeNode()操作释放。

3.2.3 地址连接池工作流程 由于连接池内的IP地址是虚拟内网段上的空闲IP地址,只要从连接池内获得了虚拟IP地址,也就获得了访问内部资源的权限,通过这个IP就可以自由访问内部信息。因此,虚拟IP地址连接池的创建并不需要像“数据库连接池”那样,预先建立好多条访问数据库的连接。IP地址连接池的主要任务是对虚拟IP地址进行有效地使用和管理,主要包括2个方面:空闲虚拟IP地址在连接池中的储备和正被使用IP地址的管理。因此,合理设计连接池的工作流程,做好空闲IP地址的储备与使用IP地址的管理是建立VPN通道的关键。虚拟IP地址连接池的工作流程见图7。

图7 虚拟IP地址连接池工作流程图Fig.7 The connection pool work flow of virtual IP address chart

采用IP地址连接池技术后,用于建立VPN连接的虚拟IP地址必须来自连接池,对于连接池中不存在的IP地址,即使合法、空闲、满足条件也不能用于建立VPN连接。这就为建立VPN连接需要的虚拟IP地址增加了更为严格的限制条件,减少了恶意匹配IP的概率,从而提高了内网的安全性;同时,连接池中的虚拟IP地址是由系统根据资源使用情况合理产生的空闲IP地址,它有自身的冲突管理机制,当有外来请求时,只需从池中获取IP地址即可建立起访问内部资源的连接,而不必再去判断IP地址的使用情况,避免了IP地址碰撞的产生,提高了VPN连接建立的效率。

4 结语

采用IP地址连接池技术后,异地用户通过VPN访问内网资源时,必需使用IP地址连接池来获取虚拟IP地址,实现了虚拟IP地址的随机产生与分配的动态管束。对于随意获得虚拟IP地址的行为进行有效管制,极大地提高了内网资源的安全级别;同时解决了过多异地用户同时访问内部资源时产生的虚拟IP地址碰撞问题,提高了内网资源的访问效率。但是,在应用系统主导的独立管理信息模式[7]下,内网是1个地理空间概念,是将用户使用内网资源的权限与用户主机的IP地址进行绑定,通过对校园网内不同IP主机的权限设置来达到是否允许用户使用与管理内网资源的目的。其实质是通过约束机器的方法来约束人,这无疑给用户使用与网络管理增添了深层次难度。要想彻底解决这一问题,就必须做到内网资源与IP地址脱钩,使资源访问权限,仅与访问网络的具体用户绑定,从而达到用户所获信息与其对应的权限相匹配。通过对用户访问权限设定,决定用户获取信息的权限,从而达到最终消除内网的地理空间概念。

[1] 陈晓苏,吴悠.路由器中网络地址转换的一种实现方法[J].计算机工程与应用,2004,40(1):157-159.

[2] 肖圳莎,林闯,杨冉.P2P-VPN虚拟网络架构模型分析[J].计算机科学与探索,2009,3(3):257-266.

[3] 束坤,吴国新.基于Internet的VPN技术[J].计算机应用,1999,19(11):28-31.

[4] 左孝陵,李为监,刘永才.离算数学[M].上海:上海科学技术文献出版社,2000:81-170.

[5] 李万红,胡辰浩.Windows XP系统管理指南[M].清华大学出版社,2002:421-430.

[6] 罗荣,唐学兵.基于JDBC的数据库连接池的设计与实现[J].计算机工程,2004,30(9):92-93.

[7] 劳东.管理信息系统[M].北京:中国人民大学出版社,2009:264-320.

VPN Security and IP Address Conflict Research

WANG Xiao1,SUN Pi-Bo2
(1.Qingdao Ocean Shipping Mariners College,Qingdao 266071,China;2.School of Information Engineering Technology,Qingdao Hismile College,Qingdao 266100,China)

In order to solve the security of the internal network and the collision of the virtual IP address,the methods of the virtual IP address connection pool and the IP address generation algorithm are proposed in the process of upgrading the campus network.When accessing the internal network resources,remote users need access to the virtual IP address from the connection pool,which implements the virtual IP address assignment dynamic bundle,effectively controls the random allocation of the virtual IP address,avoids the problem of collisions of the virtual IP address and improves the security of internal resources and efficiency.It has been proved in practice that the technology of virtual IP address connection pool and IP address generation algorithm are very effective to enhance the security of VPN network,curb hacker intrusion by matching the IP address of the internal network and resolve the IP address conflicts.

demilitarized zone;virtual private network;the connection pool of IP address;dynamic bundle

TP391

A

1672-5174(2011)03-088-05

中国远洋集团公司项目(2009-1-H-002)资助

2009-11-20;

2010-04-25

王 晓(1971-),男,工学硕士。E-mail:wangxiao@126.com

责任编辑 陈呈超

猜你喜欢

链表内网空闲
如何用链表实现一元多项式相加
“鸟”字谜
跟麦咭学编程
西湾村采风
彪悍的“宠”生,不需要解释
基于MTF规则的非阻塞自组织链表
企业内网中的数据隔离与交换技术探索
内外网隔离条件下如何实现邮件转发
WLAN和LTE交通规则
C语言中指针链表的学习探讨