預防云主機被攻擊的措施:1. 登錄系統查詢用戶是否異常,判斷用戶是否為非法用戶。2. 鎖定不正常或不熟悉的用戶,把不正常的用戶踢出網絡。3. 查詢系統事件記錄,查看和關閉異常處理,審查文件系統軟件完整性。
具體內容如下:
1、登錄系統查詢用戶是否異常
基于 root用戶登錄,隨后執行“w”命令可以列出顯示所有已登錄系統軟件的用戶。之后,可以根據這些信息檢查是否存在異常用戶,或者登錄了一個陌生用戶,另外還可以根據用戶名及其登錄的源地址和已經運行的過程判斷用戶是否為非法用戶。
2、鎖定不正常或不熟悉的用戶
當發現一個異常或不熟悉的用戶時,需要立即鎖定它,例如在執行了前面的“w”命令之后,發現 nobody用戶應該是一個異常用戶(因為 nobody在默認情況下是沒有登錄管理權限的),所以首先鎖定這個用戶,并執行以下操作:
[root@server ~]# passwd -l nobody
鎖機之后,這個用戶實際上還是有可能在線的,為了徹底驅逐這個用戶,所以還要把這個用戶強行拉下線,按照上邊的“w”命令的輸出,就可以得到這個用戶登錄進行的 pid值,具體操作如下:
[root@server ~]# ps -ef|grep @pts/3
531 6051 6049 0 19:23 ? 00:00:00 sshd: nobody@pts/3
[root@server ~]# kill -9 6051
這樣會把不正常的用戶 nobody踢出網絡。如果這個用戶試圖再次登錄很久,可能已經無法登錄。
3、查詢基于last命令的用戶登錄事件
last命令記錄整個用戶登錄到系統的系統日志,可以用來搜索未授權用戶的登錄事件,而 last命令的輸出結果來自于/var/log/wtmp文件,而且一般有攻擊經驗的攻擊者會刪除/var/log/wtmp來消除自己的行跡,這樣只要做了就會有行跡,因此文件中仍然會暴露行跡。
在搜索攻擊源時,查詢事件日志是一種最好的方法,可以查找的事件日志包括/var/log/messages、/var/log/secure等,這兩個系統日志文件可以統計軟件的運行情況并遠程控制用戶的登錄,還可以查詢每個用戶文件目錄下的.bash_history文件,特別是/root文件目錄下的.bash_history文件,它記錄了用戶執行的所有歷史時間命令。有很多命令可以檢查異常進程,如 ps, top,等等,但有時只知道進程的名稱,無法知道路徑,首先根據 pidof命令搜索運行中的進程 PID,然后進入運行內存文件目錄,查詢匹配 PID文件目錄下 exe文件的信息內容。如此一來,就找到了實現過程細節匹配的過程。假設還具有查詢文件的句柄,則可以查詢下列文件目錄:
[root@server ~]# ls -al /proc/13276/fd有些情況下,網絡攻擊的程序隱藏得很深,如 rootkits木馬程序,在這種情況下, ps、 top、 netstat等命令很可能早就被替換掉了,如果再根據系統軟件本身的命令檢查異常進程,這將變得越來越不可靠,此時,就必須借助第三方的專用工具檢查系統軟件異常程序。對文件特性進行檢查是驗證文件系統軟件完整性的一種簡單而又最直觀的方法,例如,檢查網絡云主機上/bin/ls文件的大小是否與所有正常系統軟件上這個文件的大小相同,驗證文件是否被替換,但是這種方法比較低級等等。這個時候就可以使用 Linux下的 rpm這個專用工具進行認證了,假設在輸出結果中出現了“M”標識,那么相匹配的文件很可能早就被偽造或替換了,此時就可以通過卸載這個 rpm包來消除受到攻擊的文件了。但這個命令有一個限制,即只能檢查根據 rpm軟件包方法安裝的所有文件,而對于基于非 rpm軟件包方法安裝的文件則無能為力。此外,假設 rpm專用工具也遭到替換,則該方法不適用,此時可以從所有正常系統軟件拷貝一個 rpm專用工具以進行檢查。