經過對大量客戶的配置審計與滲透測試,我們總結出了一些Linux系統下的常見配置錯誤。我們相信總結、回顧這些常見錯誤可以在以后為我們節省更多時間與資源,更重要的是可以幫助系統管理員,使其服務器更加安全可靠。
五個常見配置錯誤如下:
1、用戶/home目錄的權限2、系統中的getgid與setuid程序
3、全局可讀/可寫的文件/目錄
4、使用包含漏洞的服務
5、默認的NFS掛載選項或不安全的導出選項
1、用戶的/home目錄權限
在大部分Linux發行版中,/home目錄的默認權限是755,即任何登錄系統的用戶都可以訪問其他用戶的/home目錄。而某些用戶如管理員或開發者,可能會在他們自己的用戶目錄下存放某些敏感信息,如密碼、訪問當前或其它網絡服務器的key等。
2、系統中的setgid與setuid程序
文件的set
uid位非常危險,因為它可能允許文件以一種特權用戶的身份運行,如root用戶:如果某個文件的所有者是root,并且設置了setuid位,那么在其運行時就是以root權限運行的。這意味著如果攻擊者找到了該文件的漏洞,或者以一種非預期的方式運行了該程序,那他很有可能能夠以root權限執行自己構造的命令,那么整個系統的權限就淪陷了。
3、全局可讀/可寫的文件/目錄
全局可讀與可寫的文件和目錄產生的問題與之前介紹的因用戶主目錄權限配置不當引起的問題類似,但其影響范圍可能涉及到整個系統。產生全局可讀的文件的主要原因是,創建文件的默認umask掩碼是0022或0002,正是由于這種不當的配置,那些可能包含敏感信息的文件可能被登錄系統的任何人讀取到。如果文件是全局可寫的,那么也可能被任何人修改,也因此可能導致攻擊者有機會修改某些文件或腳本來隱藏自己,并通過修改管理員經常使用的腳本來執行某些敏感命令。
4、配置不當的服務或設置
應該運行那些最小化配置的服務。經常會看到有些服務配置不當或使用默認的證書與配置,使用不安全的通信渠道的現象也非常常見,加重了服務器被攻擊的風險。在使用某項服務時,需要對其選項和配置進行復審,以確保部署的安全或配置恰當。但同時也經常看到有些服務被綁定到多個端口,而不是只進行本地監聽或只監聽某個特定端口。
5、默認的掛載選項或不安全的導出選項
所有掛載的默認選項都是“rw, suid, dev, exec, auto, nouser, async”。但是使用這些默認選項是不恰當的,因為它們允許如NFS協議等外部掛載的文件系統中的文件被設置suid位和guid位。當導出NFS共享時,建議不要設置no_root_squash選項。通常默認為root_squash選項,但我們經常看到其在實際使用中會被修改。如果設置了no_root_squash選項,當用戶以root用戶登錄時,對這個共享目錄來說就擁有了root權限,可以作任何事。這些不當設置如果保持默認,就會允許root用戶登錄服務器,但本來不應該允許這種權限的用戶登錄的。
這些設置在配置Linux服務器時經常會被忽視,而恰恰是這些不當配置,使攻擊者或惡意用戶可以非法獲得大量信息,或者提升自己在服務器中的權限。掩耳盜鈴和一葉障目總比老老實實地加固系統來得簡單,但是如果不想在自己睡得正香的時候服務器被人XXOO,就去踏踏實實地加固你的系統吧。