【开源】全网首发,阿里云ESA自动开盾脚本,零成本防御CC攻击

阿里云 ESA 自动开盾脚本

CloudFlare自动开盾脚本https://www.nodeseek.comhttp://127.0.0.1:5001/post-565557-1

1.介绍

通过计划任务检测服务器负载,在突然高负载疑似CC攻击时调用阿里云 ESA API启用防火墙策略的方式防御攻击,实现无攻击时完全不影响正常用户,有攻击时保证用户可以访问。

脚本每一分钟(可以自己设置)检测一次负载,当超过设定阈值时自动启用设置的ESA防火墙策略,启用后不会重复请求API,在十五分钟后如果负载已经恢复,则会自动关盾。然后重复以上操作。

脚本开源在Github,欢迎各位修改再发布,Github开源仓库地址:https://github.com/LangfordKuo/AutoAntiCC_ESA

如果Github打不开,可以使用此链接直接下载:https://lyew.com/upload/autoanticc/AutoAntiCC_ESA.zip

2.阿里云ESA配置

域名如何接入ESA这里就不过多赘述了,网上有很多教程,我们这里首先需要创建一个安全规则,脚本开盾并不是调用的“我正在被攻击模式”,而是自定义的规则,这样更加灵活。

首先打开左侧边栏展开规则选项,在里面找到安全规则,新建一条规则。

保存好规则之后,先把规则禁用掉,防止影响用户访问。
复制页面中的站点ID和规则ID,随便找个地方记一下,一会要用到。

如下图:

下一步我们需要获得AccessKey,注意,这个是非常敏感的信息,一定不能泄露!

根据下图进行操作

获取完AccessKey之后保存好,进入下一步脚本配置

3.脚本配置

下载文章开头的文件解压出来,或者直接clone仓库都可以,看你习惯用哪个

编辑脚本目录中的esa_config.json文件。

参考图如下:

这些都配置好之后就可以开始服务器端的配置了。

4.服务器端配置

现在来到最麻烦的部分了,如果你的Python版本低于3.7就需要你自己去更新Python版本了,我们这边就不教了
先安装所需要的环境,如果你是CentOS系统,很可能Python版本会低于3.7,建议直接换Ubuntu或者Debian的最新版本

CentOS系统基础环境配置教程

yum install python3 -y

或者

dnf install python3 -y

尝试使用pip3安装运行库

pip3 install alibabacloud_esa20240910==2.34.0
pip3 install requests

如果报错提示没有这么高的版本,那就尝试不指定版本安装(可能脚本运行时会报错)

pip3 install alibabacloud_esa20240910
pip3 install requests

Ubuntu/Debian系统基础环境配置

如果你是新版本的Ubuntu或Debian系统,你几乎不会遇到任何问题

安装Python3以及pip3

apt install python3
apt install python3-pip

安装脚本所需运行库

pip3 install alibabacloud_esa20240910==2.34.0
pip3 install requests

如果安装报错失败,可以尝试下面这种方法

pip3 install alibabacloud_esa20240910==2.34.0 --break-system-packages
pip3 install requests --break-system-packages

安装好所需环境之后我们开始下载脚本

下载方法1(两种方法任选其一,哪个能用用哪个)

wget https://lyew.com/upload/autoanticc/AutoAntiCC_ESA.zip
unzip AutoAntiCC_ESA.zip
cd AutoAntiCC_ESA

下载方法2(两种方法任选其一,哪个能用用哪个)

git clone https://github.com/LangfordKuo/AutoAntiCC_ESA
cd AutoAntiCC_ESA

下载好脚本之后,把刚刚在电脑上修改好的esa_config.json文件,替换到服务器的esa_config.json中。
方法有很多,怎么上传文件或者编辑服务器上的文件我就不多说了。

配置文件上传好之后,可以先修改阈值到0.01,然后使用python3 esaanticc.py命令运行一次脚本,前往阿里云后台查看WAF规则有没有正常启用。
如果正常启用,那说明都配置好了,接下来把阈值改回正常值,然后删掉脚本目录下的esa.txt

5.在宝塔面板配置计划任务

打开宝塔面板的计划任务页面,点击添加,任务类型选择Shell脚本,任务名称自己设置。
执行周期设置每一分钟,或者按秒运行,每30秒运行一次也可以。

脚本内容填写如下两种方法,任选一种就行,别两个都用

cd /root/AutoAntiCC_ESA
python3 esaanticc.py
python3 /root/AutoAntiCC_ESA/esaanticc.py

添加好之后手动点一下运行,然后查看日志,没有问题的话就完事了。
感谢各位看到这里,如果可以的话欢迎使用我们的服务器,点击我签名的链接就行。
不定期更新实用的脚本和教程。

点赞
  1. 她说是晒黑的说道:

    esa一天几十G就封域名,别玩了,钉钉群很多都被封禁了,套路云

  2. Langford说道:

    @bluesking
    @huohuoma
    @475768625
    脚本教程发了

回复 Langford 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