女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何緩解DDoS(分布式拒絕服務(wù))導(dǎo)致的性能下降

馬哥Linux運(yùn)維 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2022-04-15 08:45 ? 次閱讀

在我的上一篇文章談到了如何使用tcpdumpwireshark,并帶您了解了幾個(gè)用例。今天我們來(lái)看看另一個(gè)常見(jiàn)的問(wèn)題,如何緩解 DDoS(分布式拒絕服務(wù))導(dǎo)致的性能下降。

什么是 DDoS?

DDoS 的前身是 DoS(Denial of Service),即拒絕服務(wù)攻擊,是指利用大量合理請(qǐng)求占用過(guò)多目標(biāo)資源,使目標(biāo)服務(wù)無(wú)法響應(yīng)正常的請(qǐng)求.

DDoS(Distributed Denial of Service)采用基于 DoS 的分布式架構(gòu),利用多臺(tái)主機(jī)同時(shí)攻擊目標(biāo)主機(jī)。這樣,即使目標(biāo)服務(wù)部署了網(wǎng)絡(luò)防御設(shè)備,仍然無(wú)法應(yīng)對(duì)大量的網(wǎng)絡(luò)請(qǐng)求。

從攻擊原理來(lái)看,DDoS 可分為以下幾種。

  • 用盡帶寬:無(wú)論是服務(wù)器還是路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備,帶寬都有一個(gè)固定的上限。當(dāng)帶寬耗盡時(shí),會(huì)出現(xiàn)網(wǎng)絡(luò)擁塞,無(wú)法傳輸其他正常的網(wǎng)絡(luò)數(shù)據(jù)包。
  • 耗盡系統(tǒng)資源:網(wǎng)絡(luò)服務(wù)的正常運(yùn)行需要一定的系統(tǒng)資源,如CPU、內(nèi)存等物理資源,以及連接表等軟件資源。一旦資源耗盡,系統(tǒng)將無(wú)法處理其他正常的網(wǎng)絡(luò)連接。
  • 耗盡應(yīng)用資源:應(yīng)用程序的運(yùn)行通常還需要與其他資源或系統(tǒng)進(jìn)行交互。如果應(yīng)用程序一直忙于處理無(wú)效請(qǐng)求,也會(huì)導(dǎo)致正常請(qǐng)求的處理速度變慢,甚至沒(méi)有響應(yīng)。

無(wú)論哪種類型的 DDoS,危害都是巨大的。那么,如何發(fā)現(xiàn)系統(tǒng)遭受了 DDoS 攻擊,如何應(yīng)對(duì)這種攻擊呢?讓我?guī)私庖粋€(gè)現(xiàn)實(shí)生活中的用例。

案例準(zhǔn)備

您需要遵循:

  • 3 臺(tái) Linux 主機(jī):應(yīng)用程序、攻擊者、客戶端

  • 預(yù)安裝dockersarhping3tcpdumpcurl

應(yīng)用服務(wù)器

讓我們?cè)趹?yīng)用主機(jī)上啟動(dòng)一個(gè)簡(jiǎn)單的nginx服務(wù):

[root@app~]#dockerrun-itd--name=nginx--network=hostnginx
a8b3685d5eef0ffa2dead081b88d50d777db04bedbdb77ba886ca89b4bb690d2
[root@app~]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
a8b3685d5eefnginx"/docker-entrypoint.…"24secondsagoUp21secondsnginx

客戶端

然后,在客戶端主機(jī)中,使用curl訪問(wèn) Nginx 正在監(jiān)聽(tīng)的端口,并確認(rèn) Nginx 已經(jīng)正常啟動(dòng):

[root@client~]#curl-s-w'Httpcode:%{http_code}
Totaltime:%{time_total}s
'-o/dev/nullhttp://172.31.88.139
Httpcode:200
Totaltime:0.002437s

從這里可以看出,正常情況下,我們?cè)L問(wèn) Nginx 只需要 2ms(0.002s)。

攻擊者

現(xiàn)在,讓我們從攻擊者主機(jī)那里運(yùn)行hping3命令來(lái)模擬 Dos 攻擊:

