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