OpenResty + ngx_lua_waf使用
本篇介绍在CentOS7.6上安装、测试使用ngx_lua_waf + openresty。
Preface
# yum install epel-release -y
# yum group install "Development Tools" -y # 安装基本编译工具
安装Luagit
# cd /opt/
# wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
# tar -xvf LuaJIT-2.1.-beta3.tar.gz
# cd LuaJIT-2.1.-beta3/
# make && make install
# ln -sf luajit-2.1.-beta3 /usr/local/bin/luajit
安装OpenResty
安装依赖
# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
下载安装
# cd /opt/
# wget https://openresty.org/download/openresty-1.13.6.1.tar.gz
# tar -xvf openresty-1.13.6.1.tar.gz
# cd openresty-1.13.6.1/
# ./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit
# gmake && gmake install
# ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/local/openresty/bin/openresty
# /usr/local/openresty/bin/openresty # 启动openresty
# netstat -lntp | grep 80 # 服务运行正常
tcp 0.0.0.0: 0.0.0.0:* LISTEN
配置ngx_lua_waf
下载
# cd /usr/local/openresty/nginx/conf # 到openresty配置文件目录
# git clone https://github.com/loveshell/ngx_lua_waf.git # 下载
Cloning into 'ngx_lua_waf'...
# mv ngx_lua_waf/ waf/ # 改个简单的名字
添加配置
修改openresty配置文件。
# vim /usr/local/openresty/nginx/conf/nginx.conf
...
user nobody; # 取消注释
...
http{ # 在http块下添加如下内
...
lua_package_path "/usr/local/openresty/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/openresty/nginx/conf/waf/init.lua;
access_by_lua_file /usr/local/openresty/nginx/conf/waf/waf.lua;
...
修改ngx_lua_waf配置
# cd /usr/local/openresty/nginx/conf/waf/ # ngx_lua_waf目录
# vim config.lua
...
RulePath = "/usr/local/openresty/nginx/conf/waf/wafconf/" # 规则文件路径
attacklog = "on" # 启用日志
logdir = "/usr/local/openresty/nginx/logs/hack/" # 日志目录
...
创建日志目录
# mkdir -p /usr/local/openresty/nginx/logs/hack/
# chown -R nobody:nobody /usr/local/openresty/nginx/logs/hack/
测试openresty配置是否正常:
# /usr/local/openresty/bin/openresty # 如果没有启动服务,则启动
# /usr/local/openresty/bin/openresty -s reload # 如果已经启动,则重载配置
# /usr/local/openresty/bin/openresty -t # 测试配置是否正常
nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
WAF测试
直接访问站点(此处为虚拟机的ip地址),应该能看到Openresty的欢迎页。
攻击测试
尝试目录遍历攻击,即使用../,跳转目录读取文件。
访问:http://192.168.139.139//test.php?id=../etc/passwd
提示,检测到攻击行为,请求被拦截,说明可以正常工作。
ngx_lua_waf配置文件说明
配置文件路径:/usr/local/openresty/nginx/conf/waf/config.lua
RulePath = "/usr/local/openresty/nginx/ngx_lua_waf/wafconf/" ##指定相应位置
attacklog = "on" ##开启日志
logdir = "/usr/local/openresty/nginx/logs/hack/" ##日志存放位置
UrlDeny="on" ##是否开启URL防护
Redirect="on" ##地址重定向
CookieMatch="on" ##cookie拦截
postMatch="on" ##post拦截
whiteModule="on" ##白名单
black_fileExt={"php","jsp"}
ipWhitelist={"127.0.0.1"} ##白名单IP
ipBlocklist={"1.0.0.1"} ##黑名单IP
CCDeny="on" ##开启CC防护
CCrate="100/60" ##60秒内允许同一个IP访问100次
参考
centos下安装openresty+ngx_lua_waf防火墙部署
https://github.com/loveshell/ngx_lua_waf
https://blog.51cto.com/tar0cissp/1980249
注:参考链接中都有几个小问题,写的不够清晰。
OpenResty + ngx_lua_waf使用的更多相关文章
- openresty+lua劫持请求,有点意思
0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了一些邪恶的东西:反代既然是所有流量走我的服务器,那我是不是能够在中途做些手脚,达到一些有趣的目的. op ...
- OpenResty安装使用教程(CentOS 6)
一.安装OpenResty Linux官方建议直接通过官方提供的预编译包安装:http://openresty.org/cn/linux-packages.html # 确保yum周边工具已经安装 y ...
- nginx安装ngx_lua_waf防护
ngx_lua_waf基于ngx_lua的web应用防火墙,使用起来简单,高性能和轻量级. ♦防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击♦防止svn/备份之类 ...
- ngx_lua_waf
Web应用防护系统Web Application Firewall,简称WAF.针对HTTP/HTTPS的安全策略专门为Web应用提供保护的产品. OpenResty是一个基于 Nginx 与 Lua ...
- Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00 前言 ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+ ...
- 打破基于OpenResty的WEB安全防护(CVE-2018-9230)
原文首发于安全客,原文链接:https://www.anquanke.com/post/id/103771 0x00 前言 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 We ...
- Openresty增加waf配置
Openresty增加waf配置 1. Ngx lua waf 说明 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止Apach ...
- openresty+lua在反向代理服务中的玩法
openresty+lua在反向代理服务中的玩法 phith0n · 2015/06/02 10:35 0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了 ...
- 23. Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00 前言 ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(f ...
随机推荐
- .net mvc Bundle 自己配置
遇到了个坑 来和大家分享一下 1.一个空的mvc项目需要引用 System.Web.Optimization 2.然后nuget添加 microsoft ASP.NET WEB OPTIMIZATIO ...
- [bzoj4443] [loj#2006] [洛谷P4251] [Scoi2015]小凸玩矩阵
Description 小凸和小方是好朋友,小方给小凸一个 \(N \times M\)( \(N \leq M\) )的矩阵 \(A\) ,要求小秃从其中选出 \(N\) 个数,其中任意两个数字不能 ...
- 共享excel工作簿
- 一题多解——Strategic Game
点击打开题目 题目大意:给定一棵无根树,点亮其中某些点,使得这棵树的所有边都连接着一个以上的点亮的点 贪心中比较有挑战的题 由于如果点亮叶节点,就只会照亮一条边,但点亮它的父亲,就可以照亮除此边以外的 ...
- 龙芯2f 8089D 笔记本 Debian 系统安装配置
版权声明:原创文章,未经博主允许不得转载 正文主要讲述安装社区版Debian6镜像(也有7和8,方法大同小异) 最后简单介绍了网络安装原版Debian 小记 非网络安装,没网也没事,再也不用担心网速度 ...
- 记一次阿里云LVM扩容与 LVM 相关知识学习
一.lvm 扩容 问题: 我们阿里云服务器有一个磁盘容量为 1T ,但是最近由于业务的扩增,磁盘容量已经不够了,需要增大磁盘的容量.磁盘挂载在 /home,使用的是 LVM.我们现在需要对磁盘进行扩容 ...
- 【WPF学习】第二十六章 Application类——应用程序的生命周期
在WPF中,应用程序会经历简单的生命周期.在应用程序启动后,将立即创建应用程序对象,在应用程序运行时触发各种应用程序事件,你可以选择监视其中的某些事件.最后,当释放应用程序对象时,应用程序将结束. 一 ...
- Docker基础内容之镜像
概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 下图展示的是Docker镜像的系统结构.其中, ...
- SonarQube代码管理
一 搭建过程不详细说 二 配合jenkins使用,jenkins搭建过程这里不详细说 三 jenkins项目配置,需要安装sonarqube-jenkins插件 sonar.projectKey=a6 ...
- 基于Mybatis的bookstore架构模型
总共分为Control,dao,enter,entity,service,util,view这几层.同时还含有一个mapperconfig.xml文件. 1,mapperconfig.xml 这里面用 ...