Skip to content

Releases: ADD-SP/ngx_waf

v2.0.0-beta.1

01 Sep 15:05
Compare
Choose a tag to compare
v2.0.0-beta.1 Pre-release
Pre-release

简体中文

新增

  • 支持以动态模块安装到 nginx 上,感谢 dvershinin的 PR(#4)。

改动

  • 配置指令合并 (ba92cfd)。这些配置指令将被合并:waf_check_ipv4waf_check_urlwaf_check_argswaf_check_uawaf_check_refererwaf_check_cookiewaf_check_postwaf_check_cookiewaf_cc_deny。合并后的新指令为waf_mode,详情见README

修复

  • 现在可以正确处理规则文件中的空行了(955cf2d)。

English

Added

  • We can compile the module with --add-dynamic-module. Thanks for dvershinin's work(#4)。

Changed

  • Merge directives(ba92cfd). These directives will be merged: waf_check_ipv4, waf_check_url, waf_check_args, waf_check_ua, waf_check_referer, waf_check_cookie, waf_check_post, waf_check_cookie, waf_cc_deny. The merged new directive is waf_mode, see README.

Fixed

  • The blank lines in the rules can now be read correctly(955cf2d).

v1.0.1

22 Aug 12:56
Compare
Choose a tag to compare

[1.0.1] - 2020-08-22

Added

  • 增加了新的配置项(3214fc8
    • waf_check_ipv4:
      • 配置语法: waf_check_ipv4 [ on | off ];
      • 默认值:on
      • 配置段: server
      • 作用:是否启用 IPV4 检查。
    • waf_check_url:
      • 配置语法: waf_check_url [ on | off ];
      • 默认值:on
      • 配置段: server
      • 作用:是否启用 URL 检查。
    • waf_check_args:
      • 配置语法: waf_check_args [ on | off ];
      • 默认值:on
      • 配置段: server
      • 作用:是否启用 Args 检查。
    • waf_check_ua:
      • 配置语法: waf_check_ua [ on | off ];
      • 默认值:on
      • 配置段: server
      • 作用:是否启用 User-Agent 检查。
    • waf_check_referer:
      • 配置语法: waf_check_referer [ on | off ];
      • 默认值:on
      • 配置段: server
      • 作用:是否启用 Referer 检查。
    • waf_check_cookie:
      • 配置语法: waf_check_cookie [ on | off ];
      • 默认值:on
      • 配置段: server
      • 作用:是否启用 Cookie 检查。
    • waf_check_post:
      • 配置语法: waf_check_post [ on | off ];
      • 默认值:off
      • 配置段: server
      • 作用:是否启用 POST 检查。
    • waf_cc_deny:
      • 配置语法: waf_cc_deny [ on | off ];
      • 默认值:off
      • 配置段: server
      • 作用:是否启用 CC 防御。

Changed

  • waf_mult_mount现在只允许写在server段中(3214fc8)。
    • waf_mult_mount:
      • 配置语法: waf_mult_mount [ on | off ];
      • 默认值:off
      • 配置段: server
      • 作用:进行多阶段检查,当nginx.conf存在地址重写的情况下(如rewrite配置)建议启用,反之建议关闭。
  • 更改现有的配置项关键字,删除了ngx_前缀(8b3e416)。
    • waf:
      • 配置语法: waf [ on | off ];
      • 默认值:off
      • 配置段: server
      • 作用:是否启用本模块。
    • waf_rule_path:
      • 配置语法: waf_rule_path dir;
      • 默认值:无
      • 配置段: server
      • 作用:规则文件所在目录,且必须以/结尾。
    • waf_mult_mount:
      • 配置语法: waf_mult_mount [ on | off ];
      • 默认值:off
      • 配置段: http
      • 作用:进行多阶段检查,当nginx.conf存在地址重写的情况下(如rewrite配置)建议启用,反之建议关闭。
  • 更新 referer 的默认规则,具体一点就是拷贝rules/url的内容到rules/referer中(55f5e26)。

Fixed

  • 修复 CC 防御功能检测逻辑的错误,该错误会导致实际的频率限制要远小于用户指定的限制,容易将正常访问识别为 CC 攻击(9cb51bb)(171721c)。
  • 现在会检查 rules/ipv4 和 rules/white-ipv4 这两个文件中的 IPV4 地址或地址块是否合法(fc09f04)(2e7f624)。

v1.0.0

18 Aug 14:14
Compare
Choose a tag to compare

[1.0.0] - 2020-08-18

Added

  • 改进日志格式(bd112ec)。基本格式为xxxxx, ngx_waf: [拦截类型][对应规则], xxxxx,具体可看下面的例子。
    2020/01/20 22:56:30 [alert] 24289#0: *30 ngx_waf: [BLACK-URL][(?i)(?:/\.env$)], client: 192.168.1.1, server: example.com, request: "GET /v1/.env HTTP/1.1", host: "example.com", referrer: "http:/example.com/v1/.env"
    
    2020/01/20 22:58:40 [alert] 24678#0: *11 ngx_waf: [BLACK-POST][(?i)(?:select.+(?:from|limit))], client: 192.168.1.1, server: example.com, request: "POST /xmlrpc.php HTTP/1.1", host: "example.com", referrer: "https://example.com/"
    
  • 新增三个内置变量(92d6d84
    • $waf_blocked: 本次请求是否被本模块拦截,如果拦截了则其的值为'true',反之则为'false'
    • $waf_rule_type:如果本次请求被本模块拦截,则其值为触发的规则类型。下面是可能的取值。若没有生效则其值为'null'
      • 'BLACK-IPV4'
      • 'BLACK-URL'
      • 'BLACK-ARGS'
      • 'BLACK-USER-AGENT'
      • 'BLACK-REFERER'
      • 'BLACK-COOKIE'
      • 'BLACK-POST'
    • '$waf_rule_details':如果本次请求被本模块拦截,则其值为触发的具体的规则的内容。若没有生效则其值为'null'
  • 支持过滤 POST 请求(b46641e)。
  • 新配置项ngx_waf_mult_mount用于增加拦截面(e1b500d),典型的应用场景是存在rewrite的情况下重写前后均会对 URL 进行一次检测。
  • 支持 CC 防御功能(3a93e19)。

Changed

  • 增加默认的 POST 过滤规则(68dd102
  • 更新默认规则(55f0a48)。
  • 修改规则优先级(3c388c8)(248958d)(b46641e)((92447a3)[https://github.com/ADD-SP/ngx_waf/commit/92447a39d6a36ab027b0ead0daa0fe2b3b74ff29]),现在的优先级为(靠上的优先生效):
    1. IP 白名单
    2. IP 黑名单
    3. CC 防御
    4. URL 白名单
    5. URL 黑名单
    6. Args 黑名单
    7. UserAgent 黑名单
    8. Referer 白名单
    9. Referer 黑名单
    10. Cookie 黑名单
    11. POST 黑名单

Fixed

  • IPV4 黑白名单功能失效(231f94a)。
  • 当 User-agent 为空时会触发 segmentation fault(bf33b36)。
  • 启用 CC 防御后会有内存泄漏(be58d18)。

v1.0.0-RC2

17 Aug 02:59
Compare
Choose a tag to compare
v1.0.0-RC2 Pre-release
Pre-release

Changed

  • 减少了模块初始化时申请的内存大小。

v1.0.0-RC1

16 Aug 08:46
Compare
Choose a tag to compare
v1.0.0-RC1 Pre-release
Pre-release

Added

  • 改进日志格式(bd112ec)。基本格式为xxxxx, ngx_waf: [拦截类型][对应规则], xxxxx,具体可看下面的例子。
    2020/01/20 22:56:30 [alert] 24289#0: *30 ngx_waf: [BLACK-URL][(?i)(?:/\.env$)], client: 192.168.1.1, server: example.com, request: "GET /v1/.env HTTP/1.1", host: "example.com", referrer: "http:/example.com/v1/.env"
    
    2020/01/20 22:58:40 [alert] 24678#0: *11 ngx_waf: [BLACK-POST][(?i)(?:select.+(?:from|limit))], client: 192.168.1.1, server: example.com, request: "POST /xmlrpc.php HTTP/1.1", host: "example.com", referrer: "https://example.com/"
    
  • 新增三个内置变量(92d6d84
    • $waf_blocked: 本次请求是否被本模块拦截,如果拦截了则其的值为'true',反之则为'false'
    • $waf_rule_type:如果本次请求被本模块拦截,则其值为触发的规则类型。下面是可能的取值。若没有生效则其值为'null'
      • 'BLACK-IPV4'
      • 'BLACK-URL'
      • 'BLACK-ARGS'
      • 'BLACK-USER-AGENT'
      • 'BLACK-REFERER'
      • 'BLACK-COOKIE'
      • 'BLACK-POST'
    • '$waf_rule_details':如果本次请求被本模块拦截,则其值为触发的具体的规则的内容。若没有生效则其值为'null'
  • 支持过滤 POST 请求(b46641e)。
  • 新配置项ngx_waf_mult_mount用于增加拦截面(e1b500d),典型的应用场景是存在rewrite的情况下重写前后均会对 URL 进行一次检测。
  • 支持 CC 防御功能(3a93e19)。

Changed

  • 增加默认的 POST 过滤规则(68dd102
  • 更新默认规则(55f0a48)。
  • 修改规则优先级(3c388c8)(248958d)(b46641e)((92447a3)[https://github.com/ADD-SP/ngx_waf/commit/92447a39d6a36ab027b0ead0daa0fe2b3b74ff29]),现在的优先级为(靠上的优先生效):
    1. IP 白名单
    2. IP 黑名单
    3. CC 防御
    4. URL 白名单
    5. URL 黑名单
    6. Args 黑名单
    7. UserAgent 黑名单
    8. Referer 白名单
    9. Referer 黑名单
    10. Cookie 黑名单
    11. POST 黑名单

Fixed

  • IPV4 黑白名单功能失效(231f94a)。
  • 当 User-agent 为空时会触发 segmentation fault(bf33b36)。
  • 启用 CC 防御后会有内存泄漏(be58d18)。