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

防cc攻擊設置多(duō)少(shǎo)秒(miǎo)多(duō↕'ε)少(shǎo)次


來(lái)源:mzadmin 2020-11-06

防cc攻擊應該設置多(duō)少(shǎo)秒(miǎo)φ€多(duō)少(shǎo)次呢(ne)?很(hěnα₽↓)多(duō)人(rén)都(dōu)遇• 到(dào)過CC攻擊的(de)情況,CC攻擊可(kě)以從(c✘λ★óng)服務器(qì)和(hé)應用(yòβεng)層面防禦和(hé)減輕影(yǐng)響。本文(wén∏γπ")介紹受到(dào)CC攻擊後,可(kě)©♠₹≤以在服務器(qì)上(shàng)采取的(de)簡易防CC攻擊設置。

Nginx防CC設置

 

不(bù)同于DDoS靠流量蠻力攻擊,CγδλC攻擊模拟正常用(yòng)戶與服務器(qì)交互。CC攻擊一(yī)•λ般需找到(dào)網站(zhàn)/應用(yòng)的&λ(de)薄弱處,然後通(tōng)過大(dà)量連>δ•↕接/請(qǐng)求消耗服務器(qì)資源,讓CPU、帶寬能(nδ≤→↑éng)資源占用(yòng)飙升。

并發請(qǐng)求和(hé)請(qǐng)求速率

 

防護CC攻擊的(de)主要(yào)手段是(shì↕β×↓)限制(zhì)并發請(qǐng)求數(shù)量和(hé)請(qǐn¥$♠g)求速率。并發請(qǐng)求數(shù)量指的(deπ£ε")是(shì)單ip可(kě)以與服務器(qì)建 ★→立多(duō)少(shǎo)個(gè)連接,請(qǐ‍‌ng)求速率指的(de)是(shì)單位時(shí™®×")間(jiān)內(nèi)的(de)請(qǐng)♥↔€∑求數(shù)。兩者有(yǒu)共同部分(f€α±ēn)但(dàn)意義不(bù)同,例如(rú)± ♠¶建立十個(gè)連接每個(gè)連接請(qǐng)求一(yī)次,也(y>©βě)可(kě)以建立一(yī)個(gè)連接請(qǐn¥≤g)求十次。前者是(shì)并發連接多(duō≠α ),後者是(shì)請(qǐng)求速率高(gā☆Ωπo)。

Nginx既支持并發請(qǐng)求的(de)限制(zhì),也(≠¶©yě)支持按限制(zhì)請(qǐng)求速率。防禦CC攻擊主要(yào)是•®(shì)限制(zhì)速率,理(lǐ)論上(shàng)'€↕‍速率限制(zhì)得(de)好(hǎo)就(jiù)夠了(l♥↑≥e)。實踐中建議(yì)兩者結合,既防止太多(duō)連接消耗服務器(σ₩qì)資源,也(yě)防止請(qǐng)求速率過快(kuài)。

Nginx防CC設置步驟

 

Nginx 防CC詳細設置步驟如(rú)下(xià):

1.  編輯Nginx配置文(wén)λ∏₽®件(jiàn),例如(rú) /etc/nginx/nginx.conf , 在 http 段分(fēn)配計(jì)數(shù)內(nèi)存:

Bash
limit_conn_zone $binary &_remote_addr zone=limit_co§&nn:10m;
limit_req_zone $binary_remote'♠ ​_addr zone=limit_req↑'₹:10m rate=10r/s;

 

上(shàng)述配置分(fēn)配了(le) limit_conn¥α​↔ 和(hé) limit_req 兩個(gè)1✔₽0M大(dà)小(xiǎo)的(de)內(nèi)存塊(1Mσ£λ"內(nèi)存可(kě)記錄16000個(gè)會(huì)話(huà)≤★),并設置每秒(miǎo)最大(dà)請(qǐng)求速率是(s∞↔φhì)10次。

2, 打開(kāi)網站(zhàn)配置文('εwén)件(jiàn),例如(rú)&n♠≤×bsp;/etc/nginx/conf.d/qiquanji.conf,在 server 或者 location 段中開(kāi)啓限制(zhì):

Bash
server {
    limit_conn ♣₩★limit_conn 5; # 并發連接數(shùφ♦)不(bù)超過5
    limit_req zone=limit_r↔ eq burst=10 nodelay;
    # Ω★≤¶其他(tā)設置

 

http中設置每秒(miǎo)允許10個(gè)請(q>$ǐng)求,即100毫秒(miǎo)一(yī)個(gè),如(rú)果突然來¶≈>★(lái)10個(gè)連接,後面9個(gè)直接返回503錯(cuò)誤,這÷‍§✘(zhè)是(shì)我們不(bù)願意看(kàn)到(dào)的(de)。lπεimit_req中的(de) burst 參數(shù)用(yòng)來(lái)處理(lǐ)Ω​↓ 突發請(qǐng)求,此時(shí)10個(gè)請(q©δǐng)求都(dōu)會(huì)被接受以應對(duì)突發流量✘≈☆©。如(rú)果再來(lái)10個(gè),那(nà)就(jiù)超出了(le¶¥♣)允許的(de)突發限制(zhì),Nginx直接返回503錯(cuò)誤。

nodelay 表示在允許突發請(qǐng)求的(de)情況下(xià),直™≥♥☆接處理(lǐ)所有(yǒu)請(qǐng)求,而不₹ ¥(bù)是(shì)每100毫秒(miǎo)處理(lǐ×↔)一(yī)個(gè)。

實踐中請(qǐng)根據具體(tǐ)情況設置并發連接數(shù)和(hé)請✘π(qǐng)求速率。數(shù)值過大(dà)會≥₩(huì)影(yǐng)響防禦效果,太小(xiǎo)則會(huì✘‍‌→)影(yǐng)響正常用(yòng)戶使用(yòng)。此外(↕↓wài),建議(yì)總是(shì)啓用≤↕÷(yòng) burst 和(hé) nodelay 以應對(duì)突發流量。

3. 保存配置文(wén)件(jiàn),nginx -t 檢查有(yǒu)無語法錯(cuò)誤,然後 $± systemctl reload nginx 重新加載配置。

其他(tā)事(shì)項

 

1. 可(kě)以将某些(xiē)ip放(fàng)入白(bái)γ✘名單,避免受到(dào)速率限制(zhì♦")。操作(zuò)是(shì)在 http 段新增開(kāi)啓變量:​β←

Bash
geo $whitelist {
    ​∑↓default 1;
    10.0.0.17 0; # 按照(zhào)★εΩ∞這(zhè)個(gè)格式添加白(bái)名單ip♣✔
}
map $whitelist $limit {<≥
    0 "";
    1 $bina¥λπry_remote_addr;
}

# limitφ¥_conn_zone 和(hé) limit_req_zon​₹e更改為(wèi):
limit_con Ωn_zone $limit zone=limit_conn:10m;
lim₽¶©δit_req_zone  $limit zone=lim€βλ>it_req:10 rate=10r/s;
‌ •
#其他(tā)配置無需改變

 

2. limit_conn 和(hé) limit_req 指令可(kě)以放(fàng)置在 http、≈₩server、location 中使用(yòng),分(fēn)• '别表示對(duì)所有(yǒu)站(zhàn)點、特點站(zhàn)點×∑、特定url使用(yòng)限制(zhì);

3. 可(kě)以同時(shí)使用(yòng)多(d∏☆☆uō)個(gè) limit_conn 和(hé) limit_req 應付複雜(zá)場(chǎng)Ω<景。

firewalld/iptables防CC設置

 

Nginx可(kě)以限制(zhì)并發請(qǐng)求≠→數(shù)量,防火(huǒ)牆(iptables / firewalld)←£也(yě)可(kě)以做(zuò)到(dào),并且性能(néng)更好¶≤(hǎo)。

防火(huǒ)牆限制(zhì)主要(yào)是(s✘γhì)兩方面:

1. 将某個(gè)ip拉黑(hēi):

Bash
#iptables
iptables -I INPUt -Ω&£'p tcp -s 黑(hēi)名單ip -j DRO γ∏P
# firewalld
firewall-cmd --add-rich&€♠♥-rule="rule family='ipv4'¥> ® source address='黑(hēi)名單ip&# ↕39; reject"

 

2. 限制(zhì)ip的(de)并發連接:

Bash
# iptables
iptables -I INP♦∞←Ut -p tcp --dport 443 -m Ω↕ connlimit --connlimit-ab'↕ove 5 -j DROP
# firewa↕♣ lld
firewall-cmd --add-rich-rule '♣ו‌;rule port port=443 protocol=tcp aα§ccept limit value="5/s₹♥→ "'

 

修改Nginx可(kě)打開(kāi)的(de)最大(dàα≠ασ)文(wén)件(jiàn)數(shù)

 

默認Nginx最大(dà)可(kě)打開(k♥®āi)1024個(gè)文(wén)件(jiàn)/連接,在大(d∑β€€à)流量時(shí)明(míng)顯不(bù)夠,因此需π ✔<要(yào)加大(dà)。

操作(zuò)方法如(rú)下(xià):

1. 編輯 /etc/systemd/system/multi-user.target§×≠→.wants/nginx.service,添加文(wén)件(jiàn)數(shù)限制≥×(zhì):

Bash
[Unit]
Description=The nginx HTTP  ↕ and reverse proxy server
After₹ ↓=network.target remote-fs.targetε→ nss-lookup.target

[Ω↕Service]
# 增加這(zhè)一(yī)行(xíng)
£π☆
LimitNOFILE=65535
#其他(tā)不(bù)用(yòng)≠≠•變

 

2. 重啓Nginx:systemctl daemon-reload; systemctl re‌•start nginx

3. 查看(kàn)Nginx打開(kāi)文 ↔'→(wén)件(jiàn)限制(zhì)是(shì¶α&)否已經生(shēng)效:ps aux | grep nginx 找到(dào) nginx 的(de)進程δ≈ε♥号,然後 cat /proc/進程号/limits,輸出

總結

 

經過上(shàng)述設置,配置好(hǎo)參數(✘÷δshù)後,小(xiǎo)型的(de)C±ε¶C攻擊能(néng)防住或者減輕影(yǐng)響。大(dà)規模的≈☆‍•(de)CC攻擊攻擊沒辦法,最好(hǎo)是(shì)選擇第三方高₽ε≠(gāo)防服務商的(de)高(gāo)防産品來(lái)抵禦CC攻擊,♥€™δ墨者安全自(zì)主研發抗CC攻擊指紋防護引擎墨者盾,可(k♠σě)以做(zuò)到(dào)99.999©₩9%的(de)無敵複合防禦!可(kě)以根據訪問(wèn)εε™ 者的(de)URL,頻(pín)率、行(xíng)為(wèi)φβ♣等多(duō)重畫(huà)像訪問(wèn)特征,≠λλ智能(néng)識别CC攻擊,擁有(yǒu)國(guó)內(nèi)最♥→±Ω全的(de)病毒特征庫樣本,迅速識别CC攻擊并進行(xíng)攔截,熟悉各運→‍營商及FB及微(wēi)信流量體(tǐ)系,最高(gāo)可(kě)防禦百W級σ¥+QPS攻擊。

X

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

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

15625276999


-->