檢查 DDoS 網(wǎng)站:什么是 DDoS?網(wǎng)站 DDoS 或拒絕服務(wù)攻擊是一種使用一個(gè)或多個(gè) IP 地址的協(xié)同攻擊,旨在通過使其服務(wù)器無法訪問來削弱網(wǎng)站。這是通過使服務(wù)器資源過載并耗盡所有可用連接和帶寬來完成的。就像開車一樣,如果車流量太大,你從 A 點(diǎn)到 B 點(diǎn)的旅行時(shí)間就會(huì)變慢。
通過用超出其處理能力的連接淹沒服務(wù)器,服務(wù)器變得過載,無法處理合法請(qǐng)求。即使是大型服務(wù)器也無法處理遭受 DDoS 攻擊的網(wǎng)站所能帶來的連接數(shù)。
雖然實(shí)施 DDoS 攻擊的方式有很多種,從 HTTP 泛洪到慢速長(zhǎng)連接,但絕大多數(shù)都需要直接連接到您的服務(wù)器。其中很多。好消息是,由于這些連接是活躍的,您很可能會(huì)看到它們正在建立。使用幾個(gè)簡(jiǎn)單的命令,您不僅可以確定網(wǎng)站是否正在遭受 DDoS 攻擊,還可以獲得幫助緩解這些攻擊所需的信息。
如果您擔(dān)心您的服務(wù)器可能被黑客入侵,您的網(wǎng)站可能受到 DDoS 攻擊,您需要做的第一件事就是查看您服務(wù)器的負(fù)載。
可接受的負(fù)載是多少?這取決于您的 CPU 資源或可用線程。通常,規(guī)則是每個(gè)線程一分。
要確定服務(wù)器的當(dāng)前負(fù)載,可以使用 grep /proc /cpuinfo | . 命令 wc -l 命令,將返回邏輯處理器(線程)的數(shù)量。在 DDoS 攻擊期間,您可能會(huì)看到負(fù)載是您應(yīng)有的最大負(fù)載的兩倍、三倍甚至更高。
首先,使用下面的兩個(gè)命令返回服務(wù)器正常運(yùn)行時(shí)間和負(fù)載。
負(fù)載平均值顯示以下時(shí)間段的負(fù)載:1 分鐘平均值、5 分鐘平均值和 15 分鐘平均值。在這種情況下,大于 7 的平均負(fù)載可能是一個(gè)問題。
與上面的示例不同,有時(shí)您的服務(wù)器會(huì)通過后端連接(如 IPMI)響應(yīng)良好,但在通過公共接口連接時(shí)仍然會(huì)很慢。要確定是否屬于這種情況,您需要檢查您的網(wǎng)絡(luò)流量。
這可以使用多種工具之一來完成,包括 nload、bmon、iftop、vnstat 和 ifstat。您的選擇將取決于您的操作系統(tǒng),但所有這些工具都可以通過您的包管理器(apt、yum 等)安裝。
由于大多數(shù) DDoS 攻擊都需要連接到您的服務(wù)器,因此您可以檢查并查看有多少 IP 地址以及哪些 IP 地址同時(shí)連接到您的服務(wù)器。
這可以使用 netstat 來確定,netstat 是一個(gè)用于提供各種詳細(xì)信息的命令。但是,在這種情況下,我們只對(duì)建立連接的特定 IP、IP 的數(shù)量以及它們所屬的子網(wǎng)感興趣。要開始,請(qǐng)?jiān)诮K端中鍵入以下命令:
netstat -ntu|awk '{print $5}' |cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
此命令將返回降序排列哪些 IP 連接到您的服務(wù)器的列表以及每個(gè) IP 有多少個(gè)連接。
結(jié)果還可能包含虛擬數(shù)據(jù),這些數(shù)據(jù)將顯示為非 IP 信息并且可能會(huì)被忽略。
查看結(jié)果,您應(yīng)該會(huì)看到每個(gè) IP 列出的連接數(shù)從 1 到大約 50 個(gè)不等。這對(duì)于正常流量來說很常見。但是,如果您看到某些 IP 具有超過 100 個(gè)連接,則需要進(jìn)行調(diào)查。
您可以查看已知 IP、一個(gè)或多個(gè)服務(wù)器私有 IP,甚至您自己的多個(gè)連接私有 IP。在大多數(shù)情況下,它們可以忽略,因?yàn)樗鼈內(nèi)匀缓苷!.?dāng)您看到具有數(shù)百或數(shù)千個(gè)連接的單個(gè)未知 IP 時(shí),您應(yīng)該擔(dān)心,因?yàn)檫@可能是攻擊的跡象。
一旦您檢測(cè)到哪些 IP 正在攻擊您的服務(wù)器,就可以通過一些簡(jiǎn)單的命令來阻止這些特定的 IP。
要開始使用,請(qǐng)使用以下命令,將“ipaddress”替換為您要阻止的 IP 地址。
在服務(wù)器上阻止特定 IP 后,您可以使用以下命令交叉檢查該 IP 是否已成功阻止:
您還可以通過輸入以下命令使用 iptables 突出顯示服務(wù)器上的 IP 地址:
iptables -A INPUT 1 -s IPADDRESS - j DROP/REJECT
service iptables restart
service iptables save
輸入這一系列命令后,您需要終止所有 httpd 連接并重新啟動(dòng) httpd 服務(wù)。這可以通過鍵入以下內(nèi)容來完成:
killall -KILL httpd
service httpd startssl
如果多個(gè)未知 IP 地址正在建立大量連接,則可以對(duì)所有被濫用的 IP 重復(fù)這些過程中的任何一個(gè)。
雖然可以很容易地診斷和修復(fù)來自生成多個(gè)連接的單個(gè) IP 的拒絕服務(wù)攻擊,但防止網(wǎng)站受到 DDoS 攻擊變得更加復(fù)雜,因?yàn)楣粽呤褂酶俚倪B接,更多的連接超過更多的攻擊 IP。
在這些情況下,即使網(wǎng)站受到 DDoS 攻擊,您也會(huì)看到更少的個(gè)人連接。隨著物聯(lián)網(wǎng) (IoT) 的興起,此類攻擊變得越來越普遍。通過滲透和使用具有 Internet 連接的“智能”設(shè)備、設(shè)備和工具,惡意行為者建立了一個(gè)可用 IP 網(wǎng)絡(luò),稱為僵尸網(wǎng)絡(luò),當(dāng)網(wǎng)站由 DDoS 協(xié)調(diào)針對(duì)特定目標(biāo)時(shí),能夠部署在攻擊中。
那么,如果您看到大量未知 IP 僅建立單一連接,您該怎么辦?在這種情況下,很難確定這是有機(jī)流量還是協(xié)同攻擊。
首先,您需要確定這些連接是否來自公共子網(wǎng):公共是相同的/16 或 /24。您可以使用接下來的兩個(gè)命令列出包含 IP 的子網(wǎng)。已連接以及有多少 IP每個(gè)子網(wǎng)。
要從同一 /16 子網(wǎng) (xxx.xxx.0.0) 中查找 IP,請(qǐng)使用:
netstat -ntu|awk '{print $5}' |cut -d: -f1 -s |cut -f1, 2 - d '.' |sed 's/$/.0.0/' |sort|uniq -c|sort -nk1 -r
輸入時(shí),此命令將顯示以相同的兩個(gè)八位字節(jié)開頭的任何 IP:即。192.168.xxx.xxx。
要從同一 /24 子網(wǎng) (xxx.xxx.xxx.0) 中查找 IP,請(qǐng)使用:
netstat -ntu|awk '{print $5}' |cut -d: -f1 -s |cut -f1, 2 , 3 -d '.' |sed 's/$/.0/' |sort|uniq -c|sort -nk1 -r
輸入時(shí),此命令將顯示以相同的三個(gè)八位字節(jié)開頭的任何 IP:即。192.168.1.xxx。
當(dāng)您的網(wǎng)站遭受多 IP DDoS 攻擊時(shí),一旦確定您是否真的受到攻擊,緩解它的步驟與上面使用的針對(duì)單個(gè) IP 攻擊的步驟相同,只是復(fù)制到多個(gè) IP。
這些技術(shù)只是一些可用于檢查可能的攻擊的工具。雖然可以使用更高級(jí)的工具,但這些方法可以提供快速簡(jiǎn)便的結(jié)果來確定您是否正在遭受 DDoS 攻擊。
即使沒有被黑客攻擊,這些命令提供的信息也很有用,熟悉它們可以幫助增強(qiáng)任何管理員的工具。
與 DDoS 攻擊相關(guān)的風(fēng)險(xiǎn)和成本比以往任何時(shí)候都大。不幸的是,隨著僵尸網(wǎng)絡(luò)的泛濫,即使驗(yàn)證了 DDoS 攻擊,手動(dòng)阻止成百上千個(gè)攻擊 IP 也是極其困難的。在這些情況下,攻擊一旦開始就很難停止。
出于這個(gè)原因,最好在 DDoS 攻擊發(fā)生之前制定一個(gè)計(jì)劃來應(yīng)對(duì)它們。除了這里提到的方法之外,您可能還想考慮訂閱在線提供的各種 DDoS 保護(hù)服務(wù)之一。熱門選項(xiàng)包括 Akamai、Verisign 和 Radware。