APP下载

实现多层次VPN系统的统一认证

2010-11-09周子豪瞿庆海

中国教育网络 2010年2期
关键词:子域内网嵌套

文/周子豪 瞿庆海

实现多层次VPN系统的统一认证

文/周子豪 瞿庆海

在现代校园网络中VPN由于其高安全性和灵活易用被广泛使用。但多系统的多层次嵌套也成为一个不可避免的问题。文章采用了LDAP树来实现多层次嵌套VPN的单一认证和有效管理提出并实现了一个切合实际、方便快捷的一揽子整体解决方案,确保在认证过程中对用户相对透明。

VPN (Virtual Private Network)无论在组网,信息系统组件、网络服务跨接、安全接入都有了广泛的应用。可以让物理位置很遥远的用户,在逻辑上平滑的进入到一个本地域中,完成远方的用户取得本地IP的网络设置的功能,也就是虚拟管道架设的过程。在这管道建立的过程中,众多学者和研究人员都关注于主机端和用户端的设计。本文将对主机端如何适应多层次嵌套,实现一站式登录做出设计和实施。

背景

VPN最先是从单一协议发展。从相对简单的PPTP (Point to Point Transfer Protocol)建立GRE(General Routing Encapsulation )管道。到现在的Secure VPN和Trusted VPN两大类。其中Secure VPN主要有IPsec、L2TP、SSl而Trusted VPN有layer 3 VPNs (MPLS with constrained distribution of routing information through BGP )和 layer 2 VPNs(Transport of layer 2 frames over MPLS)两大类。这些纷繁的协议保证了内网和外网的安全连接。本文的焦点在于对VPN 域(domain)的策略管理。由于每个内网会因为职能的划分有多个不同的子域如:人事、会计、学工、OA等不同职能域。在各个域中往往有会有不同的权限层次的划分。于是VPN域中嵌套域是现在相当普遍和常见。某些子域管理员为了实现一个新的应用部署,经常在子域中擅自划分或建立新域的VPN域,造成了VPN域嵌套的层次加深,如图1所示。

用户很难在认证的时候做到一站式身份识别。加之各个域的边界VGW(VPN gateway)采用的协议也不尽相同。一般用户可能需要面对数个不同的VPNclient软件,还需要记住数个不同的用户名和密码,不胜其烦,很容易产生逆反情绪。

表1 Ldap树形数据库特点

一站式认证策略

为了解决用户在多重嵌套VPN认证时候的不方便。文章着重解决三大问题:

1.各个嵌套的VPN域间认证的集中化。虽然在实际使用中可能采取不同的VPN协议,但必须有一个集中的授权发布中心来帮助认证。

2.对于各个嵌套域,可以做到分步骤认证的同时,可以让用户就记住一个密码:方便、快捷。

3.整个瀑布式的认证过程中,对用户本身是透明的。用户不需要知道在每个域中使用的认证协议、方法和策略。

为此本文采用LDAP(Lightweight Directory Access Protocol)认证服务器(Sun Java System Identity Server 6.1)来实现多层次VPN域的嵌套认证,解决以上的三个问题。

而从外形上看L D A P服务器就是一个由各个entry组成的树如图2所示。

对比图1和图2,可以发现LDAP树很适合作为嵌套VPN域认证的工作。每个Dc可以被分配各个虚拟域的认证。而无论是嵌套还是并行的域关系也可以很好在LDAP树中间得到体现。为了可以把对于登录用户在各个域中间拥有的策略也一并考虑在设计方案中。本文对类似于图1的逻辑结构可以设计成为类似图3的LDAP树结构。

从中可以看到从左到右的domain1至domain3有满足图1的逻辑嵌套关系。其分别对应于层次化的一个嵌套的O(LDAP Tree中的org)。为了使得用户在登录时系统会自动的给出不同用户的层次认证。设计标志位:DE、DELE、FOR分别表示deny(拒绝)、delegate(授权)、forward(转向认证)、REQ(请求上级的认证)。如图3所示,在用户登录domain1后要求登录domain4,由于domain4没有包含在总体认证系统中,被拒绝。而当用户再要求在domain2中活动,查看标志位如果是DELE表示被授权。用户认证信息就会转交给domain2去寻求授权。当需要用户的认证具体信息如用户名和密码时,就需要有froward标识跳出O的entry而到用户的信息库中完成最后的认证。而向更深层次域请求的标识,都会存放在REQ的大标识位中。为了完成策略分配,需要在每个登录的domain上配置专门的gateway,用来识别LDAP Tree的O entry,以实现各个域中的表识位传递,并承担Policy Server。由于工作量一般不会很大,主要的工作是基于Ldap_search的查找,直接用替代下的PC工作站就能很好地完成。其实际物理拓扑图如图4所示。

图2 根据职能的ldap命名

图3 LDAP树登录策略分配示意

图4 VPN实际多层次物理建立拓扑示意

实现和测试

本文采用Sun Java System Identity Server 6.1作为LDAP Tree应用发布,而不是使用通常的Openldap。考虑到了其在多层次多entry认证时的健壮和稳定性。VPN采用在开源软件Poptop1.3.0的再开发,保证了对pptp、Gre、SSL等协议的模块化支持,节约了开发时间。开发语言采用Perl6.0,尤其是其中的Cpanmodel(Comprehensive Perl Archive Network)开发包。如对LDAP的绑定直接采用Net::ldap调用。

而对于所有的Flag可以用Socket::class在Policy Server直接读取,演示代码如下:

通过实验发现,每多过一层认证一般需要有60ms的延迟。为此多加载Cache,保证在大量的访问时候不需要去询问上层的LDAP树。经过实验测试,在100个请求的情况下,增加Cache平均可以减少75ms的延迟。

本文实现了多层析的VPN的自动认证和策略发放模型。目前还有很多工作需要完善,如有对LDAP树的修剪和组元同步。同时为了更好的适合各种不同的应用对LDAP树的属性设置和schema设置还需要重新规划。如何把多层次认证时间以降低是将来的一个研究方向。

(作者单位为上海交通大学网络信息中心)

猜你喜欢

子域内网嵌套
基于镜像选择序优化的MART算法
兼具高自由度低互耦的间距约束稀疏阵列设计
基于子域解析元素法的煤矿疏降水量预测研究
排查域控制器复制故障
新型缩减矩阵构造加快特征基函数法迭代求解*
论电影嵌套式结构的内涵与类型
嵌套交易如何实现逆市盈利
企业内网中的数据隔离与交换技术探索
内外网隔离条件下如何实现邮件转发
连续批加工过程中嵌套自相关数据的控制图设计