張建利 景娟娟
(西北機(jī)器有限公司,陜西 寶雞722405)
隨著Linux 操作系統(tǒng)的發(fā)展與成熟, 國內(nèi)外使用Linux 操作系統(tǒng)的用戶不斷的增加。 由于Linux 操作系統(tǒng)具有安全、穩(wěn)定、耗用資源相對Windows 系統(tǒng)較少[1],并提供了完整的Internet/Intranet 解決方案,因而用Linux 操作系統(tǒng)作為網(wǎng)絡(luò)管理服務(wù)器來組建網(wǎng)絡(luò)的用戶不斷的增加。
在網(wǎng)絡(luò)世界中, 數(shù)據(jù)在不同主機(jī)的傳輸中大多是使用FTP 這個服務(wù)器軟件來傳送的, 但是使用FTP 卻無法直接修改主機(jī)上的數(shù)據(jù)文件[2]。 而是必須先將文件從服務(wù)器端下載到客戶端才可以修改。 而Samba 的最初產(chǎn)生與發(fā)展的首要目的就是要用來溝通Windows 與Linux/Unix 這兩個系統(tǒng)平臺。
訪問控制是網(wǎng)絡(luò)安全防范和保護(hù)的主要策略,它是保證網(wǎng)絡(luò)安全最重要的核心策略之一。 角色訪問策略 (Role-Based Access Control,RBAC)是近年來訪問控制的研究熱點,它根據(jù)用戶在系統(tǒng)里表現(xiàn)的活動性質(zhì)而定的,用戶訪問系統(tǒng)時,系統(tǒng)必須先檢查用戶的角色。
Samba 服務(wù)器方便了Windows 與Unix/Linux 系統(tǒng)之間資源共享的同時,也承擔(dān)著可能遭受攻擊的風(fēng)險,因為從支持Samba 的操作系統(tǒng),TCP/IP 到Samba 本身都存在著安全漏洞,如何適應(yīng)這種局面以及解決問題是目前面臨的嚴(yán)峻挑戰(zhàn)。Samba 服務(wù)器所面臨的安全隱患包括以下內(nèi)容:
(1)非法訪問數(shù)據(jù)
(2)計算機(jī)病毒
本文通過對RBAC 模型的深入研究, 首先采用C 語言編寫并且實現(xiàn)RBAC 模型,然后針對Samba 源碼進(jìn)行深入研究,找到Samba 源碼中實現(xiàn)訪問控制功能的代碼, 將RBAC 模型嵌入到Samba 服務(wù)器中,使得用戶在對Samba 服務(wù)器上的文件進(jìn)行操作的時候,進(jìn)行基于角色的訪問控制驗證,從而進(jìn)行Samba 服務(wù)器安全性的擴(kuò)展設(shè)計。
Samba 是一套使用SMB(Sever Message Block)協(xié)議的一種應(yīng)用程序, 通過支持這個協(xié)議,Samba 允許Linux/Unix 服務(wù)器與Windows 系統(tǒng)之間進(jìn)行通信,使跨平臺的互訪成為可能。 Samba 服務(wù)器包括兩個后臺應(yīng)用程序smbd 和nmbd。 smbd 是Samba 核心[4], 主要負(fù)責(zé)建立Linux Samba 服務(wù)器和Samba 客戶機(jī)之間的對話, 驗證用戶身份并提供對文件和打印系統(tǒng)的訪問。
Samba 服務(wù)器的安全體系包括操作系統(tǒng)的安全管理、Samba 的安全配置、共享資源的控制管理、日志管理、系統(tǒng)備份與恢復(fù)等,如圖1所示。
Samba 中可以設(shè)置四種安全等級, 從低到高分別為Share、User、Server、Domain 等。 Share 模式下用戶訪問Samba 服務(wù)器不需要提供用戶名和口令安全性能較低。 User 是Samba 服務(wù)器的默認(rèn)安全等級,每個目錄只能被一定的用戶訪問并由Samba 服務(wù)器檢查帳號和密碼的正確性;Server 為服務(wù)器安全級別, 依靠Windows NT/2000 或Samba服務(wù)器來驗證用戶的帳號和密碼;Domain 為域安全級別,使用主域控制器(PDC)來完成認(rèn)證。
圖1 Samba 服務(wù)器的安全管理體系
訪問控制涉及到三個基本概念,即主體、客體和訪問授權(quán)。
訪問控制通常有三種策略: 自主訪問控制 (Discretionary Access Control);強(qiáng)制訪問控制(Mandatory Access Control);基于角色的訪問控制(Ro1e-Based Access Control)。 各種訪問控制策略之間并不相互排斥,現(xiàn)存計算機(jī)系統(tǒng)中通常都是多種訪問控制策略并存,系統(tǒng)管理員能夠?qū)Π踩呗赃M(jìn)行配置使其達(dá)到安全政策的要求。
基于角色的訪問控制(RBAC)是將用戶和角色聯(lián)系起來,通過對角色的授權(quán)來控制用戶對系統(tǒng)資源的訪問,基本思想是根據(jù)安全策略劃分出不同的角色,資源的訪問許可被封裝到角色里,根據(jù)不同的用戶分派不同的角色,用戶通過角色間接地訪問系統(tǒng)資源。
圖2 系統(tǒng)軟件配置圖
在Windows XP 操作系統(tǒng)和CentOS 操作系統(tǒng)的平臺上, 利用Microsoft Visual Studio 編程工具,采用C++語言編程。按照軟件工程技術(shù)規(guī)范,設(shè)計、實現(xiàn)了基于RBAC 的Samba 服務(wù)器安全設(shè)計。
服務(wù)器端實現(xiàn)RBAC 模型。 該模型包括以下幾個模塊:文件管理模塊、用戶管理模塊、角色管理模塊、用戶角色管理模塊、角色權(quán)限管理模塊、互斥角色管理模塊、顯示模塊、進(jìn)行用戶與權(quán)限的測試。 本系統(tǒng)采用C/S 模式。 系統(tǒng)軟件配置如圖2 所示。
圖3 系統(tǒng)界面圖
為了提高Samba 服務(wù)器的安全性, 除了本論文涉及到的采用RBAC 實現(xiàn)外,還有其他的方法,例如不要使用明語密碼、盡量不要使用共享級安全、盡量不要瀏覽器服務(wù)訪問、通過網(wǎng)絡(luò)接口控制Samba訪問、 通過主機(jī)名稱和IP 地址列表控制Samba 訪問、 使用pam_smb對Windows NT/2000 服務(wù)器的用戶進(jìn)行驗證、為Samba 配置防范病毒軟件、使用SSL 加固Samba 等。
提升Samba 服務(wù)器的安全性有多種途徑, 因為Samba 服務(wù)器是開源的,因此在提升Samba 安全性方面,已經(jīng)出現(xiàn)了很多方法,比如不使用明語密碼,通過網(wǎng)絡(luò)接口控制Samba 訪問,通過主機(jī)名稱和IP 地址列表控制Samba 訪問等多種途徑。 而使用RBAC 對Samba 服務(wù)器進(jìn)行安全性能的提升就目前來說,還沒有案例。
訪問控制是網(wǎng)絡(luò)安全防范和保護(hù)的主要策略,是保證網(wǎng)絡(luò)安全最重要的核心策略之一。 將RBAC 的思想運(yùn)用在Samba 服務(wù)器中,便能彌補(bǔ)Samba 服務(wù)器所面臨的一些安全漏洞, 提高Samba 服務(wù)器的安全。
[1]王楊,等.Samba 服務(wù)器的管理體系與安全策略研究[J].控制工程,2005.
[2]譚良,等.Samba 服務(wù)器共享資源安全層次模型研究[J].計算機(jī)應(yīng)用,2004,24(2):115-117.