張戈博客很久以前分享過一個CC攻擊的防御腳本,寫得不怎么樣,不過被51CTO意外轉載了。博客從此走上了經常被人拿來練手的不歸之路。
當然,還是有不少朋友在生產環境使用,并且會留言詢問相關問題。根據這些問題的需求,我花了一些時間重新寫了一個比較滿意的輕量級CC攻擊防御腳本,我給它取了一個比較形象的名字:CCKiller,譯為CC終結者。

一、功能申明
分享之前我必須先申明一下,眾所周知,DDoS攻擊指的是分布式拒絕服務。而CC攻擊只是DDoS攻擊的一種,本文所闡述的CC攻擊,指的是每個IP都以高并發請求攻擊,而非分布式海量IP的低并發DDoS攻擊!
對于個人低配服務器,除了使用CDN來防護,至少我是沒有想到如何抵擋海量IP攻擊的!因為每個IP都用正常的UA來請求,而且每個IP的低并發請求和正常用戶請求一樣,并不會觸發防御閾值,同時來1000個,甚至上萬個,個人低配服務器的帶寬在第一時間就會被占滿,無法繼續提供服務!
所以,如果你的網站正受到海量IP的低并發DDoS攻擊,那么本文分享的CCKiller就無能為力了。趕緊去開啟CDN來拓展帶寬吧!
二、功能介紹
通過以上申明,也就大致給CCKiller一個定位:CCKiller是用于個人低配服務器的輕量級CC攻擊防御,可以抵擋單個IP產生的高并發攻擊。
目前設計的功能特性如下:
①、秒級檢查
很多人寫的防御腳本都是使用了Linux系統的計劃任務crontab來定時檢查的。而crontab的最細顆粒是1分鐘,也就是說腳本最快也只能1分鐘檢查一次。對于一些強迫癥來說就會很不爽。
所以,我還是按照以前分享的思路,利用while循環實現秒級檢查,實現更細的顆粒。當然,CCKiller更是被我寫成了系統服務,更加靈活穩定。
②、拉黑時長
CCKiller可以設置拉黑時長,默認為10分鐘。當發現有惡意請求時,會自動拉黑目標IP,并在拉黑時長結束后自動釋放,這個功能算是對我之前寫的腳本的一個大的改進。
③、并發閾值
CCKiller 可以設定單個IP的最高請求數,如果某個IP同時請求數超過了設定的閾值,就會被暫時拉黑一段時間。
④、郵件發送
這個功能沒啥好說的,意義并不大。而且發送成功率和服務器的環境也有很大關系。
⑤、并發顯示
安裝后,直接運行cckiller會列出當前系統的請求排行,可以清晰的看到當前請求IP和并發數。使用-s參數還可以繼續定制需求,比如 cckiller -s 10 就能顯示當前并發數排行前10名的IP。            
新聞熱點
疑難解答