kong安装lua waf之最佳实践

近来接触到了微服务, 简单玩了一下kong, 主要是在kong上配置lua waf来拦截攻击行为, 写此文记录kong与lua waf之间的一些配置

目录

  • kong修改nginx配置文件
  • kong与loveshell的ngx_lua_waf组合

kong修改nginx配置文件

kong安装之后, 会安装openresty, 带有nginx服务器和一些lua模块, 启动kong时, 会根据kong.conf配置文件和nginx-kong.lua脚本创建一份nginx-kong.conf配置文件以供nginx使用; 如果需要更改nginx-kong的配置, 只能通过修改kong.conf配置文件或者nginx-kong.lua模版文件来实现, 如果需要在nginx中放入特定的字段, 只能通过修改nginx-kong.lua模版文件来实现。

1
$ vim //usr/local/share/lua/5.1/kong/templates/nginx-kong.lua

kong与ngx_lua_waf组合

前提:kong已经安装且可以正常启动运行

  1. 下载waf并放到nginx.conf配置文件所在目录

    1
    2
    $ git clone https://github.com/loveshell/ngx_lua_waf.git
    $ mv ngx_lua_waf /usr/local/kong/waf
  2. 修改kong.conf配置, 设置waf所在目录

    1
    $ 修改kong.conf配置文件的lua_package_path字段值为:<waf_path>/?.lua
  3. 修改ngx_lua_waf代码, 使其支持在access_by_lua_block、init_by_lua_block中调用

  4. 修改nginx-kong.lua配置, 调用waf

    1
    2
    $ 在init_by_lua_block字段中加入 require 'init'
    $ 在access_by_lua_block字段中加入 waf()
  5. 修改waf/config.lua配置中的RulePath、logdir字段, 设置为规则和日志所在的目录, 其中logdir中指定的目录需要nobody用户可写

    1
    2
    $ RulePath = "/usr/local/kong/waf/wafconf/"
    $ logdir = "/usr/local/kong/logs/waf/"
  6. 修改init.lua脚本和规则, 使日志中记录拦截的攻击类型
    代码github中.

owefsad wechat
进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。
0%