近来接触到了微服务, 简单玩了一下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已经安装且可以正常启动运行
下载waf并放到nginx.conf配置文件所在目录
1
2$ git clone https://github.com/loveshell/ngx_lua_waf.git
$ mv ngx_lua_waf /usr/local/kong/waf修改kong.conf配置, 设置waf所在目录
1
$ 修改kong.conf配置文件的lua_package_path字段值为:<waf_path>/?.lua
修改ngx_lua_waf代码, 使其支持在access_by_lua_block、init_by_lua_block中调用
修改nginx-kong.lua配置, 调用waf
1
2$ 在init_by_lua_block字段中加入 require 'init'
$ 在access_by_lua_block字段中加入 waf()修改waf/config.lua配置中的RulePath、logdir字段, 设置为规则和日志所在的目录, 其中logdir中指定的目录需要nobody用户可写
1
2$ RulePath = "/usr/local/kong/waf/wafconf/"
$ logdir = "/usr/local/kong/logs/waf/"修改init.lua脚本和规则, 使日志中记录拦截的攻击类型
代码github中.