#-Smeanssetsyn,-pmeansport80
#-iu10sendapacketframeevery10m-seconds
$hping3-S-p80-iu10--flood192.168.0.30
HPING172.31.88.139(eth0172.31.88.139):Sset,40headers+0databytes
hpinginfloodmode,noreplieswillbeshown

緩解攻擊

現(xiàn)在讓我們回到客戶端主機(jī),再次嘗試curl命令:

[root@client~]#curl-s-w'Httpcode:%{http_code}
Totaltime:%{time_total}s
'-o/dev/nullhttp://172.31.88.139
Httpcode:000
Totaltime:10.001s
curl:(28)Connectiontimedoutafter10000milliseconds

這次普通客戶端的連接超時(shí),其并沒(méi)有收到 Nginx 服務(wù)的響應(yīng)。

這里發(fā)生了什么事呢?讓我們回到主機(jī)應(yīng)用程序,并檢查當(dāng)前的網(wǎng)絡(luò)狀態(tài):

[root@app~]#sar-nDEV1
0849IFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s%ifutil
0850docker00.000.000.000.000.000.000.000.00
0850eth022274.00629.001174.6437.780.000.000.000.02
0850lo0.000.000.000.000.000.000.000.00

從這次sar的輸出可以看出,網(wǎng)絡(luò)接收到的 PPS 已經(jīng)達(dá)到 2 萬(wàn)多,但是 BPS 只有 1174kB。因此,可以計(jì)算每個(gè)包的大小只有54B()。

包大小不算大,但這是個(gè)什么樣的包呢?讓我們使用tcpdump來(lái)捕獲:

[root@app~]#tcpdump-ieth0-ntcpport80
0948.287047IP172.31.82.28.27095>172.31.88.139:Flags[S],seq1288268370,win512,length0
0948.287050IP172.31.82.28.27131>172.31.88.139:Flags[S],seq2084255254,win512,length0
0948.287052IP172.31.82.28.27116>172.31.88.139:Flags[S],seq677393791,win512,length0
0948.287055IP172.31.82.28.27141>172.31.88.139:Flags[S],seq1276451587,win512,length0
0948.287068IP172.31.82.28.27154>172.31.88.139:Flags[S],seq1851495339,win512,length0
...

在該輸出中,Flags [S]表示這是一個(gè) SYN 數(shù)據(jù)包。而大量的 SYN 數(shù)據(jù)包表明這是一次 SYN Flood 攻擊。如果我們用wireshark來(lái)觀察,可以更加直觀地看到 SYN Flood 的過(guò)程:

f6784fd6-bc15-11ec-aa7f-dac502259ad0.png

事實(shí)上,SYN Flood 是互聯(lián)網(wǎng)上最經(jīng)典的 DDoS 攻擊。從上圖也可以看出它的原理:

  • 客戶端構(gòu)造大量 SYN 包,請(qǐng)求建立 TCP 連接;
  • 服務(wù)器收到包后,會(huì)向源 IP 發(fā)送一個(gè) SYN+ACK 包,并等待三次握手的最后一個(gè) ACK 包,直到鏈接超時(shí)。

這種等待狀態(tài)的 TCP 連接通常也稱為半開(kāi)連接(Half-Open Connection)。由于連接表(Connection Table)的大小是有限的,而大量的半開(kāi)連接會(huì)導(dǎo)致連接表快速填滿,從而無(wú)法建立新的 TCP 連接。

從下面的 TCP 狀態(tài)圖可以看到,此時(shí)服務(wù)器端的 TCP 連接會(huì)處于SYN_RECEIVED狀態(tài):

f6892086-bc15-11ec-aa7f-dac502259ad0.png

我們可以使用netstat來(lái)查看所有連接的狀態(tài),但需要注意的是SYN_REVEIVED的狀態(tài)通常縮寫(xiě)為SYN_RECV

[root@app~]#netstat-n-p|grepSYN_REC
tcp00172.31.88.139:80172.31.82.28:12503SYN_RECV-
tcp00172.31.88.139:80172.31.82.28:13502SYN_RECV-
tcp00172.31.88.139:80172.31.82.28:15256SYN_RECV-
tcp00172.31.88.139:80172.31.82.28:18117SYN_RECV-
...

