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