自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

應(yīng)用強(qiáng)制訪問控制管理網(wǎng)絡(luò)服務(wù)

安全 網(wǎng)站安全
與傳統(tǒng)的自主訪問控制不同,強(qiáng)制訪問控制具有更高的安全性。SELinux是強(qiáng)制訪問控制機(jī)制的一個代表,本文將介紹什么是強(qiáng)制訪問控制機(jī)制以及如何啟動SELinux

與傳統(tǒng)的自主訪問控制不同,強(qiáng)制訪問控制具有更高的安全性。SELinux是強(qiáng)制訪問控制機(jī)制的一個代表,本文將介紹如何應(yīng)用該機(jī)制來管理網(wǎng)絡(luò)服務(wù)的文件系統(tǒng)訪問權(quán)限,并以Fedora 16下的SELinux為例進(jìn)行實例介紹。

一、強(qiáng)制訪問控制機(jī)制簡介

在傳統(tǒng)的訪問控制機(jī)制中,自主訪問控制模型占主導(dǎo)地位。使用自主訪問控制(discretionary access control,DAC)的系統(tǒng)可以讓資源的擁有者指定哪些主體可以訪問該資源。這種模型稱為“自主型”是因為對訪問的控制是由資源擁有者自主決定的。在DAC模型中,訪問根據(jù)授予用戶的權(quán)限來進(jìn)行限制,這意味著客體的擁有者有權(quán)指定對這些客體的訪問類型。如果一個組織采用了DAC模型,那么網(wǎng)絡(luò)管理員可以讓資源的擁有者控制哪些人可以訪問他們的文件。DAC模型中最常見的實現(xiàn)方式是訪問控制列表(access control list,ACL),這個列表由用戶指定,由操作系統(tǒng)實施。我們使用的大多數(shù)操作系統(tǒng)都是基于自主型訪問控制模型的,比如Windows、Macintosh和主流的Unix系統(tǒng)。

而在強(qiáng)制型訪問(mandatory access control,MAC)模型中,數(shù)據(jù)的擁有者沒有決定誰能訪問這些文件的權(quán)力,是由操作系統(tǒng)最后做出決定,并且可能會覆蓋數(shù)據(jù)擁有者的設(shè)置。這種模型更為結(jié)構(gòu)化并更加嚴(yán)格,一般基于安全標(biāo)簽系統(tǒng)來實現(xiàn)。用戶被賦予一個安全級別(秘密、機(jī)密、絕密等),且數(shù)據(jù)也被分成了多個類別。這種分類存儲在資源的安全標(biāo)簽里面。分類標(biāo)簽指明了用戶訪問一個文件時必備的可信級別。

當(dāng)系統(tǒng)接到一個客體訪問請求時,它根據(jù)主體的安全級別和客體的安全類別作出決策。主體如何訪問數(shù)據(jù)的規(guī)則由管理層制定,由管理員配置和管理,由操作系統(tǒng)來進(jìn)行實施,由安全技術(shù)支持。安全標(biāo)簽和各個客體附在一起,所以每一個文件、目錄和設(shè)備都有其自己的安全標(biāo)簽以及分類信息。一個用戶可能具有秘密(Secret)的訪問級別,他要訪問的數(shù)據(jù)具有絕密(Top Secret)的安全標(biāo)簽。這種情況下用戶會被拒絕訪問,因為他的安全級別不等于或低于客體的安全類別。目前,最常見的MAC系統(tǒng)是由美國國家安全局(NSA)和安全計算(Secure Computing)公司開發(fā)的SELinux。在較高版本的Linux發(fā)行套件中,如Red Hat Enterprise Linux(RHEL)5,RHEL6,F(xiàn)edora 1至Fedora 16等版本中,都包含對SELinux的支持。

二、如何啟動和關(guān)閉SELinux

使用SELinux的前提啟動它。啟動和禁用SELinux的步驟主要包括:1)修改其配置文件;2)執(zhí)行重啟。

