昨天我们遇到了一个DDoS攻击到达我们的networking服务器后端(apache2)。 前端由与web服务器的haproxy负载均衡连接组成。 在apache的access.log上,我们看到了来自两个ips的数千个请求,几个小时后,我们意识到这些是伪造/欺骗,而不是实际的ips。
出于澄清的原因,我们做了一个“curl GET /”,IP为“137.137.136.136”,实际上这就是我们在networking日志中看到的ip(假的)
现在,在另一个使用nginx作为反向代理的集群中,更改/制作X-Forwarded-For标题不起作用。 意思是,即使你在特定的头文件中input一个随机的ip,nginx仍然会把正确的ip传给后端的web服务器?
这是否与haproxy有关?
任何人都可以确认制作的X-Forwarded-For头可以通过haproxy?
为什么这不在nginx中发生?
你怎么防止这个?
在haproxy中,如果你没有什么可以阻止的话,那是正常的,我不知道ngnix,但是我用haproxy这样解决了:
在默认选项中:
forwardfor
在我的haproxy前端定义中,我有:
reqidel ^X-Forwarded-For:.*
如果客户端试图伪造并且haproxy返回真实的头部在http响应中的真实的IP地址,那么在http请求中删除X-Forwarded-For
如果要使用X-Forwarded-For来检查http客户端的IP地址,如果存在于http请求中,则需要删除它,因为有时使用http代理的客户端在X-Forwarded-For设置本地IP地址