Total Pageviews

Tuesday 19 September 2017

检测VPS的负载,自动切换CloudFlare保护/CC防护

许多站长难免有这样的遭遇:自己的站被小学生无脑C到不能自理,CC攻击会占用服务器大量资源而导致系统死机,这里提供小脚本自动切换CloudFlare防护等级。

脚本作者原文:https://vpsaddicted.com/script-enable-disable-cf-ddos-protection/  博主只提供翻译和补充。

众所周知,有普通国内外免费CDN的防护CC基本是零,稍有良心的CloudFlare的免费版本只提供WAF防护+验证码可阻挡小学生级的CC,而CloudFlare的最高防护————”五秒盾“,在没有受到攻击时开启后严重影响访客访问体验。如果只开启“HIGH”等级被C到一定程度CloudFlare会放弃你的站点,直接回源。


那么就让这个小脚本解决你的问题把:
安装curl(两句话只需运行一句,自行判断)

   apt-get install curl
   yum install curl


创建一个目录

   mkdir /etc/cloudflare

创建并编辑检测脚本

   nano /etc/cloudflare/run.sh

脚本内容:

cat /proc/loadavg | colrm 6 > cron.ini

FILE=cron.ini
grep -w "[0.00-6.00]" $FILE >/dev/null

if [ $? -eq 0 ]

then

exit

else

sh /etc/cloudflare/attack.sh

fi

解释每行代码:

- cat / proc / loadavg | colrm 6> ddos.ini #grabs服务器加载并将其保存到名为cron.ini的文件中

- grep -w“[0.00-6.00]”$ FILE“/ dev / null #checks如果服务器负载在0到6之间(可任意更改)

- if[$?-eq 0]#如果服务器负载介于0和6之间,不运行attack.sh

- else#如果不在0和6之间,运行/etc/cloudflare/attack.sh 自动在CloudFlare开启I am Attack模式



创建并编辑切换Attack脚本

   nano /etc/cloudflare/attack.sh

 脚本内容

curl https://www.cloudflare.com/api_json.html \
 -d 'a=sec_lvl' \
 -d 'tkn=你在CloudFlare获得的API' \
 -d 'email=你在CloudFlare注册的邮箱' \
 -d 'z=你在CloudFlare托管的域名' \
 -d 'v=help'

自行替换中文内容并保存



设置两个脚本的执行权限

chmod u + x /etc/ddos/ddos.sh
chmod u + x /etc/ddos/attack.sh

设置本地监控执行

crontab -e

在文件末尾加上

* * * * * sh /etc/cloudflare/run.sh
* * * * * ( sleep 15 ; sh /etc/cloudflare/run.sh )
* * * * * ( sleep 30 ; sh /etc/cloudflare/run.sh )
* * * * * ( sleep 45 ; sh /etc/cloudflare/run.sh )
/etc/cloudflare/run.sh)10,40 * * * * sh /etc/cloudflare/unblock.sh

创建接解除锁定脚本

nano /etc/cloudflare/unblock.sh

脚本内容

cat /proc/loadavg | colrm 6 > cron.ini
FILE=cron.ini

grep -w "[0.00-5.00]" $FILE >/dev/null

if [ $? -eq 0 ]

then

sh /etc/cloudflare/noattack.sh

else

exit

fi

创建关闭Attack脚本

nano /etc/cloudflare/noattack.sh

脚本内容

curl https://www.cloudflare.com/api_json.html \
 -d 'a=sec_lvl' \
 -d 'tkn=你在CloudFlare获得的API' \
 -d 'email=你在CloudFlare注册的邮箱' \
 -d 'z=你在CloudFlare托管的域名' \
 -d 'v=high'

自行替换中文内容并保存    还可以选择“med”,“low”或“eoff”(基本上关闭)作为默认级别。

修改脚本执行权限

    chmod u + x /etc/cloudflare/unblock.sh
    chmod u + x /etc/cloudflare/noattack.sh


大功告成,详情自测.

No comments:

Post a Comment