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 檔案系統權限與安全設定完整指南:chattr 不可變屬性、ACL、臨時目錄加固

編輯:關於 Linux

檔案系統層面的防護是伺服器被 Rootkit 入侵後的最後一道防線。本文系統整理 chattr 不可變/僅追加屬性、關鍵目錄鎖定策略、SUID/SGID/孤兒檔案掃描、/tmp /var/tmp /dev/shm 掛載加固與 Loopback 檔案系統建立,構建纖深防禦體系。

一、chattr / lsattr 指令詳解

查詢屬性:lsattr -R /path (遞歸顯示)。

二、關鍵目錄/檔案鎖定策略

建議加 +i (不可變)


chattr -R +i /bin /boot /lib /sbin
chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
chattr +i /etc/fstab /etc/inittab /etc/sudoers
chattr +i /etc/ssh/sshd_config /etc/hosts /etc/resolv.conf

建議加 +a (僅追加)


chattr +a /var/log/messages
chattr +a /var/log/secure
chattr +a /var/log/audit/audit.log
chattr +a /var/log/wtmp /var/log/btmp

操作前須知

  • 軟體升級/安裝前需移除屬性:chattr -R -i /usr。
  • logrotate 會因 +a 失效,需在旋轉腳本前 chattr -a、旋轉後 chattr +a。
  • 不可鎖定目錄:/, /dev, /tmp, /var, /run, /proc, /sys (系統運行需寫入)。

三、權限異常掃描與修正

chattr 參數效果適用場景
+i不可變:不可修改、刪除、重命名、建立連結、寫入核心二進位、關鍵設定檔
+a僅追加:只能在檔案末尾寫入,不可刪除/覆寫日誌檔
+c透明壓縮大型靜態檔案
+s安全刪除:刪除時覆寫磁碟區塊敏感資料
+u刪除保留:保留資料區塊以便復原重要文件
檢查項目指令處置
全域可寫檔案find / -type f -perm -o=w -o -perm -g=w ! -path "/proc/*" ! -path "/sys/*" -exec ls -la {} \;移除不必要的 o=w/g=w
全域可寫目錄find / -type d -perm -o=w -o -perm -g=w ! -path "/proc/*" ! -path "/sys/*" -exec ls -ld {} \;加上 sticky bit chmod +t 或收回權限
SUID 程式find / -type f -perm -4000 -exec ls -la {} \;非必要移除 chmod u-s
SGID 程式find / -type f -perm -2000 -exec ls -la {} \;非必要移除 chmod g-s
Root SUID/SGID + md5sumfind / -user root -perm -4000 -exec md5sum {} \;建立基線備份,定期比對
無擁有者檔案find / -nouser -o -nogroup刪除或指派擁有者

四、臨時目錄與共享記憶體加固

/tmp 獨立分區


# /etc/fstab
UUID=xxxx  /tmp  ext4  rw,nosuid,noexec,nodev  0  0
mount -o remount /tmp

/var/tmp 導向 /tmp


mv /var/tmp/* /tmp/
rmdir /var/tmp
ln -s /tmp /var/tmp

/tmp 非獨立分區:Loopback 檔案系統


dd if=/dev/zero of=/var/tmpfs bs=1M count=10240   # 10GB
mkfs.ext4 /var/tmpfs
cp -a /tmp /tmp.bak
mount -o loop,noexec,nosuid,nodev,rw /var/tmpfs /tmp
chmod 1777 /tmp
mv /tmp.bak/* /tmp/
rm -rf /tmp.bak
echo "/var/tmpfs /tmp ext4 loop,nosuid,noexec,nodev,rw 0 0" >> /etc/fstab

/dev/shm 共享記憶體加固


# /etc/fstab
tmpfs  /dev/shm  tmpfs  defaults,nosuid,noexec,nodev,rw  0  0
mount -o remount /dev/shm

驗證加固生效


# /tmp 測試
echo '#!/bin/sh\necho test' > /tmp/test.sh
chmod +x /tmp/test.sh
/tmp/test.sh
# 應報 Permission denied (noexec 生效)

五、ACL 精細權限控制 (補充)


# 安裝
apt-get install acl   # Debian/Ubuntu
yum install acl       # RHEL/CentOS

# 啟用 (掛載選項加 acl)
mount -o remount,acl /

# 設定
setfacl -m u:alice:rwx /data/project
setfacl -m g:dev:rx /data/project
getfacl /data/project

# 移除
setfacl -x u:alice /data/project
setfacl -b /data/project  # 清除所有 ACL

檔案系統權限加固架構圖

Copyright © Windows教程網 All Rights Reserved