阿里ESA自动开盾脚本
阿里云 ESA 自动开盾脚本
1.介绍
通过计划任务检测服务器负载,在突然高负载疑似CC攻击时调用阿里云 ESA API启用防火墙策略的方式防御攻击,实现无攻击时完全不影响正常用户,有攻击时保证用户可以访问。
脚本每一分钟(可以自己设置)检测一次负载,当超过设定阈值时自动启用设置的ESA防火墙策略,启用后不会重复请求API,在十五分钟后如果负载已经恢复,则会自动关盾。然后重复以上操作。
脚本开源在Github,欢迎各位修改再发布,Github开源仓库地址:https://github.com/LangfordKuo/AutoAntiCC_ESA
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中。