📖 Linux 系統權限與 SELinux

分類:資安與維運 | 作者:pake | 發布時間:2024-09-22 23:14

Linux 系統權限與 SELinux

Linux 系統權限與 SELinux(Security-Enhanced Linux)是伺服器安全管理的核心部分。傳統 Unix 權限(如 chmodchown)提供基本的檔案與目錄控制,而 SELinux 則提供強制存取控制(MAC),進一步增強系統安全性。本篇將詳細介紹權限管理與 SELinux 強化設定,確保 Linux 伺服器的安全。


目錄


Linux 檔案與目錄權限管理

Linux 使用 rwx(讀寫執行)權限 來控制檔案與目錄存取。

檢視權限

ls -l

範例輸出:

-rw-r--r--  1 user1 users  4096 Jan 18 12:34 example.txt

解釋:

修改檔案權限 (chmod)

設定 example.txt 為擁有者可讀寫,其他人只能讀取:

chmod 644 example.txt

允許所有人讀寫執行:

chmod 777 script.sh

修改檔案擁有者 (chown)

變更 example.txt 的擁有者為 admin,群組為 staff

sudo chown admin:staff example.txt

遞迴變更整個目錄的擁有者:

sudo chown -R user1:usergroup /var/www/

Linux 使用者與群組管理

建立使用者

sudo useradd -m user1

設定密碼

sudo passwd user1

刪除使用者

sudo userdel -r user1

建立群組

sudo groupadd devops

將使用者加入群組

sudo usermod -aG devops user1

列出使用者的群組

groups user1

ACL(存取控制清單)

ACL(Access Control List)允許細緻控制使用者對特定檔案的權限。

檢視 ACL 設定

getfacl example.txt

設定 ACL 權限(允許 user2 讀取 example.txt

setfacl -m u:user2:r example.txt

移除 ACL

setfacl -x u:user2 example.txt

SELinux 基本概念

SELinux 採用 強制存取控制(MAC),比傳統 Unix 權限更強。

檢查 SELinux 是否啟用

sestatus

可能的輸出:

SELinux status: enabled
Current mode: enforcing
Policy version: 33

檢視 SELinux 安全上下文

ls -Z /var/www/html/

範例輸出:

-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html

SELinux 模式與狀態管理

SELinux 三種模式:

  1. Enforcing(強制模式,所有規則均生效)
  2. Permissive(寬容模式,只記錄違規,不封鎖)
  3. Disabled(停用)

切換 SELinux 模式

設定為 寬容模式(不封鎖但記錄):

sudo setenforce 0

恢復 強制模式

sudo setenforce 1

永久修改 /etc/selinux/config

SELINUX=enforcing

重新啟動生效:

sudo reboot

SELinux 安全上下文與策略

設定檔案的 SELinux 上下文

允許 Nginx 存取 /var/www/html

sudo chcon -R -t httpd_sys_content_t /var/www/html

還原檔案預設 SELinux 上下文

sudo restorecon -Rv /var/www/html

設定 SELinux Boolean 變數(允許 Apache 連線外部資料庫)

sudo setsebool -P httpd_can_network_connect_db 1

列出所有可調整的 Boolean 值:

getsebool -a

SELinux 日誌分析與除錯

檢查 SELinux 違規日誌

sudo journalctl -t setroubleshoot

或手動檢視 /var/log/audit/audit.log

sudo grep AVC /var/log/audit/audit.log

使用 audit2why 分析錯誤

sudo ausearch -m avc -ts recent | audit2why

使用 audit2allow 產生政策修正

sudo ausearch -m avc -ts recent | audit2allow -M mypolicy
sudo semodule -i mypolicy.pp

結語

本篇提供了 Linux 權限管理與 SELinux 強化的完整教學,包括傳統 Unix 權限、ACL、SELinux 相關設定與日誌分析。透過這些技術,您可以提升 Linux 伺服器的安全性,防止未授權存取與攻擊。

⬅ 上一篇 下一篇 ➡
🔙 返回 資安與維運 📚 返回教學列表 🏠 返回首頁