X-Forwarded-Proto不会通过带有Palo Alto VM防火墙的AWS ALB Sandwich传递

时间:2019-02-06 16:54:02

标签: amazon-web-services aws-load-balancer web-application-firewall

我们正在将Palo Alto的VM防火墙与ELB的sandwich topology配合使用,并且无法获得正确的X-Forwarded-Proto使其完全返回到Web服务器。 HTTPS终止发生在外部负载均衡器上,然后作为HTTP在整个堆栈中运行。使用单个负载平衡器,无论是HTTP还是HTTPS,我们都不会检索正确的X-Forwarded-Proto标头。但是,在三明治拓扑中,无论如何,我们都将HTTP作为X-Forwarde-Proto。

我们需要标头的主要问题是将所有请求重定向到HTTPS,这也许可以在PAN防火墙上完成,但是事实证明这还难以捉摸。

2 个答案:

答案 0 :(得分:1)

这是预期的行为,并且很可能是设计导致的-如果ALB通过X-Forwarded-Proto,则可以伪造,并且它们没有任何允许例外的能力...因此,它总是被覆盖

您可以在内部使用网络负载平衡器。由于它们在第4层运行,因此它们不会处理标头。

或者,如果面向外部的平衡器是ALB,则可以在那里创建一条规则,以将所有HTTP请求重定向到平衡器中的HTTPS。

  

通过重定向操作,负载均衡器可以将传入请求从一个URL重定向到另一个URL。这包括将HTTP请求重定向到HTTPS请求的功能,从而使您可以满足安全浏览的合规性目标,获得更好的搜索排名和站点SSL / TLS得分高。

     

https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/

关于ALB重定向的一个小“陷阱”是,您必须将目标端口明确指定为443,否则平衡器将保留原始端口并将重定向写入https://example.com:80/,这当然是行不通的。 / p>

答案 1 :(得分:0)

这可能不是您要寻找的答案,但是,如果您在传输层使用基于TCP的网络负载平衡器而不在应用程序层使用HTTP / S侦听器,则此体系结构将起作用。

当将请求代理到目标服务器时,传输负载平衡器将完全不考虑协议,并且整个HTTPS将保持不变。应用程序负载平衡器将解释其策略并在设计上覆盖X-Forwarded-Proto