前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自建WAF防火墙

自建WAF防火墙

作者头像
怀朔
发布2022-05-25 14:03:36
1.1K0
发布2022-05-25 14:03:36
举报
文章被收录于专栏:运维入门时间运维入门时间

介绍一种 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、安装环境需要的基础文件

代码语言:javascript
复制
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel -y

2、下载和安装 LuaJIT-2.0.4.tar.gz

代码语言:javascript
复制
wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar zxvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make
代码语言:javascript
复制
make install PREFIX=/usr/local/luajit

出现以下红框信息显示安装成功了,可以进行下一步了

3、下载和安装 tengine-2.1.1.tar.gz

代码语言:javascript
复制
wget http://tengine.taobao.org/download/tengine-2.1.1.tar.gz
tar zxvf tengine-2.1.1.tar.gz
cd tengine-2.1.1
代码语言:javascript
复制
./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
代码语言:javascript
复制
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.下载配置文件

代码语言:javascript
复制
wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip

2. 解压缩

代码语言:javascript
复制
unzip master.zip

3. 移动到nginx的目录下

代码语言:javascript
复制
mv ngx_lua_waf-master /opt/nginx/conf/

4. 重命名

代码语言:javascript
复制
cd /opt/nginx/conf/
mv ngx_lua_waf-master waf

5. 修改 ngx_lua_waf 配置文件适应当前的 nginx 环境。修改以下文件的三行即可(修改/opt/nginx/conf/waf下的config.lua文件,将RulePath和logdir改为实际的目录:)

代码语言:javascript
复制
cat /opt/nginx/conf/waf/config.lua|head -n3
RulePath = "/opt/nginx/conf/waf/wafconf/"
attacklog = "on"
logdir = "/opt/nginx/logs/waf"

修改 tengine 的配置文件应用 ngx_lua_waf


在 nginx.conf 的 http 段添加

代码语言:javascript
复制
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 服务

代码语言:javascript
复制
/opt/nginx/sbin/nginx -t

the configuration file /opt/nginx/conf/nginx.conf syntax is ok

代码语言:javascript
复制
/opt/nginx/sbin/nginx -s reload

测试攻防的效果

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维入门时间 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载和安装 tengine 与 luajit
  • 下载和配置 ngx_lua_waf
  • 修改 tengine 的配置文件应用 ngx_lua_waf
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档