首先需要介紹一下SELinux的主配置文件。主配置文件/etc/selinux/config控制系統(tǒng)下一次啟動過程中載入哪個策略,以及系統(tǒng)運行在哪個模式下,可以使用sestatus命令確定當(dāng)前SELinux的狀態(tài),下面顯示了一個config文件的例子:

 

SELinux模式(由上述例子中第6行的SELINUX選項確定):可以被設(shè)置為enforcing,permissive或disabled三種:

1) 在enforcing模式下,策略被完整執(zhí)行,這是SELinux的主要模式,應(yīng)該在所有要求增強(qiáng)Linux安全性的操作系統(tǒng)上使用。

2) 在permissive模式下,策略規(guī)則不被強(qiáng)制執(zhí)行,而只是進(jìn)行審核。除此之外,SELinux不會影響系統(tǒng)的安全性,這個模式在調(diào)試和測試一個策略時非常有用。

3) 在disabled模式下,SELinux內(nèi)核機(jī)制是完全關(guān)閉的,只有系統(tǒng)啟動時策略載入前系統(tǒng)才會處于disabled模式,這個模式和permissive模式有所不同。permissive模式不會拒絕任何訪問,只是進(jìn)行審核;而在disabled模式下,SELinux將不會有任何動作。特別地,在enforcing和permissive模式或disabled模式之間切換時要小心,當(dāng)返回enforcing模式時,通常會導(dǎo)致文件標(biāo)記不一致。SELinux配置文件中的模式設(shè)置由init使用,在它載入初始策略前配置SELinux使用。

以下是啟動SELinux的詳細(xì)步驟示意:

(1)編輯配置文件

根據(jù)上面的介紹,編輯確定SELinux的運行模式和活動策略(見下面配置文件中的黑體部分)即可:

 

(2)使用getenforce命令和sestatus命令查看SELinux的運行模式和詳細(xì)上下文信息:

#/usr/sbin/getenforce

#/usr/sbin/sestatus

(3)使用root用戶身份重啟系統(tǒng)即可:

#reboot

同理,禁用SELinux的步驟就是在編輯配置文件時設(shè)為“SELINUX=diabled”。

三、使用SELinux策略目錄

如上述的例子中,SELinux配置文件中的SELINUXTYPE選項告訴init在系統(tǒng)啟動過程中載入哪個策略,這里設(shè)置的字符串必須匹配用來存儲二進(jìn)制策略版本的目錄名,例如,用戶使用MLS(Multi-Level Security,多級安全)策略,因此用戶設(shè)置SELINUXTYPE=MLS,確保用戶想要內(nèi)核使用的策略在/etc/selinux/config文件中。在上述例子中,活動策略默認(rèn)為目標(biāo)策略(targeted),由第10行給出所示。

SELinux系統(tǒng)上安裝的每個策略在/etc/selinux/目錄下都它們自己的目錄,子目錄的名字對應(yīng)于策略的名字(如,strict,targeted,refpolicy等),在SELinux配置文件中就要使用這些子目錄名字,告訴內(nèi)核在啟動時載入哪個策略,在本章中提到的所有路徑都是相對域策略目錄路徑/etc/selinux/[policy]/的,圖1是在最新的Fedora 16系統(tǒng)上/etc/selinux/目錄的簡單列表輸出:

 #p#

圖1  /etc/selinux/目錄的簡單列表輸出 

如上面所看到的,在系統(tǒng)上安裝了一個策略目錄:targeted。注意目錄和策略子目錄都用selinux_config_t類型進(jìn)行標(biāo)記的。

semodule和semanage命令管理策略的許多方面,semodule命令管理可載入策略模塊的安裝、更新和移除,它對可載入策略包起作用,它包括一個可載入策略模塊和文件上下文消息,semanage工具管理添加、修改和移除用戶、角色、文件上下文、多層安全(MLS)/多范疇安全(MCS)轉(zhuǎn)換、端口標(biāo)記和接口標(biāo)記,關(guān)于這些工具的更多信息在它們的幫助手冊中。

