首頁 > 軟體

深入理解SELinux

2020-06-16 17:03:42

深入理解SELinux

Security-Enhanced Linux (SELinux)是強制存取控制MAC在Linux核心中的一種實現——在自主存取控制(DAC)檢查之後,再次檢查允許的操作。SELinux通過定義的策略,強制限定Linux系統中對檔案的操作、進程的許可權。

MAC:mandatory access control

DAC:discretionary access controls

優點

  1. 所有檔案和進程都加上一個特定型別標籤,一個型別標籤為進程定義了一個域,而為檔案定義了一種型別。SELinux策略中指定,進程存取檔案的規則以及進程間通訊規則。
  2. 細化存取控制。SELinux中存取能力取決相關資訊,例如使用者、角色、型別和等級(可選選項)。
  3. 策略由管理員設定,全系統範圍有效。
  4. 防止許可權升級,如果有進程被挾持了(compromised),攻擊者只能存取有限的資源(該進程所能存取的資源)。
  5. 加強資料的安全性和完整性

注意:

SELinux不是防毒軟體

SELinux不是口令密碼、防火牆或者其他安全系統的替代物

SELinux不是一體化的安全解決方案

SELinux是在已有的安全解決方案基礎之上,增強安全性,而不是替代原有的安全解決方案。

工作狀態

Enforcing(啟用狀態):SELinux策略是強制使用。SELinux會根據策略拒絕存取

Permissive(自由狀態):SELinux策略不是被強制使用的,僅會根據策略提醒使用者

Disabled(禁用狀態):SELinux不啟用

~]# getenforce  # 檢視啟用狀態
Enforcing

~]# setenforce 0   # 關閉SELinux
~]# getenforce 
  Permissive

工作模式

strict(嚴格模式):每個進程都會受到Selinux的控制

targeted (寬鬆模式):僅對部分進程啟用selinux的控制

安全標籤

格式:

user, role, type, level

user, 使用者

role, 角色

type, 型別

level, 等級,可選項

使用 ls -Z  可檢視檔案的標籤

[root@node1 tmp]$ls -Z mbr.bak 
-rw-r--r--. root root system_u:object_r:tmp_t:s0       mbr.bak

第四個欄位即為安全標籤——“system_u:object_r:tmp_t:s0”

檢視進程的安全標籤——ps  -Z

[root@node1 tmp]$ps aux -Z
LABEL                           USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
system_u:system_r:init_t:s0     root          1  0.0  0.1  17128  1312 ?        Ss   03:06   0:01 /sbin/in
system_u:system_r:kernel_t:s0   root          2  0.0  0.0      0     0 ?        S    03:06   0:00 [kthrea]
system_u:system_r:kernel_t:s0   root          3  0.0  0.0      0     0 ?        S    03:06   0:00 [migrat]
system_u:system_r:kernel_t:s0   root          4  0.0  0.0      0     0 ?        S    03:06   0:00 [ksofti]
...

修改安全標籤

 chcon命令

修改檔案的SELinux安全上下文

常用選項

-u  指定使用者

-r   指定角色

-t   指定型別或域

-R    遞回修改檔案或資料夾

修改檔案安全上下文型別

[root@node1 tmp]$ls -Z mbr.bak   
-rw-r--r--. root root system_u:object_r:tmp_t:s0       mbr.bak
[root@node1 tmp]$chcon -t tmp_tt_t mbr.bak                               # 修改檔案的安全上下文型別
[root@node1 tmp]$ls -Z mbr.bak                          
-rw-r--r--. root root system_u:object_r:tmp_tt_t:s0    mbr.bak

restorecon命令

還原檔案安全上下文

常用選項

  -R  遞回還原檔案或資料夾

getsebool

檢視進程或服務本身開啟或關閉的功能模組

-a  檢視所有布林值

setsebool

  修改指定模組是否使用SELinux

  -P  將修改結果儲存本地磁碟

相關檔案

/etc/selinux/config | /etc/sysconfig/selinux  設定SELinux啟用狀態和工作模式的檔案

/var/log/audit/audit.log       SELinux變動紀錄檔

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-10/148081.htm


IT145.com E-mail:sddin#qq.com