运维

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

MarginNote 3 - Mac端PDF阅读批注工具 激活码价格:¥69.00
赤友 NTFS for Mac 助手 -  磁盘硬盘格式读写软件注册激活码价格:¥35.00
虫洞 -  iPhone安卓投屏操控 电脑手机多屏协同,价格:¥45.00
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软库网 作者:DevOps 发表,转载请注明来源!

关键词:, ,
ToDesk - 安全好用流畅远程控制软件 替代TeamViewer,价格:¥108.00
Eagle - 图片收集管理必备软件 激活码价格:¥119.00
PDF Expert 2 - Mac上优秀的PDF阅读编辑工具,价格:¥119.00

热评文章

发表评论