基于LDAP统一认证的校园网盘系统设计与实现
2013-11-23杨洪雪詹晓东
杨洪雪,詹晓东
(北京电子科技职业学院 电信工程学院,北京 100029)
互联网的飞速发展对网络服务器的性能提出了新的挑战。校园网服务器因为访问次数爆炸式的增长而不堪重负,不能及时处理用户的请求,导致用户长时间地等待,大大降低了校园网的服务质量;校园网络机房中频繁地使用U盘,致使病毒泛滥,给网络和机房管理带来极大困难。基于此,本文提出和设计了LDAP(lightweight directory access protocol,轻量级目录访问协议)统一身份认证的校园网盘系统(CNHS),将多台服务器集中起来进行的高速在线存储服务,其实质是利用多台计算机进行并行计算从而获得较高的计算处理效率,并把多台服务器硬盘或硬盘阵列中的容量分配给注册用户使用,为用户提供文件的存储、访问、备份、共享等管理功能。无论在任何地方,只要能连接到因特网,用户就可以像使用本地存储设备一样管理网盘系统。实际应用证明该系统具有良好的访问速度,具有安全性和扩展性。
1 LDAP协议
LDAP是一种标准的目录服务技术[1],它基于X.500标准,可以根据应用的需要进行定制和扩展。LDAP对Internet访问支持很好,对浏览和查找目录及读取内容进行了专门的优化,使得读取的速度比一般的关系型数据库要快。LDAP协议规定了信息的形式和特性、信息存放的索引和组织方式、分步式的操作模型等内容。LDAP存储模型包括4个部分:
(1)LDAP信息模型,指使用LDAP模式脚本定义对象类和属性;
(2)LDAP命名模型,说明如何在目录树中组织条目的规则;
(3)LDAP功能模型,指提供访问目录信息的方法;
(4)LDAP安全模型,考虑的是数据安全性问题。
LDAP目录中可以存放各种不同类型的数据,如简单文本、图片信息、URL、二进制数据及证书等。
LDAP协议已经成为一个被广泛支持的用于统一身份认证跨平台和标准的协议,其易于集成不同应用系统的特点,成为支持网络系统的重要底层基础技术之一。
2 CNHS系统设计
2.1 系统架构设计
CNHS系统的总体设计架构遵循的设计原则:
(1)标准化。遵循文件分级结构标准FHS(file hierarchy standard),遵循 Linux标准基础 LSB4(linux standard base);
(2)自动化。客户端通过脚本自动加入主域服务器;
(3)安全性。考虑主控域控制器的安全性,LDAP目录服务器的访问控制信息;
(4)集中化。账号和安全控制管理做到集中化,主域控制器提供共享服务器的统一接口;
(5)扩展性。当用户数目增加时,可以动态增加共享服务器,对现有的结构没有任何影响。
根据系统的设计原则设计出CNHS系统的总体架构(见图1),系统由主控域管理服务器、LDAP目录服务器、校园网盘空间服务器群组成。
图1 CNHS系统的总体架构图
主域控制器的作用是组成活动目录,承担域中的各种管理角色及管理任务,向域中的所有用户提供资源共享服务,并以主域控制器为安全边界维持活动目录的安全。学生账号、计算机账号信息通过LDAP目录服务器查询获得。目录服务器包含了由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。
学生从任意客户端成功登录到以主域控制器为入口的Samba服务器群后,系统根据账号信息共享自动挂装的驱动器,该驱动器自动映射为本地磁盘。每个学生都有一个属于自己的驱动器,可以存放和读取文件,学生间的共享信息独立、互不干扰。
2.2 系统身份认证流程分析
CNHS系统的主要工作流程:
(1)学生从任意 WindowXP客户端使用自己的账号信息登录,通过LDAP目录服务器进行验证,如果登录账号和密码匹配,则允许登录,否则,拒绝登录;
(2)学生登录成功后,从LDAP目录服务器取得相应的域信息;
(3)主控域服务器验证学生登录的Window客户端是否属于该域,如果Window客户端属于该域,系统会结合LDAP目录服务器上取得的共享目录信息,从Samba服务器群中定位某台Samba服务器,学生可访问这台Samba服务器的共享目录同时加载自己的配置文件信息,并使用自己的网盘,否则,拒绝操作。
2.3 建立系统的LDAP目录树
LDAP将数据组织为目录信息树DIT(directory information tree)[2],目 录 树 DIT 结 构 需 要 符 合 RFC 2308bis推荐标准。LDAP目录中的具体信息存储在条目(entry)的数据结构中[3]。条目相当于关系数据库中表的记录,条目是具有区别名DN(distinguished name)的属性(attribute),DN是用来引用条目的,DN相当于关系数据库表中的关键字(primary key)[4]。属性由类型(type)和一个或多个值(values)组成,相当于关系数据库中的字段(field)由字段名和数据类型组成,只是为了方便检索的需要,LDAP中的type可以有多个value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常直观[5]。
本系统的LDAP目录树如图2所示。以Dc=edu,dc=cn为树根,下面定义了一个子目录树Dc=dxgc(即一个组织),在子目录树下定义了4个子树(即组织单元):ou=Users存储学生的账号,ou=Computer存储机房和教室的Windows客户端机器,ou=Groups存储Unix和 Windows的系统组,ou=DSA存储与LDAP安全相关的特殊账户[6]。
2.4 建立系统的LDAP信息模型
LDAP的信息模型用于存储目录服务器的实体信息。设计网络管理信息的LDAP信息模型时,需要处理好如下问题:
(1)不同种类的网络管理信息都可以有效地存储;
(2)定义合适的LDAP类和属性;
(3)提供合理的命名规则和有效的数据检索能力。
CNHS系统的LDAP信息模型包括:Microsoft Windows用户账号类(sambaSAMAccount)、Microsoft Windows计算机账号类(sambaCOMAccount)、Unix用户账号类(posixAccount)、shadow 密码类(shadowAc-count)、用户组类(posixGroup)、LDAP安全相关的特殊账户类(simpleSecurityObject)等[7]。
图2 CNHS系统的LDAP目录树结构图
3 CNHS系统的实现
3.1 配置LDAP服务器
LDAP目录服务器关键配置如下:
(1)创建支持samba协议的ldap schema:
cp/usr/share/doc/samba-3.0.33/LDAP/samba.schema/etc/openldap/schema/
(2)根据根信息树修改suffix为:
suffix″dc=dxgc,dc=edu,dc=cn″
(3)设置openladp的管理员root access的账号和密码:
rootdn″cn=Manager,dc=dxgc,dc=edu,dc=cn″
rootpw**************
(4)配置samba主控域服务器和samba服务器群。
3.2 配置Samba服务器
PDC-SRV主控域服务器配置类型为:ROLE_DOMAIN_PDC,Samba服务器群配置类型为:ROLE_STANDALONE[8]。
3.2.1 Samba服务器配置设计原则
域名:DXGC;主控域服务器Samba的netbios名字pdc-srv;samba服务器群的netbios名字sambaX(X代表编号);服务器允许用户配置文件漫游(roving/roaming);学生 home 目录位于:/home/XXX(XXX代表学生账号);所有samba共享位于/home/samba/* 下;配置主控域服务器为域浏览器[9]。
3.2.2 Sambda服务器全局变量配置
主要配置域的工作组名称、netbios名称、服务器说明、用户名映射文件、ldap服务器信息(用户账号,组账号、机器账号的后缀信息及管理员账号信息)、密码同步策略。添加Windows客户端脚本的路径和选项,添加user脚本的路径和选项,添加group脚本的路径和选项,删除group脚本的路径和选项,从组中删除用户脚本的路径和选项、将一个用户添加到组的脚本的路径和选项,设置主组脚本的路径和选项、字符集编码格式、日志级别,建立socket时的网络参数、用户登录后的共享空间的驱动器映射、是否为主域控制器等[10]。
3.2.3 Samba服务器共享信息配置
共享学生目录[home]的主要配置项列表:读写权限、掩码信息;共享网络登录[netlogon]的主要配置项列表:netlogon路径名、读写权限、隐藏文件列表;共享学生配置文件[profile]的主要配置项列表:配置文件路径名、读写权限、掩码信息、浏览许可[11]。
4 结束语
利用LDAP目录服务技术设计的校园网盘系统,既实现了多认证源的用户统一身份认证管理,也实现了多台服务器集群的高速在线存储服务[12]。实践证明:不仅提高了网络的访问速度、安全性、可靠性,也给用户提供了极大的方便,达到了统一身份认证的设计目标,取代了原有网络机房管理方式,取得了很好的社会效益和经济效益,为网络管理提供一种参考模型。
(References)
[1]Bergeson B,Boogert K,Vijay K.Nanjunda swamy.LDAP Schema for UDD Iv3[EB/OL].[2012-04-25].http://ietfreport.isoc.org/all-ids/draftbergeson-uddi-ldap-schema-06.txt.
[2]Butcher M.Approximation approach to performance evaluation of proxy cache server systems[J].AnnalesMathematicae et Informaticae,2009,36(8):15-28.
[3]任军.基于LDAP的目录服务综述[J].计算机应用研究,2005(5):8-10.
[4]蒿敬波.SASL技术的认证机制与应用研究[J].计算机工程,2003,29(2):177-178.
[5]于剑.LDAP目录服务在 Web开发中的应用[J].计算机应用,2003,23(10):82-84.
[6]胡立春,武友新,张烨,等.LDAP环境下的统一用户管理系统的研究与实现[J].计算机工程与设计,2007,28(2):823-825.
[7]李澜,王峰,钱华林.LDAP目录及研究现状[J].微电子学与计算机,2005,22(6):48-52.
[8]郑岚,陈奇.基于LDAP的统一访问控制系统的设计与实现[J].计算机工程与设计,2005,26(7):1865-1885.
[9]李欣,刘丹.基于LDAP实现多认证源的统一身份认证实践[J].现代图书情报技术,2011(4):90.
[10]赵春,赵成栋,康建初.在基于域的网络管理中应用的研究[J].计算机工程与应用,2004(18):141-143.
[11]左晓珲,沈富可,任肖丽,等.基于LDAP的校园网统一身份认证技术简介[J].计算机与数字工程,2006,34(9):86-99.
[12]杨鹏.Linux服务器架设[M].北京:清华大学出版社,2008.