Nginx Waf防火墙在CDN环境下封禁访客真实IP方法 含宝塔面板修改方法
宝塔面板下Nginx编译了WAF防火墙,但是如果你是CDN用户,你会发现WAF获取到的访客IP并不是真实的访客IP而是CDN节点的IP地址,因此如果你开启了WAF,并且CDN有频繁的回源,可能会造成CDN IP被WAF给列入黑名单,而真正攻击你的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"
顶(3)
踩(0)
- 最新评论