SELinux 與強制訪問控制系統

2021-09-06 15:17:41 字數 2354 閱讀 4284

selinux 全稱 security enhanced linux (安全強化 linux),是 mac (mandatory access control,強制訪問控制系統)的乙個實現,目的在於明確的指明某個程序可以訪問哪些資源(檔案、網路埠等)。

強制訪問控制系統的用途在於增強系統抵禦 0-day 攻擊(利用尚未公開的漏洞實現的攻擊行為)的能力。所以它不是網路防火牆或 acl 的替代品,在用途上也不重複。

舉例來說,系統上的 apache 被發現存在乙個漏洞,使得某遠端使用者可以訪問系統上的敏感檔案(比如 /etc/passwd 來獲得系統已存在使用者),而修復該安全漏洞的 apache 更新補丁尚未發布。此時 selinux 可以起到彌補該漏洞的緩和方案。因為 /etc/passwd 不具有 apache 的訪問標籤,所以 apache 對於 /etc/passwd 的訪問會被 selinux 阻止。

相比其他強制性訪問控制系統,selinux 有如下優勢:

了解和配置 selinux

1. 獲取當前 selinux 執行狀態

getenforce

可能返回結果有三種:enforcing、permissive 和 disabled。disabled 代表 selinux 被禁用,permissive 代表僅記錄安全警告但不阻止可疑行為,enforcing 代表記錄警告且阻止可疑行為。

目前常見發行版中,rhel 和 fedora 預設設定為 enforcing,其餘的如 opensuse 等為 permissive。

2. 改變 selinux 執行狀態

setenforce [ enforcing | permissive | 1 | 0 ]

該命令可以立刻改變 selinux 執行狀態,在 enforcing 和 permissive 之間切換,結果保持至關機。乙個典型的用途是看看到底是不是 selinux 導致某個服務或者程式無法執行。若是在 setenforce 0 之後服務或者程式依然無法執行,那麼就可以肯定不是 selinux 導致的。

若是想要永久變更系統 selinux 執行環境,可以通過更改配置檔案 /etc/sysconfig/selinux 實現。注意當從 disabled 切換到 permissive 或者 enforcing 模式後需要重啟計算機並為整個檔案系統重新建立安全標籤(touch /.autorelabel && reboot)。

3. selinux 執行策略

配置檔案 /etc/sysconfig/selinux 還包含了 selinux 執行策略的資訊,通過改變變數 selinuxtype 的值實現,該值有三種可能:targeted 代表僅針對預製的幾種網路服務和訪問請求使用 selinux 保護,strict 代表所有網路服務和訪問請求都要經過 selinux。mls指 multi level security protection。

rhel 和 fedora 預設設定為 targeted,包含了對幾乎所有常見網路服務的 selinux 策略配置,已經預設安裝並且可以無需修改直接使用。

vi /etc/selinux/config

# this file controls the state of selinux on the system.

# selinux= can take one of these three values:

# enforcing - selinux security policy is enforced.

# permissive - selinux prints warnings instead of enforcing.

# disabled - selinux is fully disabled.

selinux=enforcing

# selinuxtype= type of policy in use. possible values are:

# targeted - only targeted network daemons are protected.

# strict - full selinux protection. #在rhel 6.0中value值為mls(非strict) - multi level security protection.

selinuxtype=targeted

4.檢視selinux狀態

[root@rusky2 samba]# sestatus -v

selinux status: disabled

如果不想重啟系統,使用命令setenforce 0

注:setenforce 1 設定selinux 成為enforcing模式

setenforce 0 設定selinux 成為permissive模式 

Linux強制訪問控制selinux講解

selinux 預設安裝在 fedora 和 red hat enterprise linux 上,也可以作為其他發行版上容易安裝的包得到。有些問題可能就因為這個引起的。檢視selinux狀態 1 usr sbin sestatus v 如果selinux status引數為enabled即為開啟狀...

訪問控制模型 強制訪問控制

強制安全訪問控制基於安全標籤的讀寫策略使資料庫管理系統能夠跟蹤資料的流動,可以避免和防止大多數對資料庫有意或無意的侵害,因而,可以為木馬程式問題提供一定程度的保護,在資料庫管理系統中有很大的應用價值。其典型代表是bell la padula模型 簡稱 blp模型 和 biba 模型,也是目前應用最為...

訪問控制與繼承

每個類分別控制自己的成員初始化過程,與之類似,每個類還分別控制著其成員對於派生類來說是否可訪問。受保護的成員 乙個類使用protected關鍵字來宣告那些它希望與派生類分離但是不想被其他公共訪問使用的成員。1。和私有成員類似,受保護的成員對於類的使用者來說是不可訪問的。2。和公有成員類似,受保護的成...