许多站长难免有这样的遭遇:自己的站被小学生无脑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
大功告成,详情自测.
脚本作者原文: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