Nginx安装ngx_lua_waf改版,
Nginx安装ngx_lua_waf改版,
ngx_lua_waf改版,增加网段、UA、主机白名单等功能,修复了一些bug,项目地址:https://github.com/whsir/ngx_lua_waf
ngx_lua_waf改版基于ngx_lua_waf二次修改,增加了一些必要的功能,使用起来简单,高性能和轻量级。
主要功能如下:
防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
防止svn/备份之类文件泄漏
防止ApacheBench之类压力测试工具的攻击
屏蔽常见的扫描黑客工具,扫描器
屏蔽异常的网络请求
屏蔽图片附件类目录php执行权限
防止webshell上传
可以根据ip、网段、server_name、User-Agent做白名单
本文基于Centos7.x系统,关闭selinux,关闭防火墙(或自行设置规则)
想要使用ngx_lua_waf改版,首先要编译Nginx增加lua模块。
配置方法如下
1、安装所需依赖
1 | yum install wget gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel |
2、下载ngx_devel_kit
1 2 3 | cd /usr/local/src wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.1rc1.tar.gz tar xf v0.3.1rc1.tar.gz |
3、下载lua-nginx-module
1 2 | wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14.tar.gz tar xf v0.10.14.tar.gz |
4、安装luajit
1 2 3 4 | wget https://github.com/openresty/luajit2/archive/v2.1-20190329.tar.gz cd luajit2-2.1-20190329 make make install |
5、导入环境变量
1 2 | export LUAJIT_LIB=/usr/local/lib export LUAJIT_INC=/usr/local/include/luajit-2.1 |
6、编译nginx模块
1 2 3 4 5 6 7 8 | useradd -s /bin/false -M www cd /usr/local/src wget http://nginx.org/download/nginx-1.14.2.tar.gz tar xf nginx-1.14.2.tar.gz cd nginx-1.14.2 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --add-module=/usr/local/src/ngx_devel_kit-0.3.1rc1 --add-module=/usr/local/src/lua-nginx-module-0.10.14 --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB make make install |
7、设置Nginx启动服务
1 2 3 4 5 6 | ln -sv /usr/local/nginx/sbin/nginx /usr/local/sbin/ wget -P /etc/init.d/ http://down.whsir.com/downloads/nginx chmod +x /etc/init.d/nginx chkconfig --add nginx chkconfig nginx on /etc/init.d/nginx start |
8、下载ngx_lua_waf改版
1 2 3 4 | cd /usr/local/nginx/conf wget https://github.com/whsir/ngx_lua_waf/archive/v1.0.3.tar.gz tar xf v1.0.3.tar.gz mv ngx_lua_waf-1.0.3/ waf |
9、在nginx.conf的http字段内添加以下内容
1 2 3 4 | lua_package_path "/usr/local/nginx/conf/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /usr/local/nginx/conf/waf/init.lua; access_by_lua_file /usr/local/nginx/conf/waf/waf.lua; |
10、最后重启nginx(reload也可以的)
1 | /etc/init.d/nginx restart |
11、验证
访问http://域名或IP地址/index.php?id=../etc/passwd
例如:http://192.168.157.132/index.php?id=../etc/passwd
看到503 Service Temporarily Unavailable则表示配置成功
评论暂时关闭