张建利 景娟娟
(西北机器有限公司,陕西 宝鸡722405)
随着Linux 操作系统的发展与成熟, 国内外使用Linux 操作系统的用户不断的增加。 由于Linux 操作系统具有安全、稳定、耗用资源相对Windows 系统较少[1],并提供了完整的Internet/Intranet 解决方案,因而用Linux 操作系统作为网络管理服务器来组建网络的用户不断的增加。
在网络世界中, 数据在不同主机的传输中大多是使用FTP 这个服务器软件来传送的, 但是使用FTP 却无法直接修改主机上的数据文件[2]。 而是必须先将文件从服务器端下载到客户端才可以修改。 而Samba 的最初产生与发展的首要目的就是要用来沟通Windows 与Linux/Unix 这两个系统平台。
访问控制是网络安全防范和保护的主要策略,它是保证网络安全最重要的核心策略之一。 角色访问策略 (Role-Based Access Control,RBAC)是近年来访问控制的研究热点,它根据用户在系统里表现的活动性质而定的,用户访问系统时,系统必须先检查用户的角色。
Samba 服务器方便了Windows 与Unix/Linux 系统之间资源共享的同时,也承担着可能遭受攻击的风险,因为从支持Samba 的操作系统,TCP/IP 到Samba 本身都存在着安全漏洞,如何适应这种局面以及解决问题是目前面临的严峻挑战。Samba 服务器所面临的安全隐患包括以下内容:
(1)非法访问数据
(2)计算机病毒
本文通过对RBAC 模型的深入研究, 首先采用C 语言编写并且实现RBAC 模型,然后针对Samba 源码进行深入研究,找到Samba 源码中实现访问控制功能的代码, 将RBAC 模型嵌入到Samba 服务器中,使得用户在对Samba 服务器上的文件进行操作的时候,进行基于角色的访问控制验证,从而进行Samba 服务器安全性的扩展设计。
Samba 是一套使用SMB(Sever Message Block)协议的一种应用程序, 通过支持这个协议,Samba 允许Linux/Unix 服务器与Windows 系统之间进行通信,使跨平台的互访成为可能。 Samba 服务器包括两个后台应用程序smbd 和nmbd。 smbd 是Samba 核心[4], 主要负责建立Linux Samba 服务器和Samba 客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问。
Samba 服务器的安全体系包括操作系统的安全管理、Samba 的安全配置、共享资源的控制管理、日志管理、系统备份与恢复等,如图1所示。
Samba 中可以设置四种安全等级, 从低到高分别为Share、User、Server、Domain 等。 Share 模式下用户访问Samba 服务器不需要提供用户名和口令安全性能较低。 User 是Samba 服务器的默认安全等级,每个目录只能被一定的用户访问并由Samba 服务器检查帐号和密码的正确性;Server 为服务器安全级别, 依靠Windows NT/2000 或Samba服务器来验证用户的帐号和密码;Domain 为域安全级别,使用主域控制器(PDC)来完成认证。
图1 Samba 服务器的安全管理体系
访问控制涉及到三个基本概念,即主体、客体和访问授权。
访问控制通常有三种策略: 自主访问控制 (Discretionary Access Control);强制访问控制(Mandatory Access Control);基于角色的访问控制(Ro1e-Based Access Control)。 各种访问控制策略之间并不相互排斥,现存计算机系统中通常都是多种访问控制策略并存,系统管理员能够对安全策略进行配置使其达到安全政策的要求。
基于角色的访问控制(RBAC)是将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问,基本思想是根据安全策略划分出不同的角色,资源的访问许可被封装到角色里,根据不同的用户分派不同的角色,用户通过角色间接地访问系统资源。
图2 系统软件配置图
在Windows XP 操作系统和CentOS 操作系统的平台上, 利用Microsoft Visual Studio 编程工具,采用C++语言编程。按照软件工程技术规范,设计、实现了基于RBAC 的Samba 服务器安全设计。
服务器端实现RBAC 模型。 该模型包括以下几个模块:文件管理模块、用户管理模块、角色管理模块、用户角色管理模块、角色权限管理模块、互斥角色管理模块、显示模块、进行用户与权限的测试。 本系统采用C/S 模式。 系统软件配置如图2 所示。
图3 系统界面图
为了提高Samba 服务器的安全性, 除了本论文涉及到的采用RBAC 实现外,还有其他的方法,例如不要使用明语密码、尽量不要使用共享级安全、尽量不要浏览器服务访问、通过网络接口控制Samba访问、 通过主机名称和IP 地址列表控制Samba 访问、 使用pam_smb对Windows NT/2000 服务器的用户进行验证、为Samba 配置防范病毒软件、使用SSL 加固Samba 等。
提升Samba 服务器的安全性有多种途径, 因为Samba 服务器是开源的,因此在提升Samba 安全性方面,已经出现了很多方法,比如不使用明语密码,通过网络接口控制Samba 访问,通过主机名称和IP 地址列表控制Samba 访问等多种途径。 而使用RBAC 对Samba 服务器进行安全性能的提升就目前来说,还没有案例。
访问控制是网络安全防范和保护的主要策略,是保证网络安全最重要的核心策略之一。 将RBAC 的思想运用在Samba 服务器中,便能弥补Samba 服务器所面临的一些安全漏洞, 提高Samba 服务器的安全。
[1]王杨,等.Samba 服务器的管理体系与安全策略研究[J].控制工程,2005.
[2]谭良,等.Samba 服务器共享资源安全层次模型研究[J].计算机应用,2004,24(2):115-117.