黑帽联盟

 找回密码
 会员注册
查看: 1712|回复: 0
打印 上一主题 下一主题

[系统安全] linux nginx 安装waf防火墙实战教程

[复制链接]

895

主题

38

听众

3329

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    昨天 22:31
  • 签到天数: 1652 天

    [LV.Master]伴坛终老

    这里使用的是nginx自带的一个lua模块,即ngx_lua_waf

    ngx_lua_waf是一款开源的 基于 ngx_lua的 web应用防火墙。代码很简单,开发初衷主要是使用简单,高性能和轻量级。下面我们来看看如何在为nginx安装waf模块

    搭建nginx的时候为保证安全,决定安装下waf模块,以下是具体步骤,首先下载需要的安装包,进行每个安装

    1、下载LuaJIT源码包
    1. wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
    2. tar xf LuaJIT-2.0.3.tar.gz
    3. cd LuaJIT-2.0.3
    4. make && make install
    5. ln -sv /usr/local/lib/libluajit-5.1.so.2.0.3 /lib64/libluajit-5.1.so.2
    复制代码
    2、然后下载nginx(如果你现在的系统已经安装过nginx,跳过这步,后面你直接重新编译安装nginx即可,参考第五步)
    1. wget http://nginx.org/download/nginx-1.7.6.tar.gz
    2. tar -zxvf nginx-1.7.6.tar.gz
    复制代码
    3、下载ngx_devel_kit并解压
    1. wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
    2. tar xf v0.2.19.tar.gz
    复制代码
    4、 下载ngx_lua并解压
    1. wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.9.6.tar.gz
    2. tar xf v0.9.6.tar.gz
    复制代码
    5、编译安装nginx(这里如果你的nginx之前安装好了,同样也执行这步骤,重新编译安装)
    1. <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并解压
    1. wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip –no-check-certificate
    2. unzip master.zip
    3. cd ngx_lua_waf-master/
    4. mkdir /usr/local/nginx/conf/waf
    5. mv * /usr/local/nginx/conf/waf/
    6. cd /usr/local/nginx/conf/
    7. vi nginx.conf
    复制代码
    7、修改 nginx的配置文件  根据实际情况更改路径
    1. lua_need_request_body on;
    复制代码
    8、最后测试 重启nginx
    下面是我自己测试的截图,很多规则我就不一一去测试了,只列出其中一种:敏感关键字
    1.png
    2.png

    还没完哈,最后简单的介绍下waf主配置文件里面参数
    1. RulePath="/usr/local/nginx/conf/waf/wafconf/"

    2. --规则存放目录

    3. attacklog="off"

    4. --是否开启攻击信息记录,需要配置logdir

    5. logdir="/usr/local/nginx/logs/hack/"

    6. --log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限

    7. UrlDeny="on"

    8. --是否拦截url访问

    9. Redirect="on"

    10. --是否拦截后重定向

    11. CookieMatch="on"

    12. --是否拦截cookie攻击

    13. postMatch="on"

    14. --是否拦截post攻击

    15. whiteModule="on"

    16. --是否开启URL白名单

    17. black_fileExt={"php","jsp"}

    18. --填写可上传文件后缀类型

    19. ipWhitelist={"127.0.0.1"}

    20. --ip白名单,多个ip用逗号分隔

    21. ipBlocklist={"1.0.0.1"}

    22. --ip黑名单,多个ip用逗号分隔

    23. CCDeny="on"

    24. --是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dictlimit10m;)

    25. CCrate="100/60"

    26. --设置cc攻击频率,单位为秒.

    27. --默认1分钟同一个IP只能请求同一个地址100次

    28. html=[[Pleasegoaway~~]]

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

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

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

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


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部