阿里ESA自动开盾脚本
阿里云 ESA 自动开盾脚本
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
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秒运行一次也可以。
脚本内容填写如下两种方法,任选一种就行,别两个都用
1.
cd /root/AutoAntiCC_ESA
python3 esaanticc.py
2.
python3 /root/AutoAntiCC_ESA/esaanticc.py
添加好之后手动点一下运行,然后查看日志,没有问题的话就完事了。
感谢各位看到这里,如果可以的话欢迎使用我们的服务器,不定期更新实用的脚本和教程。