您的(de)位置: 新聞資訊 > 行(xíng)業(yè)動态 > 正文(wén)

遇到(dào)syn攻擊怎麽解決?syn攻擊防禦方法


來(lái)源:mzadmin 2020-08-28
前些(xiē)天有(yǒu)客戶聯系墨者安<±π全,說(shuō)公司有(yǒu)個(gè)業(yè)務網站(zhàn)被sy>© n flood攻擊了(le),服務器(qì)₹×本身(shēn)有(yǒu)硬防,但(dàn)是(shì)頂不(bù)Ω≠住,被打死了(le),尋求解決辦法。這(•∞↔∑zhè)個(gè)客戶遭遇的(de)攻擊也(yě)是(shì)很(hěn) ≈₹‍多(duō)經營互聯網業(yè)務的(de)互聯網人(rén)經&×常遇到(dào)的(de),但(dàn)有(yǒu)些(xiē)人(rén×¥✔ )對(duì)此不(bù)不(bù)太了(le)→×解是(shì)怎麽一(yī)回事(shì)。下(xià★•≥σ)面墨者安全向大(dà)家(jiā)介紹syn flood攻擊∏♦®↕的(de)原理(lǐ)和(hé)解決辦法。

SYN Flood 或稱 SYN洪水(shuǐ)、SYN洪✘β®泛,是(shì)一(yī)種阻斷服務攻擊,屬于典型的(de)DDoS攻擊。SYN foold攻擊主要(yào)針對(duì)tcp通(®☆∞<tōng)信三次握手期間(jiān)做(zuò)的(de)手腳,所以要(y←σ↓ào)弄懂(dǒng)這(zhè)個(gè)攻  ♣&擊的(de)原理(lǐ)我們首先必須知(z∞αλ∞hī)道(dào)tcp三次握手的(de ✔♥)詳細過程。

當客戶端嘗試與服務器(qì)建立TCP連接時(shí),客戶端和(hé)服務器™¥π(qì)在正常情況下(xià)交換一(yī)組信息,如(rú)下(xià)φ♦→所示:

1.客戶端将SYN同步信息發送到(dào)服務器(qì)并請(qǐng)求連接 ε設置。
2.服務器(qì)響應客戶端SYN-ACK響應請(qǐng)求。
3.客戶端承諾ACK并建立連接。
這(zhè)是(shì)在所謂的(de)TCP 3次握手中使用(y∏✔òng)TCP傳輸協議(yì)的(de)每個(gè)連接的(de)®®基礎。

在三次握手過程中,Server發送SYN-ACK之後,收∑¥到(dào)Client的(de)ACK之前↕→€≤的(de)TCP連接稱為(wèi)半連接(half-open conne¥λct),此時(shí)Server處于SYN±±_RCVD狀态,當收到(dào)ACK後,Server轉入ES∑λ↓TABLISHED狀态。SYN攻擊就(jiù)是(shì α )Client在短(duǎn)時(shí)間♥ α'(jiān)內(nèi)僞造大(dà)量不(bù)存在的(de)IP地(dì)₽​£'址,并向Server不(bù)斷地(dì)發送SYN包,±σ®Server回複确認包,并等待Client的(de)确認,由于源≈÷地(dì)址是(shì)不(bù)存在的(de),因此,Server需要(β≥yào)不(bù)斷重發直至超時(shí),這(zhè)些(↑±xiē)僞造的(de)SYN包将産時(shí)♣•×≈間(jiān)占用(yòng)未連接隊列,導緻正常的(de)∏±‍SYN請(qǐng)求因為(wèi)隊列滿而被丢棄,從(cóng)而引起←¶"網絡堵塞甚至系統癱瘓。

如(rú)何知(zhī)道(dào)是(shì¥φ‌σ)不(bù)是(shì)受到(dào)了(le)SYN攻擊?檢測SYN攻擊ε​的(de)方式非常簡單,即當Server上(shàng)有(yα ǒu)大(dà)量半連接狀态且源IP地(dì)址是(shì)随機(jī)‌ ₹的(de),則可(kě)以斷定遭到(dào)SYN攻擊了♣®☆‍(le)。