從結(jié)果中可以發(fā)現(xiàn),存在大量的SYN_RECV狀態(tài)的連接,源 IP 地址為172.31.82.28。現(xiàn)在,讓我們統(tǒng)計(jì)一下正處于SYN_RECV狀態(tài)的連接數(shù):

[root@app~]#netstat-n-p|grepSYN_REC|wc-l
193

找出源 IP 后,只需丟棄相關(guān)數(shù)據(jù)包即可解決 SYN 攻擊的問(wèn)題。此時(shí),iptables可以幫你完成這個(gè)任務(wù):(注意:Serban 在評(píng)論中建議“在這種情況下,DROP比可能REJECT更好”)

[root@app~]#iptables-IINPUT-s172.31.82.28-ptcp-jREJECT

執(zhí)行上述命令后,讓我們?cè)俅螐目蛻舳酥鳈C(jī)嘗試curl

$curl-w'Httpcode:%{http_code}
Totaltime:%{time_total}s
'-o/dev/null--connect-timeout10http://172.31.88.139
Httpcode:200
Totaltime:1.572171s

但一般來(lái)說(shuō),SYN Flood 攻擊中的源 IP 是不固定的(例如,您可以通過(guò)將--rand-source選項(xiàng)添加到hping3命令來(lái)隨機(jī)化源 IP)。此時(shí),剛才的方法并不適用。

幸運(yùn)的是,我們還有許多其他方法可以達(dá)到類似的目的。例如,我們可以通過(guò)兩種方式限制同步數(shù)據(jù)包的速率:

#Limitthenumberofsynconcurrencyto1persecond
$iptables-AINPUT-ptcp--syn-mlimit--limit1/s-jACCEPT
#LimitthenumberofnewlyestablishedconnectionsforasingleIPin60secondsto10
$iptables-IINPUT-ptcp--dport80--syn-mrecent--nameSYN_FLOOD--update--seconds60--hitcount10-jREJECT

到目前為止,我們已經(jīng)初步限制了 SYN Flood 攻擊。但這還不夠,因?yàn)槲覀兊陌咐皇菃我坏墓粼础?/p>

如果多臺(tái)機(jī)器同時(shí)發(fā)送 SYN Flood,則該方法可能直接失效。因?yàn)槟赡軣o(wú)法通過(guò) SSH 連接到機(jī)器(SSH 也是基于 TCP 的),更不用說(shuō)執(zhí)行上面的那些排查命令了。

TCP 優(yōu)化

為了緩解多臺(tái)機(jī)器的 SYN Flood 攻擊,我們可以將半開(kāi)連接容量從默認(rèn)的 256 增加到 1024:

$sysctlnet.ipv4.tcp_max_syn_backlog
net.ipv4.tcp_max_syn_backlog=256
$sysctl-wnet.ipv4.tcp_max_syn_backlog=1024net.ipv4.tcp_max_syn_backlog=1024

另外,每當(dāng)連接狀態(tài)為 SYN_RECV 的連接時(shí),如果連接失敗,內(nèi)核會(huì)自動(dòng)重試,默認(rèn)重試次數(shù)為 5 次。您可以通過(guò)執(zhí)行以下命令將其減少到 1 次:

$sysctl-wnet.ipv4.tcp_synack_retries=1
net.ipv4.tcp_synack_retries=1

此外,TCP SYN Cookies 也是一種特殊的防御 SYN Flood 攻擊的機(jī)制。SYN Cookies 根據(jù)連接信息(包括源地址、源端口、目的地址、目的端口等)和加密種子(如系統(tǒng)啟動(dòng)時(shí)間)計(jì)算哈希值(SHA1)。該哈希值稱為 cookie。啟用 SYN Cookies 后,無(wú)需再保持半開(kāi)連接狀態(tài),同時(shí)半開(kāi)連接的數(shù)量也將沒(méi)有限制。

