如果你的數據中心里有Linux服務器,或者你使用的其他云服務商的機器,你不能僅僅因為你部署的操作系統就認為它們是安全的。雖說Linux是市場上最安全的操作系統之一,但也不是百分百完美。事實上,該平臺上的攻擊事件一直在上升,隨著Linux的進一步普及,這種攻擊將繼續呈上升趨勢。
當你懷疑你的一臺服務器可能受到攻擊時,你需要對它進行檢查。今天我將向您介紹幾個命令,它們可以幫助你辨別你的服務器是否正受到來自單個IP地址的分布式拒絕服務(DDOS)的攻擊。
讓我們來看看如何判斷你的Linux服務器是不是被攻擊的目標。
首先,你需要一個Linux實例,并且具有sudo權限的帳號。我將在Ubuntu服務器20.04上進行演示。
如何安裝netstat
我們將使用netstat工具來找出當前連接到服務器的IP地址。要在Ubuntu上安裝netstat,你需要安裝net-tools,如下命令。
sudo apt-get install net-tools -y
如果你使用的是centos或基于Red Hat的安裝,netstat應該已經安裝好了。
如何檢查你的服務器負載
我們要做的第一件事是檢查我們的服務器負載。我們將使用的命令將返回邏輯處理器(線程)的數量。在服務器上,這個數字應該是相當低的,但這取決于你有什么運行。當你知道一切正常的時候,你應該確保為這個數字運行一個基線。如果你懷疑有什么事情發生,再次運行線程檢查并進行比較。
grep processor /proc/cpuinfo | wc -l
如果這個數字明顯高于你的基線,可能有問題。
例如,在我的Pop!_OS桌面上,我有16個線程,但在托管云服務商的Ubuntu服務器上, 只有兩個。如果這些數字中的任何一個翻倍,可能就正在受到DDOS攻擊。
如何檢查你的網絡負載
接下來我們要檢查我們的網絡負載。有很多工具可以做到這一點,但我選擇nload。要安裝nload,請發布命令。
sudo apt-get install nload -y.
sudo dnf install nload -y
要運行該工具,只需發出命令。
nload
你應該可以看到一個相當正常的進出網絡負載(圖A)。
如果該負載比你認為應該的負載高得多,你可能受到了攻擊。
如何找出連接到你的服務器的IP地址?
接下來你要做的是找出連接到你的服務器的IP地址。為此,我們將使用netstat。
netstat -ntu|awk ‘{print $5}’|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
上面命令的輸出將列出每個連接到服務器的IP地址,以及每個IP地址的連接多少個實例。
一定要仔細查看這個列表,找到異常的IP地址,然后可以用命令禁止這個IP地址。
sudo route add ADDRESS reject
其中ADDRESS是異常的IP地址。
此時,返回并重新檢查線程,連接的IP地址和網絡負載,以查看是否減輕了DDOS攻擊。如果是這樣,該是時候報告可疑的IP地址,并完全禁止其訪問自己的網絡。