好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > CCKiller:Linux輕量級CC攻擊防御工具,秒級檢查、自動拉黑和釋放

CCKiller:Linux輕量級CC攻擊防御工具,秒級檢查、自動拉黑和釋放

熱門標簽:外呼電話系統怎么操作 天津電話外呼系統排名 德陽400電話申請 測繪地圖標注名稱 鶴崗400電話申請 百度地圖標注直線距離 商機地圖標注 怎么在百度地圖標注公司的位置 智能電銷機器人有用嗎

張戈博客很久以前分享過一個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。
⑥、手動拉黑
支持手動拉黑,執行后會立即檢查,將并發請求超過n的IP拉黑一段時間,比如 cckiller -k 100 就會將目前超過100個請求的IP拉黑一段時間,如果沒有則不會執行任何拉黑操作。

三、工具安裝
①、在線安裝

由于我可能經常會更新一些功能,或修復一些BUG,所以僅提供在線安裝,以保證腳本是最新的。

安裝非常簡單,執行如下命令就能進入配置步驟了:

復制代碼 代碼如下:

wget --no-check-certificate -O install.sh https://zhangge.net/wp-content/uploads/files/cckiller/install.sh?ver=1.0.1 chmod +x install.sh ./install.sh -i

②、工具配置

因為每個服務器的情況可能不一樣,所以有一個自定義配置的過程。

執行上述安裝命令后,將會進入自選配置部分,如圖:

提示否使用腳本默認配置,如果選擇是(y),那么顯示默認配置,并詢問是否繼續:

默認配置如下:

復制代碼 代碼如下:

The Time interval : 20 s       #每20s檢查一次系統請求情況
The Forbidden Time: 600 s  #拉黑時長設為10分鐘
Adminstrator Email: root@localhost   #郵件對象設置為root@localhost(即關閉郵件發送)
Connections Allow: 100      #單個IP并發限制為100

如果不符合你的需求,你可以使用 ctrl + c 組合鍵終止腳本,或者先繼續安裝,因為工具設計了配置修改的功能,所以無需著急。

如果不使用默認配置(n),則會要你輸入參數來自定義配置:

如圖,我將參數依次定義為每10秒進行檢查,拉黑時長為300秒,發件人設置為博客郵箱,并發限制設置為60,回車后會彈出一個提示,讓你檢查,如果沒問題你直接回車就會安裝并啟動:

③、服務控制

安裝后,會將cckiller注冊成系統服務,這時你就可以使用service來控制cckiller了。
使用標準的service定義,支持 start | stop | restart | status 四個參數。所以,你可以使用
service cckiller stop來停止cckiller,也可以使用service cckiller status來查看狀態。

 ④、集成命令

成功安裝后,系統還會多出一個cckiller的命令,這個命令現有功能如下:
cckiller -h可以調出幫助信息:

復制代碼 代碼如下:

CCkiller version 1.0.0 Author: Jager ge@zhangge.net>
Copyright ©2015 zhangge.net. All rights reserved.
Usage: cckiller [OPTIONS] [N]
N : number of tcp/udp   connections (default 100)
OPTIONS:
-h | --help: Show       this help screen
-k | --kill: Block the offending ip making more than N connections
-s | --show: Show The TOP "N" Connections of System Current

我蹩腳的英文也能湊合解釋一下功能了吧~

-k 是拉黑功能,需要在后面帶上你想拉黑的并發數,比如 cckiller -k 100 就會拉黑當前請求數大于100的IP一段時間(和拉黑時長一致)

-s 是顯示并發排名,也需要在后面帶上數字,比如 cckiller -s 10 就能顯示當前并發數排行前10名的IP。
⑤、文件結構
如上圖所示,腳本安裝目錄為/usr/local/cckiller,其結構如下:

cckiller/
├── cckiller       #主程序
├── log/           #日志目錄(ver 1.0.1新增特性)
├── ck.conf        #配置文件
├── ignore.ip.list #白名單
└── install.sh     #安裝和卸載腳本
 
0 directories, 5 files

很簡單也比較規范的的結構,當然,后續功能如果越來越多,此結構可能會有所更新,這是后話。

如果你熟悉vim的話,只要編輯ck.conf就可以定義工具參數了:

復制代碼 代碼如下:

##### Paths of the script and other files
PROGDIR="/usr/local/cckiller"
PROG="/usr/local/cckiller/cckiller"
LOGDIR="/usr/local/cckiller/log"
IGNORE_IP_LIST="/usr/local/cckiller/ignore.ip.list"
IPT="/sbin/iptables"
DKName=CCkiller
DKVer=1.0.1
##### SLEEP_TIME設定檢查頻率,單位為秒
SLEEP_TIME=10
##### NO_OF_CONNECTIONS設定并發限制
NO_OF_CONNECTIONS=60
##### EMAIL_TO設定郵件的發送對象
EMAIL_TO="ge@zhangge.net"
##### BAN_PERIOD設定拉黑時長,單位為秒
BAN_PERIOD=300

