linux网站5秒盾,宝塔面板建站后接入CF自动开启5秒盾证码脚本

news/2024/5/9 19:03:08/文章来源:https://blog.csdn.net/weixin_36379666/article/details/116929623

有大神分享了CF自动开启5秒盾 + 验证码脚本,原理就是通过检测系统负载(cpu或load)自动开启cloudflare UAM和challenge质询(验证码)!!

这里分享下宝塔面板下如何用起来,使用的前提是你的域名需要接入cloudflare。

1、简介

项目:https://github.com/jiuqiMax/autouam

2、申请api_key

开搞之前先申请CloudFlare API KEY,登录cf之后,点击右上角的个人资料(My Profile),选择{API Tokens}选择{Global API Key}

3、申请zone_id

回到后台首页,点击域名管理,在右侧就可以看到Zone ID

4、代码

脚本代码如下:

#!/bin/bash

#

# Usage:

# screen -dmS autouam &&

# screen -x -S autouam -p 0 -X stuff "bash /root/autouam.sh" &&

# screen -x -S autouam -p 0 -X stuff $'\n'

#

mode="load"

# 两种模式可选,一:cpu 二:load

challenge="1"

# 是否同时开启验证码质询 设为1即开启

keeptime="300"

# ≈开盾最小时间,如60 则开盾60秒内负载降低不会关,60秒后关

interval="0.5"

# 检测间隔时间,默认0.5秒

email="wdnmd@cloudflare.com"

# CloudFlare 账号邮箱

api_key="(´இ皿இ`)"

# CloudFlare API KEY

zone_id="ಥ_ಥ"

# 区域ID 在域名的概述页面获取

default_security_level="high"

# 默认安全等级 关闭UAM时将会把安全等级调整为它

api_url="https://api.cloudflare.com/client/v4/zones/$zone_id/settings/security_level"

# API的地址

api_url1="https://api.cloudflare.com/client/v4/zones/$zone_id/firewall/access_rules/rules"

# API的地址之二

# 安装依赖

if [ ! $(which jq 2> /dev/null) ]; then

echo "jq not found!"

if [ -f "/usr/bin/yum" ] && [ -d "/etc/yum.repos.d" ]; then

yum install jq -y

elif [ -f "/usr/bin/apt-get" ] && [ -f "/usr/bin/dpkg" ]; then

apt-get install jq -y

fi

fi

for((;;))

do

if [ "$mode" = "cpu" ];

then

check=90 #5秒内CPU连续超过80 则开启UAM【可以根据您的服务器负荷情况调整】

#系统空闲时间

TIME_INTERVAL=5

time=$(date "+%Y-%m-%d %H:%M:%S")

LAST_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')

LAST_SYS_IDLE=$(echo $LAST_CPU_INFO | awk '{print $4}')