$sysctl-wnet.ipv4.tcp_syncookies=1
net.ipv4.tcp_syncookies=1

需要注意的是,上面sysctl命令所修改的配置是臨時(shí)的,重啟后將會(huì)丟失。您可以通過(guò)將它們添加到/etc/sysctl.conf文件中使其持久化。例如:

$cat/etc/sysctl.conf
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_max_syn_backlog=1024
$sysctl-p

結(jié)論

今天,我們談到了在分布式拒絕服務(wù) (DDoS) 情況下的緩解措施。DDoS 利用大量偽造請(qǐng)求,使目標(biāo)服務(wù)消耗大量資源來(lái)處理這些無(wú)效的請(qǐng)求,進(jìn)而無(wú)法正常響應(yīng)正常用戶請(qǐng)求。

由于 DDoS 分布的流量大和難以追蹤等特點(diǎn),目前沒(méi)有辦法完全防御 DDoS 帶來(lái)的問(wèn)題,因此只能緩解其造成的影響。

原文標(biāo)題:如何在 Linux 上模擬和緩解 DDoS 攻擊

文章出處:【微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11462

    瀏覽量

    212803
  • DDoS
    +關(guān)注

    關(guān)注

    3

    文章

    178

    瀏覽量

    23460
  • 拒絕服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    8048
  • DDoS攻擊
    +關(guān)注

    關(guān)注

    2

    文章

    73

    瀏覽量

    5969