如果不熟悉也沒關系。你還可以執行 ./install.sh -c 進行工具初始化,重新設定所有參數,過程和首次安裝時一致,這里就不贅述了。
⑥、白名單
工具安裝時會默認將系統所有IP都加入白名單,避免自己把自己給拉黑的尷尬。如果你還有其他要加白的IP,可以將IP加入到cckiller安裝目錄下的ignore.ip.list文件中,每行一個。

Ps:目前白名單還不支持IP段,敬請期待后續更新。
⑦、卸載工具
有心的朋友可能注意到了install.sh是可以帶參數的。我寫代碼的時候已經設計了幾個常用的安裝卸載功能,具體如下:

復制代碼 代碼如下:


#直接執行./install.sh 將會顯示如下幫助信息
###################################################################
#  CCkiller version 1.0.1 Author: Jager ge@zhangge.net>          #
#  For more information please visit https://zhangge.net/5066.html #
#-----------------------------------------------------------------#
#  Copyright @2015 zhangge.net. All rights reserved.              #
###################################################################
 
Usage: configure.sh [OPTIONS]
 
OPTIONS:
-h | --help : Show help of CCkiller
-u | --update : update Check for CCkiller [not available now]
-c | --config : Edit The configure of CCkiller again
-i | --install : install CCkiller version 1.0.0 to This System
-U | --uninstall : Uninstall cckiller from This System

其中:


-u 參數用來升級工具,不過目前由于沒時間還沒寫,所以不可用(Ver 1.0.2已支持在線更新)

-i 參數用來安裝工具,如果已安裝則會提示并終止

-c 參數用來配置工具,方便安裝后隨時修改工具配置

-U 參數用來卸載工具,注意是大寫哦!

因此,我們可以使用 ./install.sh -U 如圖卸載CCKiller:

四、攻防測試

成功安裝并啟用CCKiller之后,我們可以使用壓力測試工具來測試拉黑和釋放效果,比如webbench 或 ab等。
假如CCKiller設定的并發限制為100,檢查間隔為10s,使用webbench如下測試:
webbench -c 101 -t 60 http://www.yourwebsite.com/
啟動測試后,你可以立即去服務器上查看防火墻:
iptables -nvL
多刷幾下,就可以看到webbench所在服務器IP已經在DROP規則中了。
確定已被拉黑之后,你等個10分鐘再來看防火墻,可以發現webbench所在服務器IP已經消失了,成功釋放!

Ps:如果郵件發送功能無誤,那么應該也收到了工具發來的告警郵件,比如有一個飽受CC攻擊煎熬的站長給我發來的反饋:

五、更多說明①、配置并發限制
CCKiller配置最大連接數限制時,建議根據單個網頁產生的并發數來判斷。

情況A: 你網站做了動靜分離,那么靜態的請求就到另一個域名了(假設靜態資源托管在另一臺服務器或是CDN),單個IP請求一個頁面可能就只會產生若干并發(假設5個),我們假設某個用戶很猛,他喜歡快速拖拽打開你網站的多個網頁,比如同時打開10個,那么正常用戶的正常最大并發你也可以基本確定了吧?即并發限制:10x5=50。如果有人同時刷新你幾十個頁面,要說沒惡意你也不相信吧?

情況B: 如果沒有做動靜分離,那么一個頁面產生的并發可能就比較多了,每個css、js、圖片都會產生一次請求。所以,在這種情況下就需要稍微計算一下你網站單個頁面產生的并發請求,比如一個單頁面會產生30個請求,那么你也需要考慮用戶可能會連續拖拽多個頁面的情況,假設我允許用戶可以同時刷新10頁面,那么并發限制就可以設置為300了,依此類推。

容錯:從A和B來看,CCKiller其實是有一個盲點的,那就是如果用戶IP是某個公司的統一出口,也就是代理上網IP,那么工具就容易誤殺無辜了。所以,除了A和B,你還得考慮你網站的受眾人群類型。比如,我就一個個人博客,同一時刻被一個公司的多名同時多窗口拖拽訪問,這種情況也不多吧?如果可能存在這種受眾人群,那么這個并發限制可以設置大一些,避免錯殺無辜。當然,拉黑也就10分鐘而已,也不至于“一失足成千古恨”。。。

當然,不管哪種情況,并發限制都可以比預估設置高那么一些,這個自行斟酌吧!
②、不足與完善
CCKiller是我最近利用閑暇時間,匆忙之作,難免會有各種問題。也沒時間進行測試和完善。不過目前還是有數位站長在使用,暫未反饋異常。當然, 我分享的是在線安裝方式,也是為后續的更新提供方便。不過對比我以前寫的防御腳本,CCKiller算是有了長足的進步了,很簡單的安裝,更強大的功能!

功能計劃:

A. 在線升級功能