LAST_TOTAL_CPU_T=$(echo $LAST_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')

sleep ${TIME_INTERVAL}

NEXT_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')

NEXT_SYS_IDLE=$(echo $NEXT_CPU_INFO | awk '{print $4}')

NEXT_TOTAL_CPU_T=$(echo $NEXT_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')

#系统空闲时间

SYSTEM_IDLE=`echo ${NEXT_SYS_IDLE} ${LAST_SYS_IDLE} | awk '{print $1-$2}'`

#CPU总时间

TOTAL_TIME=`echo ${NEXT_TOTAL_CPU_T} ${LAST_TOTAL_CPU_T} | awk '{print $1-$2}'`

load=`echo ${SYSTEM_IDLE} ${TOTAL_TIME} | awk '{printf "%.2f", 100-$1/$2*100}'`

else

load=$(cat /proc/loadavg | colrm 5)

check=$(cat /proc/cpuinfo | grep "processor" | wc -l)

fi

if [ ! -f "status.txt" ];then

echo "" > status.txt

else

status=$(cat status.txt)

fi

now=$(date +%s)

time=$(date +%s -r status.txt)

echo "当前$mode负载:$load"

if [[ $status -eq 1 ]]

then

echo "UAM ON!"

else

echo "UAM OFF!"

fi

newtime=`expr $now - $time`

closetime=`expr $keeptime - $newtime`

if [[ $load

then

echo -e "\n$mode负载低于$check,当前已开盾超过规定时间$newtime秒,尝试调整至默认安全等级($default_security_level)"

# Disable Under Attack Mode

result=$(curl -X PATCH "$api_url" \

-H "X-Auth-Email: $email" \

-H "X-Auth-Key: $api_key" \

-H "Content-Type: application/json" \

--data "{

\"value\": \"$default_security_level\"

}" --silent \

| jq -r '.success')

if [ "$result" = "true" ]; then

echo 0 > status.txt

echo -e "\n成功"

fi

if [ "$challenge" -eq 1 ]; then

rulesid=$(curl -X GET "$api_url1?per_page=1000&mode=challenge&configuration.target=country" \

-H "X-Auth-Email: $email" \

-H "X-Auth-Key: $api_key" \

-H "Content-Type: application/json" \

--silent \

| jq -r '.result[].id')

for i in $rulesid

do

result=$(curl -X DELETE "$api_url1/$i" \

-H "X-Auth-Email: $email" \

-H "X-Auth-Key: $api_key" \

-H "Content-Type: application/json" \

--data "{

\"cascade\": \"none\"

}" --silent \

| jq -r '.success')

if [ "$result" = "true" ]; then

echo -e "\n删除验证码 成功 ID: $i"

fi

done

fi

elif [[ $load

then

echo -e "\n$mode负载低于$check,不做任何改变,状态持续了$newtime秒"

if [[ $status -eq 1 ]]

then

echo -e "将于$closetime秒后调整安全等级至$default_security_level"

fi

elif [[ $load >$check ]] && [[ $status -eq 1 ]] && [[ $newtime -gt $keeptime ]]

then

echo -e "\n$mode负载高于$check,当前已开启UAM超过$keeptime秒,UAM无效"

elif [[ $load >$check ]] && [[ $status -eq 1 ]]

then

echo -e "\n$mode负载高于$check,当前已开启($newtime秒),请再观察"

elif [[ $load >$check ]]

then

echo -e "\n$mode负载高于$check,开启UAM"

# Enable Under Attack Mode

result=$(curl -X PATCH "$api_url" \

-H "X-Auth-Email: $email" \

-H "X-Auth-Key: $api_key" \

-H "Content-Type: application/json" \

--data "{

\"value\": \"under_attack\"

}" --silent \

| jq -r '.success')

if [ "$result" = "true" ]; then

echo 1 > status.txt

echo -e "\n成功"

fi

if [ "$challenge" -eq 1 ]; then

for i in AF AX AL DZ AS AD AO AI AQ AG AR AM AW AU AT AZ BS BH BD BB BY BE BZ BJ BM BT BO BQ BA BW BV BR IO BN BG BF BI KH CM CA CV KY CF TD CL CN CX CC CO KM CG CD CK CR CI HR CU CW CY CZ DK DJ DM DO EC EG SV GQ ER EE ET FK FO FJ FI FR GF PF TF GA GM GE DE GH GI GR GL GD GP GU GT GG GN GW GY HT HM VA HN HK HU IS IN ID IR IQ IE IM IL IT JM JP JE JO KZ KE KI KP KR KW KG LA LV LB LS LR LY LI LT LU MO MK MG MW MY MV ML MT MH MQ MR MU YT MX FM MD MC MN ME MS MA MZ MM NA NR NP NL NC NZ NI NE NG NU NF MP NO OM PK PW PS PA PG PY PE PH PN PL PT PR QA RE RO RU RW BL SH KN LC MF PM VC WS SM ST SA SN RS SC SL SG SX SK SI SB SO ZA GS SS ES LK SD SR SJ SZ SE CH SY TW TJ TZ TH TL TG TK TO TT TN TR TM TC TV UG UA AE GB UM UY UZ VU VE VN VG VI WF EH YE ZM ZW XX T1

do

result=$(curl -X POST "$api_url1" \

-H "X-Auth-Email: $email" \

-H "X-Auth-Key: $api_key" \

-H "Content-Type: application/json" \

--data "{

\"mode\": \"challenge\",

\"configuration\": {

\"target\": \"country\",

\"value\": \"$i\"

}

}" --silent \

| jq -r '.success')

if [ "$result" = "true" ]; then

echo -e "\n开启对$i国家的验证码 成功"

fi

done

fi

else

echo 0 > status.txt

fi

sleep $interval

clear

done

注意:该修改的地方,要修改。

5、计划任务

宝塔面板的计划任务中新建一个脚本任务

保存之后,可以试着执行下看看效果:

post_loading.gif

6、最后

如果你的站点被攻击频繁,可以试着把执行周期改成每天,或者每小时啥的,这个自行调整。如果有更新,请自行进入项目获取最新脚本。

注意!默认challenge=1,将在开启UAM的同时开启验证码。如果你不想,请将它设为0

AD:【校园卡申请助手】优惠校园卡套餐办理!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_820667.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站部署到linux 在进行压测,在Linux CentOS上搭建Jmeter压测环境

本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程,来满足我们日常工作中对于压力测试环境搭建、压力测试执行过程的需求。一、首先我们要准备四个东西,在搭建环境的时候需要使用到1、Xshell、puTTy等终端连接工具(…

几个可以免费下载知网文档,和查重的网站

前一段时间小七分享过几个免费下载知网,万方等一下写论文下载文献的方法,当时有小伙伴在后台询问有没有论文免费查重的方法,其实小七手里面有几个可以免费查看论文权重的软件,但是小七却没有分享,因为这些软件都是个人…

两个免费的文献翻译网站,支持多种专业翻译,多种语言!

小七,小七,有没有文档翻译软件,免费不花钱的那种 简单,安排 搜狗翻译:https://fanyi.sogou.com/ 搜狗翻译,不用注册账号,直接上传文档翻译即可。支持文字,图片,10兆以…

永进课堂-三个网站

相遇是缘!❤️❤️永进舫❤️❤️ ❤️❤️❤️青龙中学❤️❤️ ❤️❤️❤️❤️永进课堂❤️❤️

查看兼容性情况的网站

2019独角兽企业重金招聘Python工程师标准>>> http://caniuse.com/ 转载于:https://my.oschina.net/daladida/blog/1547789

python视频网站项目_Python开发视频哪个好

3、程序的可移植性:你编写的代码可以放到几个平台上去运行,比如windows,linux,unix。 4、很多标准库和第三方库:等你了解python标准库的时候,你就会觉的它的标准库太多了,而且功能和强大,从字符处理到网络处…

一次网站性能排查实录

接到一个求助电话,说是有个阿里云上的服务器,有性能瓶颈,但又没有什么具体的数据,只是说偶尔客户端有少数连接不上,或者连接会突然中断。我的天,最怕这种状况了,还得自己去找问题表现是什么&…

如何生成kml文件_帝国CMS如何自动生成sitemap.xml网站地图文件

登录网站的后台http://你的域名/e/admin/进入后台栏目 》增加自定义页面 》选择直接页面&#xff0c;页面名称为&#xff1a;网站地图&#xff0c;文件名修改为 ../../sitemap.xml<?xml version"1.0" encoding"UTF-8"?>?>[!--news.url--]daily…

《梦公园》网站策划设计

呈现奢华视觉体验&#xff0c;《梦公园》网站策划设计 公元2005年底 北京VNOISE 为 梦公园 开始筹划网站&#xff0c;打造符合梦公园公司独特气质的网络形象策划和网站设计。 项目地址&#xff1a;http://www.dreamgarden.com.cn北京VNoise视觉互动公司&#xff1a;http://www.…

基于Python-Flask实现的网站例子

概述 使用Flask写的体育网站 包括&#xff08;注册 论坛 文章评论 组建战队 后台管理&#xff09;等功能 示例地址文中有写 萌新 请多指教详细 代码下载&#xff1a;http://www.demodashi.com/demo/12380.html 项目示例地址: 网站演示 一、环境搭建 1. 安装配置python3.6 示例网…

北美程序员实用网站

2019独角兽企业重金招聘Python工程师标准>>> 刷题类 https://leetcode.comhttps://www.hackerrank.com 面试工具/代码协同 https://coderpad.io 在线预约 https://www.zoho.com/calendar 问答社区 https://piazza.com 培训机构 https://www.bittiger.io 免费课程 h…

《大型网站技术架构:核心原理与案例分析》读书笔记 - 第2篇 架构

第2篇 架构 4 瞬时响应&#xff1a;网站的高性能架构 34 4.1 网站性能测试 35 性能测试是性能优化的前提和基础&#xff0c;也是性能优化结果的检查和度量标准。 4.1.1 不同视角下的网站性能 35 用户&#xff1a;直观感受到的快慢开发&#xff1a;应用程序本身运维&#xff1a;…

ASP.NET : 如何为网站添加自定义的文件类型

我们知道&#xff0c;在ASP.NET网站中&#xff0c;默认页面的扩展名是aspx.要想实现在网站中提供特殊的文件类型&#xff0c;例如Test之类的,就可以考虑通过HttpHandler来实现。下面是一个小的例子 1. HttpHandlerusing System; using System.Collections.Generic; using Syste…

个人博客建站最全解析

大家好~又见面了。 今天呢我想给大家&#xff0c;也给我自己&#xff0c; 对我的个人网站yanyy.cn/yanyy 做一个全面的整理和分析。 也给有这方面想法的朋友一个参考。 做网站的有爱好也有带有目的性的。 不过我还是希望大家能够传播正能量~ 进入正题 网站首页 看到上图&#x…

网站列目录问题

1.用apache搭建好网站发现可以列目录 修改/etc/apache.conf 将此处Index删除掉保存重启apache即可 转载于:https://www.cnblogs.com/websecyw/p/10608848.html

[转] IIS 启动和停止单个网站

本文转自&#xff1a;http://technet.microsoft.com/zh-cn/library/cc775930(WS.10).aspx 默认情况下&#xff0c;站点将在计算机启动时自动启动。停止站点不会影响其他正在运行的 Internet 服务。暂停站点将禁止 Internet 服务接受新的连接&#xff0c;但不影响正在进行处理的…

关于onmouseover和onmouseout的bug

总结了一下关于使用onmouseover以及onmouseout会出现的bug 首先简单的布局&#xff1a; <div id"box"><div>这是一个内容</div> </div> 简单写了一下样式&#xff0c;效果如下&#xff1a; js代码如下&#xff1a; var oBox document.getEl…

Visual Studio 2010 网站发布方法 总结

Publish method &#xff1a; Web Deploy Service URL&#xff1a;localhost Site/application: /lm/w3svc/1/ROOT/MvcMusicStore 这样就能往本机的IIS发布。比VS2008的直观地往本机发布的方式&#xff0c;用户体验差多了。哎&#xff0c;哥们凑合用吧。 其他方法&#xff1a;&…

阿里云助力中小企业建站 在线免费自助建站成新用户首选

阿里云助力中小企业建站 在线免费自助建站成新用户首选 提供云计算服务的行业头部企业-阿里云&#xff0c;对于广大中小企业来说&#xff0c;应该都不陌生。在企业需要建设自己官方网站&#xff0c;或者个人需要建设个人网站时&#xff0c;一般都需要购买网站空间或者云服务器来…

大型网站技术架构(三)架构核心要素

2019独角兽企业重金招聘Python工程师标准>>> 所谓架构&#xff0c;一种通俗的说法就是“最高层次的规划&#xff0c;难以改变的决定”&#xff0c;这些规划和决定奠定了事物未来发展的方向和最终的蓝图。 而软件架构即“有关软件整体结构与组件的抽象描述&#xff0…