2010-03-07 110 views
12

我們通常會使用iptables將IP地址列入黑名單。但是在Amazon EC2中,如果連接通過Elastic Load Balancer,則遠程地址將被負載平衡器的地址替換,導致iptables無用。在HTTP的情況下,顯然找到真正的遠程地址的唯一方法是查看HTTP標頭HTTP_X_FORWARDED_FOR。對我而言,在Web應用程序級別阻止IP並不是一種有效的方法。亞馬遜EC2負載均衡器:防禦DoS攻擊?

在這種情況下防禦DoS攻擊的最佳做法是什麼?

In this article,有人提出我們可以用HAProxy替換Elastic Load Balancer。但是,這樣做有一些缺點,我試圖看看是否有更好的選擇。

+0

在這裏在AWS論壇下面的線程也可能是看到有用的東西處於類似情況的人已經完成了:https://forums.aws.amazon.com/message.jspa?messageID=212411#212411 – jm3 2011-11-14 20:35:34

回答

3

我想你已經描述了所有當前的選項。您可能想要在某些AWS論壇主題上投票選出一個解決方案 - 亞馬遜工程師和管理層對ELB改進建議持開放態度。

+0

詢問他們有關TPROXY的支持。 :) – Craig 2013-10-30 12:04:51

1

在逆向代理後面運行應用程序服務器很常見。您的反向代理是您可用於在流量到達您的應用程序服務器之前添加DoS保護的層。對於Nginx來說,你可以看看the rate limiting module,這可能會有所幫助。

0

你可以設置一臺EC2主機,並自己運行haproxy(這就是亞馬遜正在使用的東西!)。然後你可以在你的系統上應用你的iptables過濾器。

2

如果您使用VPC而不是EC2-classic部署ELB和實例,則可以使用安全組和網絡ACL來限制對ELB的訪問。

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/USVPC_ApplySG.html

+1

有沒有辦法通過編程添加ACL網絡規則?也就是說,一旦像fail2ban那樣挑選了一個麻煩的IP,運行一些腳本將它添加爲ACL規則? – Aphire 2016-03-31 14:05:57

+0

@Aphire是的,[cli](https://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-sg.html)和[API](https://docs.aws。 amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#authorizeSecurityGroupEgress-property)支持創建和修改安全組 – Matt 2017-09-19 05:09:58