段垚
摘要:隨著我國信息化建設不斷推進信息技術廣泛應用,信息安全問題凸顯服務器的安全加固是信息系統安全體系建設過程中不可或缺的一環,本文根據《信息安全技術信息系統安全等級保護基本要求》第3級要求,結合作者在實際工作中遇到的各種問題,從用戶、審計和安全代碼防護三個方面介紹了 iinux服務器的安全加固方法。
關鍵詞:安全Linux 加固 服務器
引言
服務器是信息系統的核心設備,黑客攻擊的最終目的就是通過提權操作獲取服務器中的重要資源。服務器一般位于系統縱深內部,與外網之間使用安全設備進行隔離,雖然一定程度上為其提供了安全保障,但對服務器自身的安全加固也是不能忽略的。在操作系統默認安裝的情況下,均未對安全進行配置,下文將參考《信息安全技術信息系統安全等級保護基本要求》3級要求,結合作者在實際工作中遇到的問題,采用問答的方式淺談—下Linux服務器的安全加固方法。
1.用戶
1.1.系統中應該存在多少賬號
在實際測評工作中會發現,一大部分操作系統僅有root 一個賬號,而另一部分操作系統因為安裝、調試等原因會存在很多賬號。到底每個操作系統應該有多少個賬號呢,根據三權分立、相互制約的原則,應至少存在超級管理員、配置員和審計員三種類型的用戶。為便于安全事件的追溯,系統應為不同用戶分配不同賬號,嚴格禁止多用戶共享同一個用戶名的情況。那么下面讓我們檢查—下系統中已經存在的賬號。
用戶的基本信息被存儲在/etc/passwd文件中。這個文件的每一行代表一個用戶使用cat命令查看文件內容如果存在多余或過期賬戶,在確認賬戶狀態后應將其刪除。如果僅存在root -個賬戶則應按不同需求建立不同賬戶,避免用戶名共享。
1.2.是否每個用戶都配置7口令
在etc目錄下,有passwd和shadow兩個文件,這是Linux中用于存儲用戶信息的文件。在早期的版本中,passwd是管理用戶的唯一場所,包括用戶名和口令在內的所有信息都記錄在這個文件中。出于安全考慮,現在用戶口令被轉存至shadow文件中,Shadow文件僅對root用戶可讀。使用cat命令查看文件內容,該文件第一個字段為用戶名,第二個字段為口令,口令采用加密存儲,如果該字段顯示“!!”則表示該用戶名口令為空,需要為該用戶添加口令。
1.3.應該怎么配置口令
為了減小口令被暴力破解的可能性,建議口令長度大于6位,由大小寫字母、數字和特殊字符組成,口令應定期進行更換。為了增加執行力度,可通過配置文件進行強制要求。配置方法如下:
/etc/login.defs,增加以下配置
PASSMAXDAYS99999(用戶的密碼不過期最多的天數);
PASSMIN_DAYSO(密碼修改之間最小的天數);
PASS MIN LEN5(密碼最小長度);
PASS WARN AGE7(密碼過期提醒)。
/etc/pam.d/system-auth,增加以下配置
password
required
pam_cracklib.so retry-3 difok-3minlen-8 ucredit=-l Icredit=-l dcredit=-2
difok-3注:要3個不同字符;
minlen-8(最小密碼長度為8位);
ucredit=-l(最1個大寫字母);
lcredit=-l(最少1個小寫字母);
dcredit=-2(最少2個數字)。
1.4.除口令外是否還需要其它的身份鑒別方式
按照國標及行標要求,等保3級及3級以上的信息系統均應采用兩種或兩種以上的身份鑒別方式,即除用戶名加口令的外還應采取第二種身份鑒別技術。用戶可以根據自身實際情況采用證書、動態口令牌、虹膜等身份鑒別方式,其中動態口令牌使用較為廣泛。
1.5.登錄失敗處理應該怎么配置
不增加登錄失敗處理策略,理論上可以通過暴破方式入侵主機,應采取結束會話、鎖定或自動退出等措施限制口令嘗試次數。/etc/pam.d/system-auth應增加以下配置
auth
required
pam_tally.so onerr-fail deny-3unlocktime=10
deny-3(登錄失敗3次)
unlock_time=10(鎖定10分鐘)
1.6.采用什么樣的遠程管理手段
Linux服務器一般采用telnet和ssh方式進行遠程管理,telnet未對傳輸過程進行加密,鑒權信息等敏感內容可能會被竊聽,顧建議采用ssh的遠程管理方式。加固方法如下:
首先使用chkconfig list lgrep telnet命令查看是否啟用了telnet服務,如果啟用,用則應停用該服務。使用VI編輯/etc/xinetd.d/telnet文件,將“disable=no”改為“disable=yes”,然后重啟計算機。或將telnet安裝包直接刪除,命令行為“#rmp -e telnet server nodeps”。
使用rpm aq| grep ssh查看是否已安裝SSH程序包,如已安裝則應將/etc/ssh/sshd.config文件中“port 22”前的 “#”注釋符去掉,并把22端口在防火墻上開放。
2.審計
在等級保護3級中對審計要求共有7個控制點,其中:
應對系統中的接口服務器、Web服務器、應用服務器、數據庫服務器等重要服務器的操作系統和數據庫進行審計,審計粒度為用戶級。
審計內容應包括重要用戶行為、系統資源的異常使用和重要系統命令的使用及其他與審計相關的信息。
審計記錄至少應包括事件的日期、時間、類型、用戶名、客戶端IP地址、訪問對象、結果等。
三個控制點在linux默認配置的情況下,基本符合要求。
應保護審計進程,避免受到未預期的中斷。
應保護審計記錄,避免受到未預期的刪除、修改或覆蓋等,審計記錄至少保存90天。
應定期對審計記錄進行分析,以便及時發現異常行為。
三個控制點需要對hnux進行額外配置。
2.1.如何保護審計進程
為了避免審計進程被未預期的中斷,需要對審計進程進行守護,應定時掃描audit進程,當檢測到進程中斷后應重啟,并記錄到日志。下為保護進程示例,請讀者參考。
#!/bin/sh
auditdPIDCount-0
1rm -f /auditdrestart.log。
#LOOIJ
while true; do
sleep 5
ech0 1date+”%Y%m%d%H:%M:%S”f>/dev/null2>&1
auditdPIDCount-1ps aux grep 'auditdll grep -v 7grepil grep -v 'kauditdl l we l'
if[ $auditdPIDCount -lt l];then
'/sbin/auditd>/dev/null 2>&1&
ech0 1date+”%Y%m%d%H:%M:%S”f auditd Restart>> /auditdrestart.109
r二
done
#exit
ech0 1date+”%Y%m%d%H:%M:%S”exit>>/auditdrestart.109
exit O
2.2.如何保護審計記錄
審計記錄保存在本機顯然是不安全的,審計記錄可以被人為惡意刪除或因設備故障丟失,在安全事件發生后,沒有日志記錄很難找到事件原因。因此我們需要在系統中單獨搭建日志服務器,將本機日志傳送到日志服務器,在日志服務器中保存。
3.惡意代碼防護
惡意代碼防護包括惡意入侵和病毒,在應用程序部署完成后應及時關閉不必要的服務和端口,安裝病毒查殺軟件,啟用人侵檢測功能,保持系統補丁和病毒庫及時更新。
3.1.是否必須安裝殺毒軟件
安裝殺毒軟件可能會造成系統性能下降,并引發其他位置風險,顧對于核心業務服務器酌情處理,如未安裝則應避免通過USB及光驅等設備直接拷貝文件,茌安全域邊界處應采用防毒墻對惡意代碼進行查殺。如果安裝殺毒軟件則應在系統內部部署惡意代碼升級服務器,通過升級服務器保持客戶端惡意代碼庫的更新。建議系統防病毒網關與殺毒軟件采用不同的惡意代碼庫。
3.2.是否必須對系統補丁進行更新
系統補丁補丁與殺毒軟件類似,系統補丁的更新會產生一定的潛在風險,建議在實驗系統先行部署,如無異常,再進行生產系統部署。
3.3.入侵防護
建議在系統邊界處部署入侵防護設備,對系統的入侵防護進行整體考慮。
4.結束語
因運行應用干差萬別,顧服務器有著各自不同的安全需求,在對其進行安全加固時應從易用性、穩定性等多方面進行綜合考慮,文中的加固方法并不適用于所有服務器,這里僅是起到拋磚引玉的作用,給服務器管理者提供一些安全加固的思路,文中不妥之處請讀者加以指正。
參考文獻
[1]GBIT 222392008信息安全技術信息系統安全等級保護基本要求。