原文標(biāo)題:如何在 Linux 上模擬和緩解 DDoS 攻擊

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ddos分布式拒絕服務(wù)攻擊真的無(wú)解嗎

    云計(jì)算DDoS服務(wù)DoS
    小凡
    發(fā)布于 :2022年09月09日 08:39:42

    SCDN的抗CC攻擊和抗DDoS攻擊防護(hù)是什么?

    300Gbps。另可定制最高達(dá)600Gbps防護(hù)。CC攻擊是什么?CC攻擊是 DDOS分布式拒絕服務(wù)) 的一種,DDoS是針對(duì)IP的攻擊,而CC攻擊的是網(wǎng)頁(yè)。CC攻擊來(lái)的IP都是真實(shí)
    發(fā)表于 01-05 14:45

    基于可信度的App-DDoS攻擊的分布式流量控制模型

    針對(duì)應(yīng)用層分布式拒絕服務(wù)(application layer DDoS,簡(jiǎn)稱App-DDoS)攻擊的特點(diǎn),結(jié)合流量控制技術(shù),應(yīng)用可信度的概念和分布式
    發(fā)表于 05-27 16:23 ?17次下載

    TCP SYN分布式拒絕服務(wù)攻擊分析

    分布式拒絕服務(wù)DDoS)攻擊是當(dāng)前影響因特網(wǎng)正常工作的一個(gè)嚴(yán)重的問(wèn)題,出現(xiàn)的攻擊將會(huì)阻止合法的用戶使用其所需要的資源。本研究將借助于SSFNet(Scalable Simulation Framework)模擬軟
    發(fā)表于 07-11 09:01 ?12次下載

    防火墻術(shù)語(yǔ)-DDoS

    防火墻術(shù)語(yǔ)-DDoS  英文原義:Distribution Denial of service 中文釋義:“分布式拒絕服務(wù)”攻擊
    發(fā)表于 02-24 11:02 ?849次閱讀

    DDOS攻擊是什么_ddos攻擊攻擊是無(wú)解的嗎

    DDOS攻擊及分布式拒絕服務(wù)攻擊分布式拒絕服務(wù)攻擊指借助于客戶/服務(wù)器技術(shù),將多個(gè)計(jì)算機(jī)聯(lián)合起來(lái)
    發(fā)表于 12-28 10:27 ?4108次閱讀
    <b class='flag-5'>DDOS</b>攻擊是什么_<b class='flag-5'>ddos</b>攻擊攻擊是無(wú)解的嗎

    淺談ddos攻擊的原理_ddos攻擊犯法嗎

    DoS是Denial of Service的簡(jiǎn)寫(xiě)就是拒絕服務(wù),而DDoS就是Distributed Denial of Service的簡(jiǎn)寫(xiě)就是分布式拒絕服務(wù),而DRDoS就是Dist
    發(fā)表于 12-28 11:44 ?5099次閱讀

    DDoS分布式拒絕服務(wù)攻擊的威脅性越來(lái)越大

    DDoS分布式拒絕服務(wù)攻擊,已經(jīng)變得越來(lái)越常見(jiàn),越來(lái)越強(qiáng)大,很多攻擊者都在使用物聯(lián)網(wǎng)設(shè)備, 來(lái)建立更多的連接和帶寬,以及5G網(wǎng)絡(luò)跟云應(yīng)用的發(fā)展, 隨著暗網(wǎng)和加密貨幣的出現(xiàn)和匿名性,越來(lái)越多的人從暗網(wǎng)中發(fā)動(dòng)
    發(fā)表于 11-29 14:39 ?1105次閱讀

    如何防范分布式拒絕服務(wù)攻擊DDoS

    加密貨幣交易所Bitfinex在2月28日發(fā)推文稱疑似遭到分布式拒絕服務(wù)攻擊(DDoS),正在就此事調(diào)查。在此期間Bitfinex中斷交易服務(wù),頁(yè)面處于維護(hù)狀態(tài)。
    發(fā)表于 03-02 13:46 ?1649次閱讀
    如何防范<b class='flag-5'>分布式</b><b class='flag-5'>拒絕服務(wù)</b>攻擊<b class='flag-5'>DDoS</b>

    保障服務(wù)器安全網(wǎng)絡(luò)安全,如何防御ddos攻擊

    DDoS也就是分布式拒絕服務(wù)攻擊。它使用與普通的拒絕服務(wù)攻擊同樣的方法,但是發(fā)起攻擊的源是多個(gè)。
    發(fā)表于 03-13 11:08 ?821次閱讀

    拒絕服務(wù)攻擊的原理和解決方式

    拒絕服務(wù)攻擊分為兩種,DDOS攻擊和DOS攻擊。DDOS攻擊也稱為分布式拒絕服務(wù)攻擊,英文全稱Distributed denial of s
    的頭像 發(fā)表于 07-07 11:18 ?1.1w次閱讀

    DDoS攻擊正變得越來(lái)越危險(xiǎn),并將在未來(lái)幾年內(nèi)加劇。

    諸如分布式拒絕服務(wù)DDoS)攻擊之類的安全威脅會(huì)破壞各種規(guī)模的企業(yè), 通過(guò)DDoS攻擊,對(duì)手希望通過(guò)大量無(wú)用的流量來(lái)破壞受害者的服務(wù)。盡管
    的頭像 發(fā)表于 10-20 15:10 ?1977次閱讀

    高防服務(wù)器是什么,DDoS/CC攻擊又是什么

    惡意程序,對(duì)一個(gè)或多個(gè)目標(biāo)發(fā)起DDoS攻擊,消耗目標(biāo)服務(wù)性能或網(wǎng)絡(luò)帶寬,從而造成服務(wù)器無(wú)法正常地提供服務(wù)。可以使很多的計(jì)算機(jī)在同一時(shí)間遭受
    的頭像 發(fā)表于 02-23 11:08 ?1872次閱讀

    如何在Linux上模擬和緩解DDoS攻擊

    在我的上一篇文章談到了如何使用 tcpdump 和 wireshark,并帶您了解了幾個(gè)用例。今天我們來(lái)看看另一個(gè)常見(jiàn)的問(wèn)題,如何緩解 DDoS分布式拒絕服務(wù)
    的頭像 發(fā)表于 02-16 09:22 ?1417次閱讀

    DDoS緩解的基本工作原理和關(guān)鍵功能

    什么是DDoS緩解DDoS緩解是指成功保護(hù)目標(biāo)服務(wù)器或網(wǎng)絡(luò)以抵御分布式
    的頭像 發(fā)表于 06-30 10:07 ?779次閱讀
    <b class='flag-5'>DDoS</b><b class='flag-5'>緩解</b>的基本工作原理和關(guān)鍵功能