引言:在Linux系統中,如果攻擊者通過遠程或者本地攻擊手段獲得了系統的root權限,那么對運維人員將是一場災難。在這種情況下,文件系統將是保護系統安全的最后一道防線,通過對文件系統進行合理的屬性設置,可以最大限度地減小攻擊者對系統的破壞程度。
在Linux系統中,如果一個用戶以root的權限登錄或某個進程以root的權限運行,那么其使用權限就不再有任何的限制了。因此,如果攻擊者獲得了系統的root權限,那么對運維人員將是一場災難。這種情況下,文件系統將是保護系統安全的最后一道防線,通過對文件系統合理的屬性設置可最大限度地減小攻擊者對系統的破壞。對某個文件或目錄設置了較為嚴格的擴展屬性后,即使root用戶也無法修改或刪除。
在Linux系統中對文件或目錄設置擴展屬性主要是通過chattr命令,主要用法:
chattr [-R] +/- i/a文件
-R:遞歸修改所有的文件及子目錄,是一個可選項;
+:表示增加擴展屬性;
-:表示減少擴展屬性;
i:表示只讀屬性,增加該屬性之后,任何人包括root用戶也無權寫入更改;
a:表示追加屬性,增加該屬性后,只能向文件中添加數據,而不能刪除,多用于服務器日志文件安全。
通過chattr命令鎖定系統重要的文件或目錄是保護文件系統安全最直接、最有效的手段。
例 如,將/etc/passwd和/etc/shadow文件增加只讀屬性。

此時再創建用戶就會出現錯誤提示。

useradd:無法打開密碼文件
lsattr命令可用于顯示chattr命令設置的擴展屬性。


如管理員要對系統中用戶進行操作,可去掉/etc/passwd和/etc/shadow文件的只讀屬性。

為增強系統安全性,通常可以為以下目錄和文件增加只讀屬性:另外可對一些重要的日志文件設置追加屬性,常見的有:


鎖定系統關鍵文件雖然能夠提高系統安全性,但也會帶來一些不便。例如,在軟件的安裝、升級時可能需要去掉有關目錄和文件的只讀和追加屬性,同時對日志文件設置了追加屬性后,可能會使日志輪換(logrotate)無法進行。因此在使用chattr命令前,需要結合服務器的應用環境來權衡是否需要設置只讀和追加屬性。
另外,雖然通過chattr命令修改文件屬性能提高文件系統的安全性,但它并不適合所有的目錄。比如不同通過chattr命令來保護/dev、/tmp、/var等目錄。
首先根目錄不能設置只讀屬性,如根目錄具有只讀屬性,系統將無法工作。
/dev目錄在啟動時,syslog需刪除并重新建立/dev/log套接字設備,如設置了只讀屬性可能會出問題。
/tmp目錄會有很多應用程序和系統程序需要在這個目錄下建立臨時文件,因而也不能設置只讀屬性。
/var是系統和程序的日志目錄,如果設置為只讀屬性,那么系統寫日志將無法進行,所以也不能通過chattr命令保護。