每個策略子目錄包括的文件和文件如何標(biāo)記必須遵守一個規(guī)范,這個規(guī)范被許多系統(tǒng)實用程序使用,幫助管理策略,通常,任何設(shè)計優(yōu)良的策略源樹都將正確安裝策略文件,下面是targeted策略目錄的列表輸出,它就是一個典型,如圖2所示:

 

如上所示:一個正在運行的系統(tǒng)不需要src/目錄,它包括了安裝的策略源樹,要么是示例策略,要么是應(yīng)用策略源樹,實際上單片二進(jìn)制策略文件存儲在.policy/目錄中的policy.[ver]文件中,這里的[ver]就是策略二進(jìn)制文件的版本號,如policy.19,這就是系統(tǒng)啟動時載入內(nèi)核的文件。

四、管理網(wǎng)絡(luò)服務(wù)的文件系統(tǒng)訪問權(quán)限

在SELinux中,有一個非常重要的概念稱為布爾變量,它通常用來在運行時改變SELinux的部分策略,而不需要重新定義和改寫策略文件。并且,這些布爾變量在很大程度上也與許多網(wǎng)絡(luò)服務(wù)的訪問權(quán)限相關(guān),比如對網(wǎng)絡(luò)文件系統(tǒng)(NFS)的訪問,對FTP的訪問等等。

1.布爾變量的羅列和配置

通過列出系統(tǒng)中的布爾變量,可以知道與布爾變量相關(guān)的策略的開關(guān)情況(on或者是off狀態(tài)),從而知道相關(guān)網(wǎng)絡(luò)服務(wù)的訪問權(quán)限狀態(tài)。可以使用如圖3命令進(jìn)行羅列:

 

 

圖3  查看系統(tǒng)布爾變量

上述結(jié)果中的SELinux boolean列列出了系統(tǒng)中的布爾變量名稱,Description列則給出了該布爾變量的開關(guān)狀態(tài)。比如,如下的布爾變量表示的意思是阻止ftp用戶訪問用戶目錄:

ftp_home_dir  -> 關(guān)   Allow ftp to read and write files in the user home directories

如下命令可以僅僅給出布爾變量的開關(guān)狀態(tài),而不給出他們的具體描述信息,如圖4所示:

#/usr/sbin/getsebool –a

 

 #p#

圖4  顯示布爾變量的開關(guān)狀態(tài)

并且,通過該命令可以查看具體的布爾變量(一個或者多個)的開關(guān)狀態(tài)信息,如下所示:

#/usr/sbin/getsebool allow_console_login

#/usr/sbin/getsebool allow_console_login allow_cvs_read_shadow

使用setsebool命令可以設(shè)置布爾變量(改變其開關(guān)狀態(tài))。下面給出具體的例子來對其進(jìn)行詳細(xì)介紹,該例子表明如何來對httpd_can_network_connect_db布爾變量來進(jìn)行狀態(tài)設(shè)置,該布爾變量控制httpd服務(wù)器進(jìn)程能否連接后臺數(shù)據(jù)庫系統(tǒng):

(1)使用getsebool命令查看該布爾變量的缺省狀態(tài),表明該變量的缺省狀態(tài)是off,即不允許httpd進(jìn)程訪問后端數(shù)據(jù)庫服務(wù)器:

# /usr/sbin/getsebool httpd_can_network_connect_db

httpd_can_network_connect_db --> off

(2)使用setsebool命令改變該布爾變量的狀態(tài),從而使得httpd進(jìn)程能夠訪問數(shù)據(jù)庫服務(wù)器:

#/usr/sbin/setsebool httpd_can_network_connect_db on

改變成功后,可以繼續(xù)使用getsebool命令進(jìn)行查看:

#/usr/sbin/getsebool httpd_can_network_connect_db

(3)上述狀態(tài)改變只是暫時性的,一旦系統(tǒng)重啟,該變量狀態(tài)將改變回初始狀態(tài),因此,可以使用如下命令永久性改變狀態(tài):

#/usr/sbin/setsebool -P httpd_can_network_connect_db on

