Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux SELinux 安全子系統狀態查看與關閉完整指南

編輯:關於 Linux

SELinux (Security-Enhanced Linux) 是 Linux 核心強制存取控制 (MAC) 安全模組,預設啟用於 RHEL/CentOS/Fedora 等發行版。本文詳解 SELinux 三種模式、狀態查看命令、臨時/永久關閉方法、策略調整替代方案,助你在安全與相容性間取得平衡。

SELinux 三種運行模式

模式行為適用場景
Enforcing (強制)阻擋違反策略的操作,記錄審計日誌生產環境、高安全要求系統
Permissive (寬容)不阻擋操作,僅記錄違規審計日誌除錯策略問題、新應用部署測試
Disabled (停用)完全關閉 SELinux,核心不載入策略相容性極差環境、特定廠商要求

狀態查看命令

臨時切換模式 (重啟失效)

# 切換到 Permissive (推薦除錯用)
sudo setenforce 0
# 或
sudo setenforce Permissive

# 切換回 Enforcing
sudo setenforce 1
# 或
sudo setenforce Enforcing

注意: setenforce 僅在當前模式為 Enforcing/Permissive 間切換,無法從 Disabled 切換出來(需重啟)。

永久關閉/修改模式 (需重啟)

  1. 編輯配置檔:
    sudo vim /etc/selinux/config
  2. 修改 SELINUX= 行:
    SELINUX=disabled   # 完全關閉
    # 或
    SELINUX=permissive # 永久寬容模式
  3. 重啟系統:sudo reboot

關鍵參數說明:

  • SELINUXTYPE=targeted:預設策略類型,僅保護網路服務等目標進程。
  • SELINUXTYPE=mls:多層級安全策略,極少使用。

替代方案:調整策略而非關閉 (強烈推薦)

關閉 SELinux 會降低系統安全性,優先嘗試以下方法:

1. 利用 audit2allow 產生自定義策略模組

# 1. 確保 auditd 運行
systemctl start auditd

# 2. 重現問題操作(如啟動服務失敗)

# 3. 從審計日誌產生允許規則
grep denied /var/log/audit/audit.log | audit2allow -M myapp

# 4. 安裝模組
semodule -i myapp.pp

2. 設定布林值開關

# 查看所有布林值
getsebool -a

# 例:允許 httpd 連接資料庫
setsebool -P httpd_can_network_connect_db on

# 例:允許 ftpd 完整存取
setsebool -P ftpd_full_access on

3. 修正檔案安全上下文

# 查看上下文
ls -Z /var/www/html/

# 恢復預設上下文
restorecon -Rv /var/www/html/

# 自定義上下文 (如非標準目錄)
semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
restorecon -Rv /data/www

驗證修改生效

# 重啟後
getenforce
sestatus

# 測試原本被阻擋的操作是否通過

常見誤區

命令輸出範例說明
getenforceEnforcing快速查看當前模式
sestatus -v詳細狀態含策略版本、模式、載入模組完整資訊
cat /etc/selinux/config設定檔內容永久生效設定來源
誤區正確做法
直接改 /etc/sysconfig/selinux此為 /etc/selinux/config 符號連結,改任一均可,但以標準路徑為準
關閉 SELinux 解決所有權限問題DAC (rwx) 權限仍生效,SELinux 是額外層,需區分
Permissive 模式不記錄日誌Permissive 完整記錄 AVC 拒絕日誌,是除錯利器
容器內關閉宿主機 SELinux容器共享宿主機核心,SELinux 策略在宿主機層面生效

企業級建議

  • 預設保持 Enforcing,建立標準化部署流程包含 SELinux 策略調整。
  • 使用 udica 從容器運行記錄自動生成策略:udica -j container.json mypolicy。
  • 納入基線檢查:oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_stig /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml。

理解 SELinux 機制並善用策略調整工具,比單純關閉更能保障系統長期安全穩定運行。

Copyright © Windows教程網 All Rights Reserved