張建利 景娟娟
(西北機器有限公司,陜西 寶雞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.