2013-08-31 74 views
9

使用網絡服務器(apache或nginx),我可以找到x-forwarded-for標題,找到客戶端IP而不是ELB的IP。如何在AWS ELB後面獲取客戶端IP?

我可以使用IPTables做同樣的事情,這樣我就可以阻止某些IP地址了嗎?

我可以在Web服務器級別執行此操作。但是,我認爲這有點低效,我希望我可以用IP表或類似的東西來實現這一點。

回答

6

你不能用iptables做到這一點,因爲iptables只會看到彈性負載平衡器的IP地址,因爲ELB是建立到你的實例的連接的東西。

使用Web服務器阻止某些x前轉的值並不是特別低效,但是如果要控制誰可以通過IP地址訪問您的ELB,也可以使用附加到ELB。


更新:您的評論是部分正確的,因爲,至少截至目前,ELB在EC2上的「經典」不支持入站安全組或網絡訪問控制列表,但ELB上VPC一樣。

問:我可以爲Elastic Load Balancer的前端配置安全組嗎?

如果您正在使用Amazon Virtual Private Cloud,則可以爲Elastic Load Balancer的前端配置安全組。 —   http://aws.amazon.com/ec2/faqs/#ELB6

安全組是最容易當你需要允許相對較小的特定IP地址範圍的使用。如果你想允許最多但阻止幾個,那麼VPC Network Access Control List是更容易的方法。

+0

ELB沒有安全組,對嗎?至少你不能添加/刪除IP地址。 – Abs

11

自7月30日起,ELB支持Proxy Protocol。如在this thread in the AWS forum末說:

彈性負載均衡(ELB)現在支持代理協議版本1. 此功能允許您使用TCP負載平衡時識別客戶端的連接 信息,提供額外的 洞察訪問您的應用程序。擁有此信息 可用於分析流量日誌,收集連接 統計信息,故障排除或管理IP地址的白名單。

您必須是enable Proxy Protocol in the ELB

developers guide有關於代理協議的更多信息。

+0

請注意:只有在使用TCP偵聽器時才需要代理協議。對於'HTTP'監聽器,你仍然可以使用'X-Forwarded-For'頭部。 –

+0

這仍然是這種情況?鏈接不起作用:/ –

+0

哪個鏈接不起作用? –