openresty + waf 搭建

Centos7安装Openresty通过yum安装

/etc/yum.repos.d/ 下新建 OpenResty.repo 内容

[openresty]
name=Official OpenResty Repository
baseurl=
https://copr-be.cloud.fedoraproject.org/results/openresty/openresty/epel-$releasever-$basearch/
skip_if_unavailable=True
gpgcheck=1
gpgkey=
https://copr-be.cloud.fedoraproject.org/results/openresty/openresty/pubkey.gpg
enabled=1
enabled_metadata=1

安装

yum install openresty -y
默认会安装到 /usr/local/openresty/ 目录下, 目录下包含了 luajit, lualib, nginx, openssl, pcre, zlib 这些组件

 

安装ngx_lua_waf模块

详见大佬的github  https://github.com/loveshell/ngx_lua_waf

下载waf模块

wget https://github.com/loveshell/ngx_lua_waf/archive/v0.7.2.tar.gz

tar zxf v0.7.2.tar.gz

mv ngx_lua_waf-0.7.2 waf

ln -s /usr/local/openresty/lualib /usr/local/lib/lua

ln -s /usr/local/openresty/lualib/resty /usr/local/openresty/nginx/conf/waf/resty

将其放在安装好的/usr/local/ openresty /nginx下面的conf下,然后切换到nginx的安装目录找到conf/nginx.conf配置,在http配置下加入 如下配置,其中的/usr/local/openresty /nginx/conf/waf改为实际安装目录。

lua_package_path "/usr/local/openresty /nginx/conf/waf /?.lua";

lua_shared_dict limit 10m; #开启拦截cc攻击时需要设置此值

init_by_lua_file/usr/local/openresty /nginx/conf/waf /init.lua;

access_by_lua_file /usr/local/openresty /nginx/conf/waf /waf.lua;#控制访问的规则

重启nginx。

Nginx 启动

 切换到 /usr/local/openresty/nginx

 sbin/nginx

重启 nginx   sbin/nginx  -s  reload

倘若waf不起作用检查,/usr/local/ openresty /nginx/waf/config.lua 此文件的第一行

RulePath = "/usr/local/openresty/nginx/conf/waf/wafconf/" 表示规则的路径。检查其路径是否配置的为刚才安装的waf下的wafconf

配置文件详细说明:
 
      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~~]]
        --警告内容,可在中括号内自定义
        备注:不要乱动双引号,区分大小写

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值