开发者社区 问答 正文

云服务器 ECS Linux 下 Tengine 结合 lua 如何防御 cc 攻击

本文介绍一种 Tengine 结合 lua 防御 cc 攻击的案例。用户可以进行相关尝试,但本文只用于操作演示,不对操作结果和出现的问题负责。

下载和安装 tengine 与 luajit



tengine下载地址 http://tengine.taobao.org/   选择稳定的安装包下载编译安装即可。这里用的包是 tengine-2.1.1.tar.gz。
luajit 下载地址 http://luajit.org/download.html  选择稳定的安装包下载编译安装即可。这里用的包是LuaJIT-2.0.4.tar.gz。
安装的步骤如下:
1、安装环境需要的基础文件 yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel -y
2、下载和安装 LuaJIT-2.0.4.tar.gz wget http://luajit.org/download/LuaJIT-2.0.4.tar.gztar zxvf LuaJIT-2.0.4.tar.gzcd LuaJIT-2.0.4make
make install PREFIX=/usr/local/luajit
出现以下红框信息显示安装成功了,可以进行下一步了

3、下载和安装 tengine-2.1.1.tar.gz wget http://tengine.taobao.org/download/tengine-2.1.1.tar.gztar zxvf tengine-2.1.1.tar.gzcd tengine-2.1.1./configure --prefix=/opt/nginx --with-http_lua_module --with-luajit-lib=/usr/local/luajit/lib/ --with-luajit-inc=/usr/local/luajit/include/luajit-2.0/ --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib
make && make install


下载和配置 ngx_lua_waf



nginx下常见的开源 waf 有 mod_security、naxsi、ngx_lua_waf 这三个,ngx_lua_waf 性能高和易用性强,基本上零配置,而且常见的攻击类型都能防御,是比较省心的选择。
其git 地址为 https://github.com/loveshell/ngx_lua_waf
1.下载配置文件 wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip
2. 解压缩 unzip master.zip
3. 移动到nginx的目录下 mv ngx_lua_waf-master /opt/nginx/conf/
4. 重命名 cd /opt/nginx/conf/mv ngx_lua_waf-master  waf
5. 修改 ngx_lua_waf 配置文件适应当前的 nginx 环境。修改以下文件的三行即可(修改/opt/nginx/conf/waf下的config.lua文件,将RulePath和logdir改为实际的目录:) cat /opt/nginx/conf/waf/config.lua|head -n3RulePath = "/opt/nginx/conf/waf/wafconf/"attacklog = "on"logdir = "/opt/nginx/logs/waf"

修改 tengine 的配置文件应用 ngx_lua_waf



在 nginx.conf 的 http 段添加 lua_package_path "/opt/nginx/conf/waf/?.lua";lua_shared_dict limit 10m;init_by_lua_file  /opt/nginx/conf/waf/init.lua;access_by_lua_file /opt/nginx/conf/waf/waf.lua;
启动 tengine--nginx 服务 /opt/nginx/sbin/nginx  -tthe configuration file /opt/nginx/conf/nginx.conf syntax is ok/opt/nginx/sbin/nginx  -s reload

测试攻防的效果


1. 任意文件读取测试示例输出:

2. sql 注入测试示例输出:



展开
收起
boxti 2017-10-24 10:53:11 2805 分享 版权
阿里云 AI 助理回答

&& make install

在执行完 make 命令之后,您还需要运行 make install 来完成 tengine 的安装过程。这条命令会将编译好的 tengine 安装到之前 ./configure 指定的目录中(在这个案例中是 /opt/nginx)。请确保您有权限写入该目录。

完成以上步骤后,Tengine 与 LuaJIT 就安装成功并且 Tengine 已经集成了 Lua 支持。接下来,您可以开始配置 Tengine 使用 Lua 脚本来防御 CC(Challenge Collapsar)攻击。

配置 Tengine 使用 Lua 防御 CC 攻击

  1. 编写 Lua 脚本:首先,您需要创建一个 Lua 脚本,这个脚本将用于分析请求并实施防御策略。例如,您可以检查请求频率、IP黑名单等。脚本通常放在 Tengine 的 lua_shared_dict 目录下或指定的路径。

  2. 修改 Nginx 配置文件:打开 Tengine 的配置文件(一般位于安装目录下的 conf/nginx.conf),添加对 Lua 脚本的支持和调用。您可能需要配置 lua_package_path 指向您的 Lua 脚本目录,并在适当的位置(如 server 或 location 块内)使用 content_by_lua_file 指令来执行您的防 CC 攻击脚本。

    http {
       lua_package_path "/path/to/your/lua_scripts/?.lua;;";
    
       server {
           location / {
               content_by_lua_file /path/to/your/lua_script.lua;
               # ... 其他配置 ...
           }
           # ... 其他location或server配置 ...
       }
       # ... 其他http配置 ...
    }
    
  3. 重启 Tengine:修改配置后,记得重启 Tengine 以使更改生效。

    /opt/nginx/sbin/nginx -s reload
    

请注意,实际部署时,防御策略应根据实际情况调整,包括但不限于设置合理的阈值、考虑误报率、以及定期评估和更新防御规则。此外,务必在测试环境中先行验证这些配置,确保它们不会影响正常用户访问。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答