loading

运维

Nginx的Waf防火墙在CDN环境下封禁访客真实IP方法

namesilo全网最便宜域名注册商,输入折扣码:nsilo20立减1美元!

Nginx的Waf防火墙在CDN环境下封禁访客真实IP方法宝塔面板Nginx编译了WAF防火墙,如果使用CDN后会发现WAF获取到的访客IP并不是真实的访客IP而是CDN节点的IP地址,因此如果你开启了WAF,并且CDN有频繁的回源时,可能会造成CDNIPWAF给误判将其IP列入拉黑,而真正攻击你的IP却不会被封禁,因此需要修改一下WAF配置文件:宝塔面板下WAF配置文件在/www/server/nginx/waf/init.lua
找到如下代码:

function getClientIp()
        IP  = ngx.var.remote_addr 
        if IP == nil then
                IP  = "unknown"
        end
        return IP
end

将其改为:

function getClientIp()
        IP = ngx.req.get_headers()["X-Real-IP"]
           if IP == nil then
               IP = ngx.req.get_headers()["x_forwarded_for"]
           end
           if IP == nil then
               IP = ngx.var.remote_addr
           end
        return IP
end

重启宝塔生效!
对于非宝塔面板WAF,可能没有这个function将文件如下代码进行添加即可。

local headers=ngx.req.get_headers()  
local ip=headers["X-REAL-IP"] or headers["X_FORWARDED_FOR"] or ngx.var.remote_addr or "0.0.0.0"  
(1)

本文由 podipod软库网 作者:Anonymous 发表,转载请注明来源!

关键词:, ,
全国计算机等级考试题库

热评文章

发表评论