1. 程式人生 > >linux如何判斷伺服器是否被入侵

linux如何判斷伺服器是否被入侵

實驗幾個步驟,借鑑網友資料,分享給網友。非常感謝網上提供資料幫助的網友。

1-當時誰登入。

W (檢視以往登入資訊,注意SHELL視窗最大化,才不會報錯:68 column is too narrow)

這裡寫圖片描述
[拓展使用#whois IP地址(追查IP所註冊的組織的所有資訊,當然包括國家資訊)]
1、Linux 下 whois 命令列的安裝
CentOS 下安裝命令如下:
yum install -y jwhois
Debian/Ubuntu 下安裝命令如下:
apt-get install -y whois
2、Linux 下 whois 命令列的配置檔案
這裡以 CentOS 6.6 x64 為例,預設的配置檔案是 /etc/jwhois.conf ,預設支援頂級通用域名以及國別域名,如果要查詢其他字尾的域名,則要修改此配置檔案。
我們以作者 Github 頁面的最新配置來替換掉該配置檔案。命令如下:
這裡寫圖片描述

替換完成後,我們來查詢一下試試看。比如查詢 com.google,如下圖所示:
這裡寫圖片描述

本例:搜尋IP地址的註冊地:
這裡寫圖片描述

2- 檢視以往誰登入過

last (檢視以往的登入情況,檢視哪些IP地址停留時間過長,留意未授權的IP地址)

登入後歷史記錄會保留在 /var/log/wtmp 檔案中
這裡寫圖片描述

2- 回顧命令歷史

history (顯示他們曾經做過的所有事情,一定留意有沒有wget 或 curl命令下載類似垃圾郵件機器人或者挖礦程式之類的非常規軟體)

命令歷史儲存記錄在 ~/.bash_history 檔案中,攻擊者會刪除內部資訊,如果執行history 命令沒有輸出東西,就要當心了
這裡寫圖片描述

3- 哪些程序在消耗CPU?

top (執行top然後檢視最前面的那幾個程序就瞭解,或者通過losf和strance來看出他們在做什麼事情)

這裡寫圖片描述

例如:
1.#strance –p PID
這裡寫圖片描述
2.#lsof –p PID
(losf缺少依賴包,我的系統裡面找不到指令,這裡不做講解。)

6- 哪些程序在監聽網路連線
攻擊者會安裝一個後門程式專門監聽網路埠接受指令。程序等待期間是不會消耗CPU和寬頻,我通常會讓他們帶上下面這些引數
1. lsof –I
2. netstat –plunt
需要留意listen和established的狀態程序,這些程序要麼正在等待連線,要麼已經連線(ESTABLISHED.)如果遇到不認識的程序,使用strace 和 lsof.
(strace用法:

https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html

7- 終極辦法
關機拔網線 執行#shutdown –h now 或者 systemct1 poweroff.
如果你對自己頗有自信,而你的主機提供商也有提供上游防火牆,那麼你只需要以此建立並啟用下面兩條規則就行了:

☉ 只允許從你的 IP 地址登入 SSH。
☉ 封禁除此之外的任何東西,不僅僅是 SSH,還包括任何埠上的任何協議。
這樣會立即關閉攻擊者的 SSH 會話,而只留下你可以訪問伺服器。

如果你無法訪問上游防火牆,那麼你就需要在伺服器本身建立並啟用這些防火牆策略,然後在防火牆規則起效後使用 kill 命令關閉攻擊者的 SSH 會話。( 譯註:本地防火牆規則 有可能不會阻止已經建立的 SSH 會話,所以保險起見,你需要手工殺死該會話。)

最後還有一種方法,如果支援的話,就是通過諸如序列控制檯之類的帶外連線登入伺服器,然後通過 systemctl stop network.service 停止網路功能。這會關閉所有伺服器上的網路連線,這樣你就可以慢慢的配置那些防火牆規則了。

重奪伺服器的控制權後,也不要以為就萬事大吉了。

不要試著修復這臺伺服器,然後接著用。你永遠不知道攻擊者做過什麼,因此你也永遠無法保證這臺伺服器還是安全的。

最好的方法就是拷貝出所有的資料,然後重灌系統。(譯註:你的程式這時已經不可信了,但是資料一般來說沒問題。)