bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

寶塔面板自動拉黑惡意IP到Cloudflare防火墻

寶塔面板免費版本足夠用了,所以我們從來也不去折騰什么開新版本,當然了土豪可以購買專業(yè)版,但是對于小編來說,免費版真的是足夠好用,如果我們動手能力稍微強一點,那么使用起來和專業(yè)版也是沒有什么差別的,而且都是自己動手,這樣對于提高自己的服務(wù)器水平還是很有幫助的。

成都創(chuàng)新互聯(lián)公司主營南漳網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),南漳h5微信小程序開發(fā)搭建,南漳網(wǎng)站營銷推廣歡迎南漳等地區(qū)企業(yè)咨詢

關(guān)于 Cloudflare 也講過不少了,不過今天還是要說的是它,如果我們的網(wǎng)站遭遇 CC 和 DDoS 攻擊時,我們可以啟用 Cloudflare 經(jīng)典的 5 秒盾防攻擊,如果把握不了攻擊的頻率的話,可以設(shè)置一個定時任務(wù),當系統(tǒng)負載超過某一個值(一般來攻擊會導(dǎo)致系統(tǒng)負載爆增),調(diào)用 Cloudflare API 啟用 5 秒盾。

當然,如果我們是寶塔用戶的話,那設(shè)置起來會更簡單一點,但是當我們啟用 Cloudflare CDN 時候,需要在 Nginx 中啟用 Real IP 模塊,然后利用腳本分析網(wǎng)站日志,從日志中搜集異常 IP,然后使用 Cloudflare API 批量將惡意 IP 添加到 Cloudflare 的防火墻當中。不過看這篇文章之前,我們需要了解下,如何啟用 Real IP 模塊。不過寶塔面板 6.9.0 默認是已經(jīng)開啟了 Real IP 模塊,如圖:

寶塔面板自動拉黑惡意IP到Cloudflare防火墻  

如果你的寶塔面板沒有開啟這個模塊,可以按照上文就設(shè)置。這篇文章我們就說說如何利用 shell 腳本,自動拉黑惡意 IP 到 Cloudflare 防火墻,自動切換 5 秒盾防 CC 攻擊。

一:定位惡意 IP

我們需要找到惡意 ip,可以利用腳本分析在一分鐘單個 IP 訪問的頻率,超過一定的頻率(一般來正常的訪問,一分鐘內(nèi)應(yīng)該不超過 60 次,你可以設(shè)置為更小),即認定為惡意 IP。寶塔面板的 shell 腳本如下:

  1. #/bin/bash
  2. #日志文件,如不是寶塔面板可以根據(jù)需要改成你自己的路徑
  3. logfile=/www/wwwlogs/
  4. last_minutes=1
  5. #開始時間1分鐘之前(這里可以修改,如果要幾分鐘之內(nèi)攻擊次數(shù)多少次,這里可以自定義)
  6. start_time= date +"%Y-%m-%d %H:%M:%S" -d '-1 minutes'
  7. echo $start_time
  8. #結(jié)束時間現(xiàn)在
  9. stop_time=`date +"%Y-%m-%d %H:%M:%S"`
  10. echo $stop_time
  11. cur_date="`date +%Y-%m-%d`"
  12. echo $cur_date
  13. #過濾出單位之間內(nèi)的日志并統(tǒng)計最高ip數(shù),請?zhí)鎿Q為你的日志路徑
  14. tac $logfile/www.daniao.org.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($2,RSTART+14,21);
  15. if(t>=st && t<=et) {print $0}}' | awk '{print $1}' | sort | uniq -c | sort -nr > $logfile/log_ip_top10
  16. ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'`
  17. ip=`cat $logfile/log_ip_top10 | awk '{if($1>2)print $2}'`
  18. # 單位時間[1分鐘]內(nèi)單ip訪問次數(shù)超過2次的ip記錄入black.txt,這里為了測試設(shè)置了2,你需要改成其它的數(shù)字
  19. for line in $ip
  20. do
  21. echo $line >> $logfile/black.txt
  22. echo $line
  23. # 這里還可以執(zhí)行CF的API來提交數(shù)據(jù)到CF防火墻
  24.   done

二:計劃任務(wù)

關(guān)于寶塔面板的計劃任務(wù)如何設(shè)置,就不多說了,我們看看如何把上面的 ip 定位的腳本放在計劃任務(wù)中。點擊計劃任務(wù)選擇 Shell 腳本即可如圖:

寶塔面板自動拉黑惡意IP到Cloudflare防火墻 

這個腳本,我們需要測試是否可用,我們設(shè)置的是每隔 3 分鐘執(zhí)行一次,所以我們可以自己手動不停刷新自己的網(wǎng)站或者自己的測試站點即可。我們看看最終的效果,如圖:

寶塔面板自動拉黑惡意IP到Cloudflare防火墻

幾乎無時無刻沒有掃描的,所以還是很有必要做一個防御的。

三:添加 IP 到 CF 防火墻

