昨天我们受到了到达我们的网络服务器后端(apache2)的 DDoS 攻击。前端由到 Web 服务器的 haproxy 负载平衡连接组成。在 apache 的 access.log 上,我们看到来自两个 ip 的数千个请求,几个小时后,我们意识到这些请求是假的/欺骗的,而不是实际的 ip。
为澄清起见,我们做了一个“curl GET /”,ip 为“137.137.136.136”,这确实是我们在博客中看到的 ip(假的)
现在,在我们使用 nginx 作为反向代理的另一个集群中,更改/制作 X-Forwarded-For 标头不起作用。意思是,即使您在特定标头中输入随机 ip,nginx 仍然会将正确的 ip 传递给后端网络服务器?
这与haproxy有关吗?
任何人都可以确认精心制作的 X-Forwarded-For 标头可以通过 haproxy 吗?
为什么这在 nginx 中没有发生?
你如何防止这种情况发生?
在haproxy中,如果你没有什么可以阻止这种情况,那是正常的,我不知道在nginx中如何处理,但是我使用haproxy这样解决了:
在默认选项中:
在我的 haproxy 前端定义中,我有:
X-Forwarded-For
如果客户端尝试伪造,则在 http 请求中删除,haproxy 在具有真实 IP 地址的 http 响应中返回真实标头如果要用来
X-Forwarded-For
检查http客户端的ip地址,如果http请求中存在,则需要将其删除,因为使用http代理的客户端有时会在其中设置本地ip地址X-Forwarded-For