定位 发表于 2017-3-29 15:38:55

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.22、然后下载nginx(如果你现在的系统已经安装过nginx,跳过这步,后面你直接重新编译安装nginx即可,参考第五步)wget http://nginx.org/download/nginx-1.7.6.tar.gz
tar -zxvf nginx-1.7.6.tar.gz3、下载ngx_devel_kit并解压wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
tar xf v0.2.19.tar.gz4、 下载ngx_lua并解压wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.9.6.tar.gz
tar xf v0.9.6.tar.gz5、编译安装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-pcre6、下载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.conf7、修改 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=[]

--警告内容,可在中括号内自定义

备注:不要乱动双引号,区分大小写

可以把config.lua中的Redirect设置为off,只记录不拦截,观察没有误拦后再开启。/usr/local/nginx/conf/waf/wafconf下面的文件都是规则文件,自己可以自定义,文件如下:
args  cookie  post  url  user-agent  whiteurl
每个文件里面都有一些默认的规则,还有很多需要我们自己去填写。

好了,就写到这里了,觉得不错的话,转载给你身边的朋友。对于新手来说,还是挺实用的


页: [1]
查看完整版本: linux nginx 安装waf防火墙实战教程