使用以下代碼就可以將惡意 IP 批量添加到 Cloudflare 的防火墻了,記得替換為你的 Cloudflare API。

  1.  #!/bin/bash
  2.     # Author: Zhys
  3.     # Date  : 2018
  4.     # 填Cloudflare Email郵箱
  5.     CFEMAIL="daniao@gmail.com"
  6.     # 填Cloudflare API key
  7.     CFAPIKEY="xxxxxxxxxxxxxxxx"
  8.     # 填Cloudflare Zones ID 域名對應(yīng)的ID
  9.     ZONESID="xxxxxxxxxxxxxxxxxxxx"
  10.     # /www/wwwlogs/black.txt存放惡意攻擊的IP列表
  11.     # IP一行一個。
  12.     IPADDR=$(</www/wwwlogs/black.txt)
  13.     # 循環(huán)提交 IPs 到 Cloudflare  防火墻黑名單
  14.     # 模式(mode)有 block, challenge, whitelist, js_challenge
  15.     for IPADDR in ${IPADDR[@]}; do
  16.     echo $IPADDR
  17.     curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONESID/firewall/access_rules/rules" \
  18.       -H "X-Auth-Email: $CFEMAIL" \
  19.       -H "X-Auth-Key: $CFAPIKEY" \
  20.       -H "Content-Type: application/json" \
  21.       --data '{"mode":"block","configuration":{"target":"ip","value":"'$IPADDR'"},"notes":"CC Attatch"}'
  22.     done
  23.     # 刪除 IPs 文件收拾干凈
  24.     rm -rf /data/wwwlogs/black.txt
四:自動找出惡意 IP 并添加到防火墻

我們用寶塔面板當然是越省事越好,我們可以把定位 ip 和封鎖 ip 到 CF 防火墻合并在一起。

#/bin/bash
    #日志文件,你需要改成你自己的路徑
    logfile=/www/wwwlogs/
    last_minutes=1
    #開始時間1分鐘之前(這里可以修改,如果要幾分鐘之內(nèi)攻擊次數(shù)多少次,這里可以自定義)
    start_time= date +"%Y-%m-%d %H:%M:%S" -d '-1 minutes'
    echo $start_time
    #結(jié)束時間現(xiàn)在
    stop_time=`date +"%Y-%m-%d %H:%M:%S"`
    echo $stop_time
    cur_date="`date +%Y-%m-%d`"
    echo $cur_date
    #過濾出單位之間內(nèi)的日志并統(tǒng)計最高ip數(shù),請?zhí)鎿Q為你的日志路徑
    tac $logfile/www.daniao.org.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($2,RSTART+14,21);
    if(t>=st && t<=et) {print $0}}' | awk '{print $1}' | sort | uniq -c | sort -nr > $logfile/log_ip_top10
    ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'`
    ip=`cat $logfile/log_ip_top10 | awk '{if($1>2)print $2}'`
    # 單位時間[1分鐘]內(nèi)單ip訪問次數(shù)超過2次的ip記錄入black.txt,這里為了測試設(shè)置了2,你需要改成其它的數(shù)字
    for line in $ip
    do
    echo $line >> $logfile/black.txt
    echo $line
    # 這里還可以執(zhí)行CF的API來提交數(shù)據(jù)到CF防火墻
    done
    # 填Cloudflare Email郵箱
    CFEMAIL="xxx@xxx.com"
    # 填Cloudflare API key
    CFAPIKEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    # 填Cloudflare Zones ID 域名對應(yīng)的ID
    ZONESID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    # /www/wwwlogs/black.txt存放惡意攻擊的IP列表
    # IP一行一個。
    IPADDR=$(</www/wwwlogs/black.txt)
    # 循環(huán)提交 IPs 到 Cloudflare  防火墻黑名單
    # 模式(mode)有 block, challenge, whitelist, js_challenge
    for IPADDR in ${IPADDR[@]}; do
    echo $IPADDR
    curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONESID/firewall/access_rules/rules" \
      -H "X-Auth-Email: $CFEMAIL" \
      -H "X-Auth-Key: $CFAPIKEY" \
      -H "Content-Type: application/json" \
      --data '{"mode":"block","configuration":{"target":"ip","value":"'$IPADDR'"},"notes":"CC Attatch"}'
    done
    # 刪除 IPs 文件收拾干凈
     rm -rf /www/wwwlogs/black.txt
     
     這里我們可以編輯在第二中編輯的計劃任務(wù)的 Shell 腳本重新添加下即可。
     如果被猛烈的 CC 可以設(shè)置成每 1 分鐘就執(zhí)行一次,這里測試是設(shè)置成每 3 分鐘執(zhí)行一次腳本。
     自動添加惡意 IP 到 CloudFlare 防火墻的效果如下:
     
     
這樣我們就實現(xiàn)了 CC 攻擊臨時救急的半自動流量清洗的功能。


這個錯誤頁面提示,該網(wǎng)站所有者已經(jīng)禁止了你的 ip 地址,額,總的來說效果還不錯。

五:總結(jié)
如果這時候真有惡意攻擊了,我們可以手動開啟 5 秒盾腳本防 CC 攻擊,這樣就實現(xiàn)了一個遭受攻擊從來實現(xiàn)流量清洗的功能。
Cloudflare 真的是一個非常好用的防御 DDos 和 CC 攻擊的工具,免費版本的 Cloudflare 結(jié)合 API 可以實現(xiàn)更加靈活的功能,
對于普通的防御足夠自己使用了。當然了,寶塔面板結(jié)合 Cloudflare 使用起來也更方便和更簡單。
如果你對 Cloudflare 的設(shè)置不是太熟悉,可以看看之前的文章。平時我們的域名雖然不用 Cloudflare 的解析服務(wù),
但是不妨在解析放在上面,如果遇到問題可以快速的切換過去。

當前文章:寶塔面板自動拉黑惡意IP到Cloudflare防火墻
文章路徑:http://vcdvsql.cn/article0/chjjio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷電子商務(wù)微信公眾號品牌網(wǎng)站建設(shè)云服務(wù)器靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)