隨著每個企業越來越依賴于互聯網,網絡安全日益成為組織焦點。在這方面,Linux系統是一個很好的起點。由于開源、廣泛使用、無需授權等特點,Linux系統成為了很多組織和企業的首選操作系統。然而,Linux系統的風險也在不斷增加。本文將介紹如何加固和修復Linux系統漏洞,并提供了一些示例代碼,幫助您對Linux系統進行更加安全方面的配置。
首先,我們需要重點關注這些方面:用戶管理、文件和目錄權限、網絡和服務器配置以及應用安全。下面將介紹每個方面的詳細措施和示例代碼。
- 用戶管理
強密碼
制定一個密碼策略,要求用戶選擇復雜的密碼,并且定期更換密碼。
#強制用戶選擇具備最低密碼強度的密碼 auth requisite pam_passwdqc.so enforce=users #強制/用戶更改自己的密碼 auth required pam_warn.so auth required pam_passwdqc.so min=disabled,disabled,12,8,7 auth required pam_unix.so remember=24 sha512 shadow
登錄后復制
禁止root遠程登錄
建議設置只有具備root權限的用戶可以直接進行連接。在/etc/ssh/sshd_config中配置PermitRootLogin為no。
登錄超時
超時設置可以確保在空閑一段時間之后自動斷開連接。在/etc/profile或~/.bashrc中設置如下:
#設置空閑登陸超時退出時間為300秒 TMOUT=300 export TMOUT
登錄后復制
- 文件和目錄權限
默認配置
默認配置將允許所有用戶都可以查看到所有的文件和目錄。在/etc/fstab文件中加入如下內容:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /dev/shm tmpfs defaults,noatime,mode=1777 0 0
登錄后復制
確定敏感文件和目錄的權限
應該將訪問權限限制在特定用戶組或個人身上。使用chown和chmod命令來修改文件和目錄的權限,下面示例是為某個目錄設置只能root用戶修改:
#修改某目錄只能root用戶修改 chown root /etc/cron.deny chmod 600 /etc/cron.deny
登錄后復制
檢查SUID、SGID、Sticky Bit位
SUID (Set user ID), SGID(Set group ID),Sticky Bit等位是Linux系統中的一些安全標記,需要定期審計。下面的命令用來查找任何不合格的權限情況:
#查找SUID權限未被使用的文件和目錄 find / -perm +4000 ! -type d -exec ls -la {} ; 2>/dev/null #查找SGID權限未被使用的文件和目錄 find / -perm +2000 ! -type d -exec ls -la {} ; 2>/dev/null #查找粘滯位未設置的目錄 find / -perm -1000 ! -type d -exec ls -la {} ; 2>/dev/null
登錄后復制
- 網絡和服務器配置
防火墻
iptables是Linux中最常用的防火墻應用之一。下面的示例代碼阻止了所有進入的訪問:
#清空所有規則和鏈 iptables -F iptables -X #允許所有本地進出的通信,并拒絕所有遠程的訪問 iptables -P INPUT DROP iptables -P OUTPUT DROP #添加規則 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
登錄后復制
限制服務訪問
一些服務應該僅在本地中運行,被外網訪問存在很大的風險。在/etc/hosts.allow、/etc/hosts.deny目錄中制定規則,用來限制訪問服務的時間,IP等信息。
- 應用程序安全
更新軟件包
無論是內核還是用戶空間軟件,都需要定期更新來解決已知的Bug和漏洞。您可以使用yum、rpm等工具來更新軟件包。下面給出示例代碼:
#更新已安裝的所有軟件包 yum -y update #更新單個軟件包 yum -y update <package>
登錄后復制
避免使用root用戶運行應用
運行應用時,應該使用非特權用戶,不要使用root用戶運行應用。
編譯靜態鏈接庫
靜態鏈接庫包含了編寫應用程序的所有依賴關系,可以避免其他用戶篡改依賴包。下面給出示例代碼:
#編譯靜態鏈接庫 gcc -o app app.c -static
登錄后復制
結論
Linux系統的安全加固與漏洞修復工作不止于此,但上述措施可以幫助我們加強Linux系統的安全性。需要注意的是,這些措施并不能完全保證系統的安全,組織和企業應該采取多個方面的措施來保證安全。