TA的每日心情 | 无聊 4 天前 |
---|
签到天数: 1644 天 [LV.Master]伴坛终老
|
这里使用的是nginx自带的一个lua模块,即ngx_lua_waf
ngx_lua_waf是一款开源的 基于 ngx_lua的 web应用防火墙。代码很简单,开发初衷主要是使用简单,高性能和轻量级。下面我们来看看如何在为nginx安装waf模块
搭建nginx的时候为保证安全,决定安装下waf模块,以下是具体步骤,首先下载需要的安装包,进行每个安装
1、下载LuaJIT源码包- wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
- tar xf LuaJIT-2.0.3.tar.gz
- cd LuaJIT-2.0.3
- make && make install
- ln -sv /usr/local/lib/libluajit-5.1.so.2.0.3 /lib64/libluajit-5.1.so.2
复制代码 2、然后下载nginx(如果你现在的系统已经安装过nginx,跳过这步,后面你直接重新编译安装nginx即可,参考第五步)- wget http://nginx.org/download/nginx-1.7.6.tar.gz
- tar -zxvf nginx-1.7.6.tar.gz
复制代码 3、下载ngx_devel_kit并解压- wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
- tar xf v0.2.19.tar.gz
复制代码 4、 下载ngx_lua并解压- wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.9.6.tar.gz
- tar xf v0.9.6.tar.gz
复制代码 5、编译安装nginx(这里如果你的nginx之前安装好了,同样也执行这步骤,重新编译安装)- <blockquote>--user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/usr/local/src/lua-nginx-module-0.9.13rc1 --add-module=/usr/local/src/ngx_devel_kit-0.2.19 --with-pcre
复制代码 6、下载ngx_lua_waf并解压- wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip –no-check-certificate
- unzip master.zip
- cd ngx_lua_waf-master/
- mkdir /usr/local/nginx/conf/waf
- mv * /usr/local/nginx/conf/waf/
- cd /usr/local/nginx/conf/
- vi nginx.conf
复制代码 7、修改 nginx的配置文件 根据实际情况更改路径- lua_need_request_body on;
复制代码 8、最后测试 重启nginx
下面是我自己测试的截图,很多规则我就不一一去测试了,只列出其中一种:敏感关键字
还没完哈,最后简单的介绍下waf主配置文件里面参数- RulePath="/usr/local/nginx/conf/waf/wafconf/"
-
- --规则存放目录
-
- attacklog="off"
-
- --是否开启攻击信息记录,需要配置logdir
-
- logdir="/usr/local/nginx/logs/hack/"
-
- --log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
-
- UrlDeny="on"
-
- --是否拦截url访问
-
- Redirect="on"
-
- --是否拦截后重定向
-
- CookieMatch="on"
-
- --是否拦截cookie攻击
-
- postMatch="on"
-
- --是否拦截post攻击
-
- whiteModule="on"
-
- --是否开启URL白名单
-
- black_fileExt={"php","jsp"}
-
- --填写可上传文件后缀类型
-
- ipWhitelist={"127.0.0.1"}
-
- --ip白名单,多个ip用逗号分隔
-
- ipBlocklist={"1.0.0.1"}
-
- --ip黑名单,多个ip用逗号分隔
-
- CCDeny="on"
-
- --是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dictlimit10m;)
-
- CCrate="100/60"
-
- --设置cc攻击频率,单位为秒.
-
- --默认1分钟同一个IP只能请求同一个地址100次
-
- html=[[Pleasegoaway~~]]
-
- --警告内容,可在中括号内自定义
-
- 备注:不要乱动双引号,区分大小写
-
- 可以把config.lua中的Redirect设置为off,只记录不拦截,观察没有误拦后再开启。
复制代码 /usr/local/nginx/conf/waf/wafconf下面的文件都是规则文件,自己可以自定义,文件如下:
args cookie post url user-agent whiteurl
每个文件里面都有一些默认的规则,还有很多需要我们自己去填写。
好了,就写到这里了,觉得不错的话,转载给你身边的朋友。对于新手来说,还是挺实用的
|
|