长亭waf-ce 版本嵌入模式集成说明

就在最近的ce 版本中,支持直接集成waf 能力到外部openresty (nginx 服务中),这样waf 能力就类似一个外部服务了,对于openresty 来说
就是在不同阶段使用waf-ce 提供的方法,详细安装暂时就不说了,官方已经提供了,我只说明关于集成的一些问题

集成问题

  • 玩法参考图

注意上图没画redis,

  • 参考集成
    注意推荐配置一些参数,比如conenct timeout,read timeout,以及keepalived 参数(因为实际上还是网络通信),对于部署在一起的比较方便(unix socket 性能比较高),支持的数据,参考lua-resty-t1k 项目
 
access_by_lua_block {
    local t1k = require "resty.t1k"
 
    local t = {
        mode = "block",
        host = "长亭雷池 WAF 社区版 Host IP",
        port = 8000,
    }
 
    local ok, err, result = t1k.do_access(t, true)
    if not ok then
        ngx.log(ngx.ERR, err)
    end
}
header_filter_by_lua_block {
  local t1k = require "resty.t1k"
  t1k.do_header_filter()
}
  • 对于嵌入模式除过tengine 模式可以不用安装,其他的建议还是都安装,比如相互依赖还是比较严重的
  • 按照目前官方ce 版本的功能,对于防护是全局的,而且如果使用嵌入模式,没有业务域名限制只说,你就可以把lua-resty-t1k
    的集成作为一个外部安全检测服务就行
  • 因为依赖还是比较严重的(除过tengine 之外建议全部部署),对于访问日志,都是可以看到的(管理界面上)
  • 性能问题,此问题属于ce 版本的问题,只能部署一台,如果需要提升性能,多台部署然后基于lb 通过外部集成此检测能力的模式,似乎是一种可以
    提升性能的玩法
  • 功能上不如直接官方tengine强大,毕竟集成的只是api 调用,并不是集成的nginx 原生模块

说明

目前ce 版本,各个组件详细参考官方还是缺少明确的说明,目前只能靠盲猜,理论上detector 应该是可以配置忽略记录日志的,这样我们就可以
直接将detector 作为一个通用的异常检测服务了

参考资料

https://github.com/chaitin/safeline
https://stack.chaitin.com/techblog/detail?id=120
https://github.com/chaitin/lua-resty-t1k

posted on 2023-07-01 08:30  荣锋亮  阅读(227)  评论(0编辑  收藏  举报

导航