曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

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

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

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

dyquk4xk2p3d ? 來源:良許Linux ? 2023-02-16 09:22 ? 次閱讀

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

什么是 DDoS?

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

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

從攻擊原理來看,DDoS 可分為以下幾種。

用盡帶寬:無論是服務(wù)器還是路由器、交換機等網(wǎng)絡(luò)設(shè)備,帶寬都有一個固定的上限。當帶寬耗盡時,會出現(xiàn)網(wǎng)絡(luò)擁塞,無法傳輸其他正常的網(wǎng)絡(luò)數(shù)據(jù)包。

耗盡系統(tǒng)資源:網(wǎng)絡(luò)服務(wù)的正常運行需要一定的系統(tǒng)資源,如CPU、內(nèi)存等物理資源,以及連接表等軟件資源。一旦資源耗盡,系統(tǒng)將無法處理其他正常的網(wǎng)絡(luò)連接。

耗盡應(yīng)用資源:應(yīng)用程序的運行通常還需要與其他資源或系統(tǒng)進行交互。如果應(yīng)用程序一直忙于處理無效請求,也會導(dǎo)致正常請求的處理速度變慢,甚至沒有響應(yīng)。

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

案例準備

您需要遵循:

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

預(yù)安裝docker、sar、hping3、tcpdump、curl。

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

讓我們在應(yīng)用主機上啟動一個簡單的nginx服務(wù):

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

客戶端

然后,在客戶端主機中,使用curl訪問 Nginx 正在監(jiān)聽的端口,并確認 Nginx 已經(jī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

從這里可以看出,正常情況下,我們訪問 Nginx 只需要 2ms(0.002s)。

攻擊者

現(xiàn)在,讓我們從攻擊者主機那里運行hping3命令來模擬 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)在讓我們回到客戶端主機,再次嘗試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

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

這里發(fā)生了什么事呢?讓我們回到主機應(yī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)達到 2 萬多,但是 BPS 只有 1174kB。因此,可以計算每個包的大小只有54B()。

包大小不算大,但這是個什么樣的包呢?讓我們使用tcpdump來捕獲:

[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
...

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

af183f14-ad34-11ed-bfe3-dac502259ad0.png

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

客戶端構(gòu)造大量 SYN 包,請求建立 TCP 連接;

服務(wù)器收到包后,會向源 IP 發(fā)送一個 SYN+ACK 包,并等待三次握手的最后一個 ACK 包,直到鏈接超時。

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

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

af28c640-ad34-11ed-bfe3-dac502259ad0.png

我們可以使用netstat來查看所有連接的狀態(tài),但需要注意的是SYN_REVEIVED的狀態(tài)通常縮寫為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?,F(xiàn)在,讓我們統(tǒng)計一下正處于SYN_RECV狀態(tài)的連接數(shù):

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

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

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

執(zhí)行上述命令后,讓我們再次從客戶端主機嘗試curl:

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

但一般來說,SYN Flood 攻擊中的源 IP 是不固定的(例如,您可以通過將--rand-source選項添加到hping3命令來隨機化源 IP)。此時,剛才的方法并不適用。

幸運的是,我們還有許多其他方法可以達到類似的目的。例如,我們可以通過兩種方式限制同步數(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 攻擊。但這還不夠,因為我們的案例只是單一的攻擊源。

如果多臺機器同時發(fā)送 SYN Flood,則該方法可能直接失效。因為您可能無法通過 SSH 連接到機器(SSH 也是基于 TCP 的),更不用說執(zhí)行上面的那些排查命令了。

TCP 優(yōu)化

為了緩解多臺機器的 SYN Flood 攻擊,我們可以將半開連接容量從默認的 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

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

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

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

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

需要注意的是,上面sysctl命令所修改的配置是臨時的,重啟后將會丟失。您可以通過將它們添加到/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 利用大量偽造請求,使目標服務(wù)消耗大量資源來處理這些無效的請求,進而無法正常響應(yīng)正常用戶請求。

由于 DDoS 分布的流量大和難以追蹤等特點,目前沒有辦法完全防御 DDoS 帶來的問題,因此只能緩解其造成的影響。

審核編輯:湯梓紅

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

    關(guān)注

    87

    文章

    11432

    瀏覽量

    212479
  • DDoS
    +關(guān)注

    關(guān)注

    3

    文章

    178

    瀏覽量

    23429
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9619

    瀏覽量

    87086
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3790

    瀏覽量

    115725

原文標題:如何在 Linux 上模擬和緩解 DDoS 攻擊

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

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

    【§網(wǎng)絡(luò)安全技巧§】利用路由器的安全特性控制DDoS攻擊

       DDoS攻擊路由器依然成為新網(wǎng)絡(luò)攻擊模式,那路由器怎么設(shè)置才可以防止遭到DDoS攻擊呢,本文簡要做一個總結(jié)?,F(xiàn)在32位系統(tǒng)的小編再教大
    發(fā)表于 07-17 11:02

    SCDN的抗CC攻擊和抗DDoS攻擊防護是什么?

    300Gbps。另可定制最高達600Gbps防護。CC攻擊是什么?CC攻擊DDOS(分布式拒絕服務(wù)) 的一種,DDoS是針對IP的攻擊,
    發(fā)表于 01-05 14:45

    如果全球的沙子都對你發(fā)起DDoS攻擊,如何破?

    公開的IPv6 DDoS攻擊事件。thc-ipv6、hping等IPv6的DDoS攻擊工具也開始在互聯(lián)網(wǎng)上出現(xiàn)。2018年11月,淘寶、優(yōu)酷的雙十一首次跑在IPv6
    發(fā)表于 11-28 15:07

    DDOS攻擊是什么_ddos攻擊攻擊是無解的嗎

    DDOS攻擊及分布式拒絕服務(wù)攻擊分布式拒絕服務(wù)攻擊指借助于客戶/服務(wù)器技術(shù),將多個計算機聯(lián)合起來作為攻擊平臺,對一個或多個目標發(fā)動
    發(fā)表于 12-28 10:27 ?4093次閱讀
    <b class='flag-5'>DDOS</b><b class='flag-5'>攻擊</b>是什么_<b class='flag-5'>ddos</b><b class='flag-5'>攻擊</b><b class='flag-5'>攻擊</b>是無解的嗎

    ddos攻擊能防住嗎?ddos攻擊預(yù)防方法分析

    就具有很大的破壞性。 ddos攻擊特性是分布式;在攻擊的模式改變了傳統(tǒng)的點對點的攻擊模式,使攻擊方式出現(xiàn)了沒有規(guī)律的情況,而且在進行
    發(fā)表于 12-28 11:38 ?3.4w次閱讀
    <b class='flag-5'>ddos</b><b class='flag-5'>攻擊</b>能防住嗎?<b class='flag-5'>ddos</b><b class='flag-5'>攻擊</b>預(yù)防方法分析

    怎么編寫ddos攻擊ddos攻擊器源碼

    DDOS是的縮寫,即分布式阻斷服務(wù),黑客利用DDOS攻擊器控制多臺機器同時攻擊來達到“妨礙正常使用者使用服務(wù)”的目的,這樣就形成了DDOS
    發(fā)表于 12-28 14:03 ?1.9w次閱讀
    怎么編寫<b class='flag-5'>ddos</b><b class='flag-5'>攻擊</b>器<b class='flag-5'>ddos</b><b class='flag-5'>攻擊</b>器源碼

    什么是DDoS流量攻擊,對于它有什么防御方式

    現(xiàn)在市場上為了防護DDoS流量攻擊,不少企業(yè)推出了DDoS高防服務(wù)器以及單獨的DDoS流量攻擊防護,而這些產(chǎn)品防護的
    發(fā)表于 03-18 11:31 ?3576次閱讀

    DDoS攻擊原理 DDoS攻擊原理及防護措施

    DDoS攻擊原理是什么DDoS攻擊原理及防護措施介紹
    發(fā)表于 10-20 10:29 ?1次下載

    DDoS攻擊原理_DDoS攻擊防護措施介紹

    DDoS攻擊是由DoS攻擊轉(zhuǎn)化的,這項攻擊的原理以及表現(xiàn)形式是怎樣的呢?要如何的進行防御呢?本文中將會有詳細的介紹,需要的朋友不妨閱讀本文進行參考
    發(fā)表于 02-15 16:42 ?0次下載

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

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

    DDOS百科:什么是 DDoS 攻擊及如何防護DDOS攻擊

    ,從而增加攻擊能力。 它還增加了歸因的難度,因為攻擊的真正來源更難識別。DDoS攻擊可能會對在線業(yè)務(wù)造成毀滅性打擊,因此了解它們的工作原理以及如何快速
    的頭像 發(fā)表于 07-19 17:18 ?7647次閱讀
    <b class='flag-5'>DDOS</b>百科:什么是 <b class='flag-5'>DDoS</b> <b class='flag-5'>攻擊</b>及如何防護<b class='flag-5'>DDOS</b><b class='flag-5'>攻擊</b>

    什么是DDOS攻擊?怎么抵抗DDOS攻擊

    隨著Internet互聯(lián)網(wǎng)絡(luò)帶寬的增加和多種DDOS黑客工具的不斷發(fā)布,DDOS拒絕服務(wù)攻擊的實施越來越容易,DDOS攻擊事件正在成上升趨勢
    的頭像 發(fā)表于 07-31 17:39 ?1459次閱讀
    什么是<b class='flag-5'>DDOS</b><b class='flag-5'>攻擊</b>?怎么抵抗<b class='flag-5'>DDOS</b><b class='flag-5'>攻擊</b>

    什么是 DDoS 攻擊及如何防護DDOS攻擊

    什么是DDoS攻擊?當多臺機器一起攻擊一個目標,通過大量互聯(lián)網(wǎng)流量淹沒目標或其周圍基礎(chǔ)設(shè)施,從而破壞目標服務(wù)器、服務(wù)或網(wǎng)絡(luò)的正常流量時,就會發(fā)生分布式拒絕服務(wù)(DDoS)
    的頭像 發(fā)表于 07-31 23:58 ?1400次閱讀
    什么是 <b class='flag-5'>DDoS</b> <b class='flag-5'>攻擊</b>及如何防護<b class='flag-5'>DDOS</b><b class='flag-5'>攻擊</b>

    融合CDN 如何有效的抵抗DDoS攻擊

    火傘云融合CDN還可以幫助保護您的網(wǎng)站免受其他形式的DDoS攻擊,例如協(xié)議和應(yīng)用程序?qū)?b class='flag-5'>攻擊。這是因為我們已成功將多種DDoS緩解功能合并到常
    的頭像 發(fā)表于 08-25 13:38 ?605次閱讀
    融合CDN 如何有效的抵抗<b class='flag-5'>DDoS</b><b class='flag-5'>攻擊</b>

    DDoS攻擊的多種方式

    方的,這類攻擊稱為分布式拒絕服務(wù)攻擊,其中的攻擊者可以有多個。DDOS攻擊有以下幾種方式。 SYN Flood
    的頭像 發(fā)表于 01-12 16:17 ?834次閱讀