web应用防火墙ngx_lua_waf的折腾经历

网上有很多ngx_lua_waf的文章,但深入介绍的很少,如:如何把结果写入数据库,拦截的情况通过页面展示,于是自己折腾了一下,称不上研究。

先看下载地址及作者的说明:

https://github.com/loveshell/ngx_lua_waf

下载后看install.sh就知道安装哪些软件:

1.lua-5.1.5.tar.gz

2.ngx_devel_kit v0.2.17rc2.zip

3.lua-nginx-module v0.9.16(https://github.com/openresty/lua-nginx-module)作者说过:(ngx_lua如果是0.9.2以上版本,建议正则过滤函数改为ngx.re.find,匹配效率会提高三倍左右)

nginx相关:

4.pcre-8.10.tar.gz

5.nginx-1.9.4.tar.gz (版本可自行选择)

lua写入mysql相关:

6.lua-5.1.5.tar.gz

7.luasql-2.1.1.tar.gz

操作系统:cento5/cento6均安装配置成功.

除了lua及luasql安装时遇到一些问题,其它都很顺利。

luasql安装参考:http://blog.csdn.net/caianye/article/details/24959083

安装前先安装: readline-devel ncurses-devel ,使用 yum安装即可。

安装lua遇到错误:

解决:

修改src下Makefile找到linux位置

linux:

安装Lusql遇到错误

错误一:

错误二:

解决:

修改config文件添加红色部分:

修改init.lua文件在log函数写文件处插入如下代码:(修改连接数据库的IP及密码信息),先建好表,结构看insert语句:

(如上图备注的位置 )

这样就成功写入数据库中了,如果无法写入,可查看nginx的错误日志。

配置说明

通过网页图形展示waf拦截情况,请持续关注:)

相关文章参考《腾讯门神:WAF应用层实现的架构漫谈

【via@ 知安-专业种田