ResistCC
項目由來
近期公司網(wǎng)站反饋說加載速度較慢,就去找了一下原因,結(jié)果發(fā)現(xiàn)有幾個IP每天都在瘋狂請求(每分鐘大概在5000左右)。這時就意識到了網(wǎng)站被別人發(fā)起了cc攻擊
什么是洪水攻擊
洪水攻擊(FLOOD ATTACK)指的是利用計算機(jī)網(wǎng)絡(luò)技術(shù)向目標(biāo)機(jī)發(fā)送大量的無用數(shù)據(jù)報文,使得目標(biāo)主機(jī)忙于處理無用的數(shù)據(jù)報文而無法提供正常服務(wù)的網(wǎng)絡(luò)行為。洪水攻擊主要分為ICMP、UDP和SYN攻擊3種類型
ICMP洪水攻擊主要有3種方式
- 1 直接洪水攻擊
- 2 偽裝IP攻擊
- 3 反射攻擊
1 直接洪水攻擊
主機(jī)與目標(biāo)的帶寬比拼,用性能砸死他,讓目標(biāo)機(jī)造成宕機(jī)。缺點:目標(biāo)機(jī)可以根據(jù)源ip,屏蔽攻擊源,甚至可能被反向攻擊。
2 偽裝IP攻擊
將發(fā)送方ip用偽裝ip代替,是直接洪水攻擊的改進(jìn)版。
3 反射攻擊
并非自身攻擊,而是利用偽裝ip,讓其他主機(jī)誤認(rèn)為目標(biāo)機(jī)在向其發(fā)送ICMP請求,結(jié)果:目標(biāo)主機(jī)需要對所有請求進(jìn)行ICMP應(yīng)答發(fā)送
攻擊方式分析
應(yīng)該是每天都會重啟一次攻擊腳本,當(dāng)天的攻擊ip拉黑后就不會再次攻擊,只有到了第二天重啟之后會換ip再次攻擊 此時他應(yīng)當(dāng)`偽裝IP攻擊`或者`反射攻擊`
抵御辦法
分析nginx的log,通過log查詢出來有問題的ip然后通過ipset去做一個黑名單的配置管理
目前是做了一個基于分鐘的,通過blacklist.conf去配置執(zhí)行間隔,然后通過crontab 去執(zhí)行。具體參數(shù)見blacklist.conf
nginxlog的格式
121.41.112.148 56888563 - 0.002 0.002 [28/Jun/2018:10:12:00 +0800] "iz25ndyf9bxz" "HEAD / HTTP/1.1" 302 0 mod_gzip: -pct "-" "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)" ssl:"" server_port:"7080" scripts:/
如果格式不一樣可以去改一下nginx access.log 配置
log_format main '$remote_addr $connection $remote_user $request_time $upstream_response_time [$time_local] "$hostname" "$request" $status $body_bytes_sent mod_gzip: -pct "$http_referer" "$http_cookie" "$http_user_agent" ssl:"$https" server_port:"$server_port" scripts:$document_root$fastcgi_script_name';
最后
如果這個腳本對你有幫助的話歡迎star