nginx_lua_waf安装测试

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
简介:

ngx_lua_waf是一个基于lua-nginx-module(openresty)的web应用防火墙,对于中小企业或不愿购置硬件防火墙的企业的首选,能有效保证网站的安全性。 

源码:https://github.com/loveshell/ngx_lua_waf


0x1  安装部署

系统版本:Centos7 x86_64 


安装依赖包

yum install -y readline-devel pcre-devel openssl-devel


1、openresty的安装配置

cd /usr/local/src


wget https://openresty.org/download/openresty-1.9.15.1.tar.gz 

tar -zxvf openresty-1.9.15.1.tar.gz 


cd openresty-1.9.15.1 


./configure --prefix=/usr/local/openresty-1.9.15.1 --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit


gmake && gmake install


ln -s /usr/local/openresty-1.9.15.1/ /usr/local/openresty


测试启动nginx

/usr/local/openresty/nginx/sbin/nginx -t


成功启动nginx显示如下 

nginx: the configuration file /usr/local/openresty-1.9.15.1/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/openresty-1.9.15.1/nginx/conf/nginx.conf test is successful


启动nginx

/usr/local/openresty/nginx/sbin/nginx


2、配置nginx_lua_waf

git clone https://github.com/loveshell/ngx_lua_waf.git

将git获取的文件放到nginx的conf目录下

在nginx.conf的http段添加

lua_package_path "/usr/local/openresty/nginx/conf/ngx_lua_waf/?.lua";

lua_shared_dict limit 10m;

init_by_lua_file /usr/local/openresty/nginx/conf/ngx_lua_waf/init.lua;

access_by_lua_file /usr/local/openresty/nginx/conf/ngx_lua_waf/waf.lua;

配置config.lua里的waf规则目录(一般在ngx_lua_waf/wafconf/目录下)

RulePath = "/usr/local/openresty/nginx/conf/ngx_lua_waf/wafconf"

attacklog = "on"

logdir = "/usr/local/nginx/logs/waf"

 

3、waf日志配置

#将nginx.conf首行的”# user nobody;”的”#”注释去掉,重新启动nginx服务 user nobody #将防护日志目录所属user和group修改为nobody,目录权限可设为700也可以写入,当然也可以默认

cd /usr/local/nginx/conf 

//chown -R nobay.nobady waf 

//chmod 700 waf


因为nginx、php模块等是单独安装的,所以每次重启服务器都需要重启相应的服务

启动nginx

cd  /usr/local/openresty/nginx/sbin

./nginx   (不关闭nginx而重新加载配置文件   ./nginx  -t)




0x2  nginx_lua_waf测试

启动php

直接执行/usr/sbin/php-fpm

测试SQL注入漏洞

f090a0947a33c0f226e924b861a481f9.png-wh_


测试结果

6abdacb3269720682b3e47d77a6398db.png-wh_


测试任意文件读取

4fa86ef73f1a6993a4045bdabf39aea1.png-wh_


进行CC攻击测试

41cdfdb1dbcf7eedda1f53a595589ee8.png-wh_


通过查看waf_logs可以看到waf拦截的所有的攻击操作

909f018bed3c69a02e515cd117ae2aa0.jpg-wh_


通过waf_logs可以看到无论是sql注入、任意文件读取还是CC攻击都被成功的拦截,waf的部署是成功可靠的!





     本文转自Tar0 51CTO博客,原文链接:http://blog.51cto.com/tar0cissp/1980249,如需转载请自行联系原作者



相关文章
|
1月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
149 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
50 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
1月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
1月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
1月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
99 0
Mac os 安装 nginx 教程(success)
|
1月前
|
Ubuntu 搜索推荐 应用服务中间件
Nginx安装与使用
Nginx安装与使用
|
1月前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
1月前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
1月前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
1月前
|
Ubuntu Unix 应用服务中间件
Ubuntu16.04.1 安装Nginx
Ubuntu16.04.1 安装Nginx