2.網(wǎng)絡(luò)服務(wù)對于文件系統(tǒng)的訪問權(quán)限管理

對于大多數(shù)網(wǎng)絡(luò)服務(wù)來說,各種網(wǎng)絡(luò)服務(wù)缺省情況下都能使用具有各自的服務(wù)類型的文件,比如nfs服務(wù)可以使用nfs_t類型的文件,samba服務(wù)可以使用cifs_t類型的文件。然而,由于NFS和CIFS這兩個共享文件系統(tǒng)的特殊性,HTTP服務(wù)和FTP服務(wù)都不能使用標(biāo)記這兩個文件系統(tǒng)類型的文件,因此,在實際使用過程中,用戶需要對控制他們的布爾變量進(jìn)行顯式的狀態(tài)修改,如下所示:

(1)對于Apache HTTP服務(wù)器

允許訪問NFS文件系統(tǒng),需要運行如下命令,修改布爾變量:

#/usr/sbin/setsebool –P httpd_use_nfs on

允許訪問Samba文件系統(tǒng),需要運行如下命令,修改布爾變量:

#/usr/sbin/setsebool –P httpd_use_cifs on

(2)對于Samba服務(wù)

允許共享NFS文件系統(tǒng)的文件,需要運行如下命令,修改布爾變量:

#/usr/sbin/setsebool –P samb_share_nfs on

(3)對于FTP服務(wù)器

允許訪問NFS文件系統(tǒng),需要運行如下命令,修改布爾變量:

#/usr/sbin/setsebool –P allow_ftpd_use_nfs on

允許訪問Samba文件系統(tǒng),需要運行如下命令,修改布爾變量:

#/usr/sbin/setsebool –P llow_ftpd_use_cifs on

(4)對于其他服務(wù)

可以使用如下命令來查找相關(guān)的布爾變量并根據(jù)上述的例子進(jìn)行同樣修改即可:

查找與NFS相關(guān)的布爾變量:

#/usr/sbin/semanage boolean –l | grep nfs

查找與Samba相關(guān)的布爾變量:

#/usr/sbin/semanage bo

 

【編輯推薦】

  1. 攻擊MAC再出新招 黑客或可控制MAC電腦
  2. 關(guān)于域控制器的5大安全建議
  3. 解讀準(zhǔn)入控制 保障企業(yè)內(nèi)網(wǎng)安全
  4. iPhone或Android可被遠(yuǎn)程控制
  5. 準(zhǔn)入控制:讓企業(yè)網(wǎng)絡(luò)摘掉“公共場所”的帽子
責(zé)任編輯:Writer 來源: TechTarget中國
相關(guān)推薦

2020-06-03 09:00:20

firewall-cm網(wǎng)絡(luò)服務(wù)系統(tǒng)運維

2010-09-09 14:46:12

2010-04-20 13:54:24

Oracle強(qiáng)制訪問

2020-02-28 17:21:39

華為

2009-07-27 13:32:37

2014-06-26 14:10:44

2013-12-23 10:14:36

虛擬網(wǎng)絡(luò)

2013-12-24 07:17:25

虛擬網(wǎng)絡(luò)網(wǎng)絡(luò)虛擬化

2009-02-20 10:11:00

網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)管理

2011-07-15 10:03:06

網(wǎng)絡(luò)服務(wù)虛擬應(yīng)用

2011-08-22 11:00:10

nagios

2011-08-22 11:00:14

nagios

2011-08-22 11:00:17

nagios

2023-04-25 10:22:00

云計算網(wǎng)絡(luò)部署

2011-12-06 09:55:13

網(wǎng)絡(luò)訪問控制NAC

2010-04-20 13:44:58

Oracle強(qiáng)制訪問

2011-08-22 10:30:29

nagios

2012-04-13 16:21:47

亞馬遜云計算CloudSerach

2013-04-28 10:18:42

SDNSDN應(yīng)用4-7層

2011-08-03 10:01:28

網(wǎng)絡(luò)智能手機(jī)
點贊
收藏

51CTO技術(shù)棧公眾號