精华内容
下载资源
问答
  • nginx waf设计

    2019-03-11 23:37:20
    基于nginx和modsecurity的WAF防火墙实现的配置1.过滤文件和路径 阻止 /~ 这种带有波浪线的路径 #阻止文件类型(扩展名、后缀) .(bzr|cvs|git|svn) .(bak|backup|bzr|cfg|conf|cvs|doc|docx|DS_Store|ear|git|...
  • Nginx WAF 防护功能实战

    2020-04-30 15:56:54
    Nginx WAF 防护功能实战 下载地址 https://github.com/egzosn/ngx_lua_waf 用途: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的...

    Nginx WAF 防护功能实战
    下载地址 https://github.com/egzosn/ngx_lua_waf
    用途:
    防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
    防止svn/备份之类文件泄漏
    防止ApacheBench之类压力测试工具的攻击
    屏蔽常见的扫描黑客工具,扫描器
    屏蔽异常的网络请求
    屏蔽图片附件类目录php执行权限
    防止webshell上传,
    可视化配置
    推荐安装:
    推荐使用lujit2.1做lua支持

    ngx_lua如果是0.9.2以上版本,建议正则过滤函数改为ngx.re.find,匹配效率会提高三倍左右。

    使用说明:
    nginx安装路径假设为:/usr/local/nginx/conf/

    把ngx_lua_waf下载到conf目录下,解压命名为waf

    在nginx.conf的http段添加

    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;
    

    配置config.lua里的waf规则目录(一般在waf/conf/目录下)

    RulePath = "/usr/local/nginx/conf/waf/wafconf/"
    

    绝对路径如有变动,需对应修改

    然后重启nginx即可

    配置文件详细说明:
    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_dict limit 10m;)
    CCrate = “100/60”
    –设置cc攻击频率,单位为秒.
    –默认1分钟同一个IP只能请求同一个地址100次
    html=[[Please go away~~]]
    –警告内容,可在中括号内自定义
    备注:不要乱动双引号,区分大小写
    检查规则是否生效
    部署完毕可以尝试如下命令:

    curl http://xxxx/test.php?id=../etc/passwd
    返回"Please go away~~"字样,说明规则生效。
    

    注意:默认,本机在白名单不过滤,可自行调整config.lua配置

    正文
    本人喜欢把下载的东西放置/usr/local/src/ 所以进入 cd /usr/local/src/

    1. 下载luajit 2.0并安装
      下载 wget http://luajit.org/download/LuaJIT-2.0.0.tar.gz 解压 tar zxvf LuaJIT-2.0.0.tar.gz cd LuaJIT-2.0.0

      make
      make install PREFIX=/usr/local/lj2
      ln -s /usr/local/lj2/lib/libluajit-5.1.so.2 /lib64/
      进入 cd /usr/local/src/

    2. 下载 ngx_devel_kit
      下载 wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.zip 解压 unzip v0.3.0.zip,然后文件夹重命名(因编译是文件名不能出现“-”) ngx_devel_kit_0.3.0

    3. 下载 lua-nginx-module
      下载 wget https://github.com/openresty/lua-nginx-module/archive/v0.10.7.zip 解压 unzip v0.10.7.zip ,然后文件夹重命名(因编译是文件名不能出现“-”) lua_nginx_module_0.10.7

    4. 下载 nginx-1.11.5
      下载 wget http://nginx.org/download/nginx-1.11.5.tar.gz 解压 tar -xzvf nginx-1.11.5.tar.gz 进入 cd nginx-1.2.4/

    配置安装 nginx (这一块详情可以百度搜nginx安装配置)
    设置lua临时环境变量

    export LUAJIT_LIB=/usr/local/lj2/lib/
    
    export LUAJIT_INC=/usr/local/lj2/include/luajit-2.0/
    

    配置

    ./configure  --user=daemon --group=daemon --prefix=/usr/local/nginx/ --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-http_sub_module --with-http_gzip_static_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --add-module=/usr/local/src/ngx_devel_kit_0.3.0/ --add-module=/usr/local/src/lua_nginx_module_0.10.7/
    

    构造 安装

    make -j8
    make install
    

    进入 对应的nginx 配置目录 cd /usr/local/nginx/conf/
    wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip --no-check-certificate unzip master.zip

    修改文件名
    mv ngx_lua_waf-master /usr/local/nginx/conf/waf
    mkdir -p /data/logs/hack
    chmod -R 775 /data/logs/hack
    nginx安装完之后 修改nginx配置文件 nginx.conf 详情 请查看上面《使用说明》
    以下针对 waf的白名单简单扩展(动态添加白名单)添加授权账号密码
    在/usr/local/nginx/conf/waf/config.lua文件中加入 wafUser = “user” wafPwd = “pwd”
    编辑 /usr/local/nginx/conf/waf/init.lua
    – 修改 say_html()函数
    function say_html(text)
    if Redirect then
    ngx.header.content_type = “text/html”
    ngx.status = ngx.HTTP_FORBIDDEN
    if text == nil then
    ngx.say(html)
    else
    ngx.say("[["…text…"]]")
    end
    ngx.exit(ngx.status)
    end
    end
    –添加授权函数 auth()
    function auth()
    if ngx.var.request_uri == ("/auth.html?wafu="… wafUser …"&wafp="… wafPwd) then
    ipWhitelist[1]= getClientIp() --这里只允许一个外部的白名单
    say_html(“Authorization success !” … ipWhitelist[1])
    return true
    end
    return false
    end
    编辑 /usr/local/nginx/conf/waf/waf.lua 加入校验集里 在 if whiteip() then 后面加入 elseif auth() then

    展开全文
  • 构建自己防火墙的原因 : 需要对特定链接进行防cc攻击 但对某些链接不需要进行防cc攻击技术选型: 基于 nginx + lua 的 verynginx1、首先verynginx 需要nginx 编译安装模块 或者使用openrestylua-nginx-modulehttp_...

    a443d1b5849be1c9241920ff5974ac83.png

    35cc7e272331c9ef19f9a36ca5bcc73b.png

    构建自己防火墙的原因 : 需要对特定链接进行防cc攻击  但对某些链接不需要进行防cc攻击

    技术选型: 基于 nginx + lua 的 verynginx

    1、首先verynginx 需要nginx   编译安装模块  或者使用openresty

    lua-nginx-module

    http_stub_status_module

    http_ssl_module

    2、verynginx 自带的openresty(nginx)安装脚本  可以一键安装 因为我使用的是宝塔面板 不能使用他的一键安装脚本 或者你可以自己安装openresty   安装连接http://openresty.org/cn/installation.html

    3、下面开始安装  verynginx

    [root@localhost]git clone https://github.com/alexazhou/VeryNginx.git #克隆verynginx仓库

    [root@localhost]mkdir -p /opt/verynginx #创建 vernginx 安装目录

    [root@localhost]cd verynginx #进入verngin目录

    [root@localhost]cp -r -f ./verynginx /opt/verynginx 复制文件

    4、将下面三条代码放入 nginx  http 配置块外部,http 配置块内部,server 配置块内部,

    include /opt/verynginx/verynginx/nginx_conf/in_external.conf;

    include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf;

    include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;

    5、注意如果开起了nginx vhost模式 有个server 模块就要放几个server 这时候重载 openresty (nginx)配置或者重启就可以  访问响应域名后面加上 vn/index

    6、遇到的坑 首先系统后台是使用thinkphp 开发这是时候 我发现 明明开启了防止下载 sql文件 但是我访问  http://demo.com/1.sql 是无法触发拦截规则的  伪静态如下:

    location / {

    if (!-e $request_filename){

    rewrite ^(.*)$ /index.php?s=$1 last; break;

    }

    }

    #问题出此案在 if这个判断 !-e $request_filename 这句代表如果不存在文件的话会直接 执行 rewrite规则 也就是说我访问的是 http://demo.php/1.sql 因为目录下没有 1.sql 其实域名实际访问的是 http://demo.php/index.php?s=1.sql 所以没有触发下载限制 但当 目录下存在 1.sql 就会出现警告 没有的话 报的404 是thinphp返回的 所以虽然没有触发 但对于安全还是有用的

    7、请求访问顺序

    Nginx Rewrite -> VeryNginx Rewrite -> Nginx aceess -> VeryNginx Access

    8、有兴趣的小伙伴可以给我留言一起探讨 nginx waf防火墙  lua是天生适合做nginx waf语言

    展开全文
  • nginx之安全基础(nginx+waf+lua)

    千次阅读 2015-09-15 14:57:21
     nginx waf +lua 安全模块搭建,nginx上的web应用防火墙 需要的软件: 1、LuaJIT下载 网站:http://luajit.org (当前稳定版:2.0.4) 2、ngx_devel_kit-0.2.19.tar 3、lua-nginx-module-0.9.5rc2.tar 4、master...

    感谢网上的大神们提供的文档。

      nginx waf +lua 安全模块搭建,nginx上的web应用防火墙

    需要的软件:

    1、LuaJIT下载 网站:http://luajit.org (当前稳定版:2.0.4)
    2、ngx_devel_kit-0.2.19.tar
    3、lua-nginx-module-0.9.5rc2.tar
    4、master.zip
    5、nginx
    优化nginx包
    1、libunwind
    2、gperftools

    一、安装LuaJIT

        tar -zxvf LuaJIT.tar.gz

        make

        make install

        安装后lib、include直接放在/usr/local/lib和/usr/local/include中

    二、解压ngx_devel_kit、lua-nginx-module

    三、设置环境变量

    export LUAJIT_LIB=/usr/local/lib
     
          export LUAJIT_INC=/usr/local/include/luajit-2.0
     
          export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

           四、安装nginx(版本1.6.1,在1.9.4中失败)

    4.1优化nginx

    vim /usr/local/src/nginx-1.6.1/auto/cc/gcc

    注释:#debug
    #CFLAGS="$CFLAGS -g"

     解释:关闭nginx debug模块,减少nginx安装包大小

             4.2优化nginx

    解释:优化nginx性能,在内存分配效率和速度上提高很多,降低负载。需要安装libunwind和gperftools 

    4.2.1安装libunwind

     tar -xf /usr/local/src/libunwind.tar.gz

    cd /usr/local/src/libunwind
       CFLAGS=-fPIC ./configure
        make CFLAGS=-fPIC
        make CFLAGS=-fPIC install
     

    4.2.2安装gperftools

    tar -xf  /usr/local/src/gperftools.tar.gz
        cd /usr/local/src/gperftools 
       make && make install

           mkdir /tmp/tcmalloc //创建tcmalloc线程写入文件
           chmod 777 /tmp/tcmalloc

    echo "/usr/local/lib" >/etc/ld.so.conf.d/usr_local_lib.conf #使nginx.conf中配置google_perftools_profiles生效

      4.2.3安装nginx

    cd /usr/local/src/nginx-1.6.1/

    例如:生产环境:注意ngx_devel_kit-0.2.19、lua-nginx-module-0.9.5rc2路径一定要正确
    --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --add-module=/usr/local/nginx_upstream_check_module-master --with-http_stub_status_module --add-module=/usr/local/src/ngx_devel_kit-0.2.19   --add-module=/usr/local/src/lua-nginx-module-0.9.5rc2  --with-google_perftools_module
       
    make && make install

    4.2.4增加ngx_lua_waf_master

     unzip -o /usr/local/src/ngx_lua_waf_master.zip
         mv /usr/local/src/ngx_lua_waf_master /usr/local/nginx/conf/waf

     #创建文件夹存放waf日志,需要有写入的权限
         mkidr /home/nignx_waf_log/
         chmod  777 /home/nginx_waf_log/


    vim /usr/local/src/nginx/conf/waf/conf.lua
     
            RulePath = "/usr/local/nginx-help/conf/waf/wafconf/" #指定waf规则存放文件夹
     
            logdir = "/home/nginx_waf_log" #指定waf日志存放地

    vim /usr/local/nginx/conf/nginx.conf
         #在pid下添加,支持gperftools库
         google_perftools_profiles /tmp/tcmalloc/tcmalloc.;
          #在http 添加
        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;


      然后启动nginx
      网站子连接url后增加?id=../etc/passwd;查看是否会出现防火墙阻挡页面
      lsof -n | greo tcmalloc 查看gperftools是否正常运行

    在正式使用时候,使用的www.wooyun.org上提供的waf模块,规则根据自己所需要的进行修改

     


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

    千次阅读 2018-07-15 17:55:00
    https://www.52os.net/articles/nginx-use-modsecurity-module-as-waf.html

    https://www.52os.net/articles/nginx-use-modsecurity-module-as-waf.html

    http://blog.cnwyhx.com/centos-nginx-naxsi-install/

    http://f2ex.cn/nginx-installed-configuration-naxsi-waf/

    展开全文
  • nginx+waf的配置

    2017-06-13 14:59:04
    这个文件是我们生产所用的nginx配置文件和waf结合使用的配置文件
  • WEB安全-nginx+waf

    2020-04-06 20:28:15
    WAF:web应用防火墙 web ...基于nginxwaf方法 方法1:nginx+openresty+unixhot_waf https://blog.csdn.net/m0_37886429/article/details/73178889 https://blog.csdn.net/wmj2004/article/details/70871924 方法...
  • vlche / nginx-waf 泊坞窗高山基于容器提供与 , 压缩和certbot为的SSL证书自动续订。 您可以将其用作多合一服务,也可以用作SSL / Load-Balancer前端和WAF后端/后端。 其他预配置的选项包括: 优化的中间ssl设置...
  • Nginx 支持 WAF 防护功能实战
  • nginx-lua-wafNginx-Lua-WAF是一种基于Nginx的使用Lua语言开发的灵活高效的Web应用层防火墙
  • Nginx实现WAF这个我们说下,基于NginxWAF,基本上分两大类,一种是基于第三方插件来实现,一种是使用lua语言通过Nginx-Lua整合到一起,就性能而言,我们推荐选择轻量级的lua来实现。现在我们只是举例说明下。说明...
  • 原文连接:...说明:部署包包含 nginx V1.16.0 luajit V2.2.1(最新版) v0.3.1(最新版) v0.10.14rc5 注意:部署包存在兼容问题,这里是我经过验证后的最新稳定版本。
  • nginx安装waf防护

    2016-05-09 16:11:00
    安装nginx 二.安装luajit2.0 三.安装ngx_devel_kit#wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz --no-check-certificate#tar -zxvf v0.2.19 四.安装nginx_lua_module 五.编译nginx ...
  • 背景 ...针对目前的一个情况,需要对waf模块的日志进行分析,定期检查web服务器是否存在潜在的危机,下面就跟着我的步骤一起来看一下,如何借助ELK日志分析平台对nginxwaf日志进行分析,并针对分析的
  • 安装nginx_waf

    2016-03-16 16:28:54
    cp -r /usr/local/src/nginx/ngx_lua_waf-master/* /usr/local/nginx/conf/wafnginx.conf里http块里加入 lua_package_path "/usr/local/nginx/conf/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file  ...
  • centos安装部署nginx-waf

    2020-01-17 19:04:39
    /usr/local/nginx/conf/ngx_lua_waf-master /usr/local/nginx/conf/waf #在nginx.conf的http段添加下面这段: sed -i '25 a lua_package_path \"/usr/local/nginx/conf/waf/?.lua\";\nlua_shared_dict limit...
  • nginx-lua-waf 用法 自己构建镜像bilxio/nginx-lua-waf ,在nginx-lua-waf文件夹执行如下命令: docker build -t bilxio/nginx-lua-waf . 或者,直接拉它, docker pull bilxio/nginx-lua-waf 要运行映像并将...
  • Nginx Lua WAF通用绕过方法

    千次阅读 2018-05-22 13:42:20
    Author:JoyChouDate:20180517 一 、前言...所以,用了Nginx Lua的WAF默认都会被Bypass。2018年4月20日,安全客上已经有人公开了这个细节,那这篇文章也就公开了。 二 、原理官方描述如下Note that a maximum...
  • Nginx +WAF使用总结

    2015-08-17 23:14:11
    曾经研究过一段时间,并做了一下简单的总结,感觉还比较实用,放在有道云笔记里躺...一Nginx安装1.所需组件若已有这几个组件,可直接查看安装部分1.1gcc编译器若没有gcc编译器,yum-yinstallgcc*这一步时间有点长1.2...
  • WAF(Web Application Firewall),中文名称叫做“Web应用防火墙 WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,通过从上面对WAF的定义中,我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,829
精华内容 1,531
关键字:

nginxwaf