SYN foold攻擊的(de)解決方法:

1、修改等待數(shù)
sysctl -w net.ipv4.tcp_max_syn_ba 'cklog=2048

2、啓用(yòng)syncookies​‌
sysctl -w net.ipv4.tcp_syncookie"'♥↔s=1

3、修改重試次數(shù)
sysctl -w net.ipv4.tcp_sy ±×'n_retries = 0

重傳次數(shù)設置為(wèi)0,隻要(yào)收不(bù)到(d← Ωào)客戶端的(de)響應,立即丢棄該連接,默認設置為(δ→σwèi)5次

4、限制(zhì)單IP并發數(shù)
使用(yòng)iptables限制(z←↔✘hì)單個(gè)地(dì)址的(de)并發連接數(shù)量α₹:

iptables -t filter -A INPU‌✔♥♦T -p tcp --dport 80 --tcp-flags F← &✘IN,SYN,RST,ACK SYN -m con×"nlimit --connlimit-above 10>®±  --connlimit-mask 32 -j REJEC ×↔ T

5、限制(zhì)C類子(zǐ)網并發數(shù)
使用(yòng)iptables限制(zhì)單個(gè♥÷‌)c類子(zǐ)網的(de)并發鏈接數(shù)量:

iptables -t filter -A INPUT -p tcp --d÷∑®↓port 80 --tcp-flags FIN,↕§SYN,RST,ACK SYN -m connl σ imit --connlimit-above ‍✔©10 --connlimit-mask 24 -j REJ↔≥ECT

6、限制(zhì)單位時(shí)間(jiān)內(nèδφ↑i)連接數(shù)
設置如(rú)下(xià):

iptables -t filter -A INPUT -p tcp®₩₩≠ --dport 80 -m --state --syn -m recent <•‍'--set

iptables -t filter -A≤↓ α INPUT -p tcp --dport 80 -m --sta  ↑te --syn -m recent --updat ↓&÷e --seconds 60 --hitcount 30  ₩-j DROP

7、修改modprobe.conf
為(wèi)了(le)取得(de)更好(hǎo)的(de)效果,需要λ•‍©(yào)修改/etc/modprobe.<∏conf

options ipt_recent ip_li™©→st_tot=1000 ip_pkt_list_tot=60

作(zuò)用(yòng):記錄10000個(g≈∞è)地(dì)址,每個(gè)地(dì)址60個(gè)包÷ ,ip_list_tot最大(dà)為(wèi)81∑β φ00,超過這(zhè)個(gè)數(shù)值會(huì)導緻iptab≤πles錯(cuò)誤

8、限制(zhì)單個(gè)地(dì)址最大(dà)連₽≤§接數(shù)
iptables -I INPUT -p tcp --dpor↑& ✘t 80 -m connlimit --connlim®<•₩it-above 50 -j D


通(tōng)過上(shàng)述這(zhè)些$♣♠‌(xiē)設置,可(kě)以緩解SYN攻擊帶來(lái)的(πδ÷de)影(yǐng)響,但(dàn)如(r€  ₽ú)果遭到(dào)幾百幾千G的(de)T級流量洪水(shuǐ)攻擊,¥→✘¥那(nà)隻能(néng)選擇像墨者安全那(nà)樣的(de)商業(yè¶✘)級的(de)防DDOS服務了(le)。墨者盾®σ↑ε高(gāo)防可(kě)以隐藏服務器(qì)真實IP,利用(yò¶®∑ng)新的(de)WAF算(suàn)法過濾技(jì)術(↓₹shù),清除DDOS異常流量,可(kě)防禦大(dà)規模SYN F¶♠ ∑lood、ACK Flood、ICMP Floα ≠od、UDP Flood等各類常見(jià€£n)的(de)攻擊類型,保障服務器(qì)正常運行(xínε₩$↓g)。
X

7x24 小(xiǎo)時(shí)

免費(fèi)技(jì)術(shù)支持

15625276999


-->