黑帽联盟
标题:
linux nginx 安装waf防火墙实战教程
[打印本页]
作者:
定位
时间:
2017-3-29 15:38
标题:
linux nginx 安装waf防火墙实战教程
这里使用的是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
下面是我自己测试的截图,很多规则我就不一一去测试了,只列出其中一种:敏感关键字
2017-3-29 15:29 上传
下载附件
(2.31 MB)
2017-3-29 15:29 上传
下载附件
(2.02 MB)
还没完哈,最后简单的介绍下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
每个文件里面都有一些默认的规则,还有很多需要我们自己去填写。
好了,就写到这里了,觉得不错的话,转载给你身边的朋友。对于新手来说,还是挺实用的
欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/)
Powered by Discuz! X2.5