這個不用多說,現有的工具已經預留了,后面可能會加入版本判斷和更新的功能。

B. 加入其他安全防護設置

目前工具其實是趕鴨子上架一樣,直接就檢查,也沒有對系統環境做一些初始化的設置。比如網站通用的iptables設置、sync洪水攻擊防御等。后續會在安裝的時候會作為一個可選功能。

C. 集成傻瓜式的防火墻控制功能

并不是每個站長都會熟練操作iptables,所以可能考慮給cckiller這個命令集成一個ban和unban ip的功能,比如禁止一個ip,執行 cckiller -D $ip 即可,降低 iptables 的使用門檻。

另外,值得說明是,CCKiller只適合裸奔的網站,而不適合使用CDN的網站,因為使用CDN之后,請求過來的IP都是CDN節點,你總不能把CDN節點也拉黑了吧?(Ps:其實也可以用,你把并發限制稍微設置高一些就好了,就算拉黑CDN節點也就拉黑10分鐘而已,不至于影響過大)

針對這個問題,后續我會找時間研究下直接從Nginx日志里面取得真實來源IP來拒絕訪問。目前已經有了階段性的進展了,敬請期待!
附錄:更新記錄

2015-09-23 Ver 1.0.1:

支持白名單為IP段新增拉黑改為判斷 iptables 是否已存在操作IP的判斷方式;增加日志記錄功能,每天一個日志文件,位于安裝目錄下的log文件內;集成手動拉黑IP和解封IP功能,使用cckiller -b $IP拉黑,使用 cckiller -u $IP 解封。

2015-11-29 Ver 1.0.2:

新增在線更新功能,執行 ./install.sh -u 即可檢測是否有新版本:

如果發現有新版本則顯示更新內容,并提示是否執行更新。選擇之后將會更新到新版本,需要重新配置,但是IP或端口白名單會保持不變。

新增端口白名單功能

應網友需求,新增了這個端口白名單功能。在配置CCKiller的最后一項會提示輸入端口白名單:

如果需要排除某些端口,請如圖最后一行所示,輸入端口并已逗號分隔,比如 21,2121,8000

本次更新為非必須功能,在用的朋友可以按需更新,當然新增了在線更新這個功能,也強力推薦更新一下,方便后續檢測CCKiller是否是最新版本。

更新難免存在不可意料的紕漏,使用中存在任何問題請留言告知,謝謝!

您可能感興趣的文章:
  • Linux如何處理文件已刪除但空間不釋放的問題
  • 手動釋放Linux服務器內存(具體操作步驟)
  • Linux強制釋放占用端口以及Linux防火墻端口開放方法詳解
  • linux 內存清理/釋放命令總結
  • Linux 內存釋放命令詳解
  • 詳解Linux手動釋放緩存的方法
  • Linux文件刪除后空間未釋放問題詳解

標簽:滁州 優質小號 鎮江 武漢 丹東 百色 六盤水 自貢

巨人網絡通訊聲明:本文標題《CCKiller:Linux輕量級CC攻擊防御工具,秒級檢查、自動拉黑和釋放》,本文關鍵詞  CCKiller,Linux,輕量級,攻擊,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《CCKiller:Linux輕量級CC攻擊防御工具,秒級檢查、自動拉黑和釋放》相關的同類信息!
  • 本頁收集關于CCKiller:Linux輕量級CC攻擊防御工具,秒級檢查、自動拉黑和釋放的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 美女脱个精光扒开屁股的软件| 手机在线看片国产日韩生活片| 91人妻精品丰满大屁股干炮| 一本一道波多野结衣456| 总攻NP一攻多受| 91欧美激情一区二区三区成人| 美妇雪臀紧窄的肉| 对魔忍浅葱~欲の奴隷娼动漫| 在线观看黄色网页| 无码A片一本二本三本四本| 一级a毛一级a看免费视频| 午夜网站在线播放| 国模小树粉嫩私外m133| 出轨上司的女人| 积积桶肤肤的免费软件大全| 欧美姓爱| 好大?用力?深一点高潮91 | 人人做人人做人人爱| 国产AV在线观看18???男男| 男女一边摸一吻胸做爽视频| 日韩高清在线| 私密按摩师小说在线播放| 老师娇喘好紧我要进去了小视频 | 亚洲人成a在线网站| 闪婚后大叔每天狂宠我| 如何点评别人的ppt内容| 久久只精品99品免费久23小说| 精品成a人亚洲精品无码 | 男女啪漫画无遮挡免费| 国产精品久久久久精品三级97| 成人在线动漫| 沉香在线观看| 声优初体验| 13277大但人文艺术日本活动| cos小黄站在线| 给女人囗交的过程图片| 国产精品久久久久久久久久久久| 脔到她哭h粗话H好爽作文| 女人?精XXXXX亚| 国产成人一区二区三区视频免费| 欧洲老妇bbbbbxxxxx|