2010-03-07 6 views
12

Wir Blacklist IP-Adresse in der Regel mit iptables. Wenn jedoch in Amazon EC2 eine Verbindung den Elastic Load Balancer durchläuft, wird die Remote-Adresse durch die Adresse des Lastenausgleichsmoduls ersetzt, wodurch iptables unbrauchbar wird. Im Fall von HTTP ist die einzige Möglichkeit, die reale entfernte Adresse herauszufinden, der HTTP-Header HTTP_X_FORWARDED_FOR. Für mich ist das Blockieren von IPs auf Webanwendungsebene kein effektiver Weg.Amazon EC2 Load Balancer: Verteidigung gegen DoS-Angriff?

Was ist die beste Vorgehensweise, um in diesem Szenario gegen DoS-Angriffe zu verteidigen?

In this article schlug jemand vor, dass wir Elastic Load Balancer mit HAProxy ersetzen können. Allerdings gibt es dabei gewisse Nachteile, und ich versuche herauszufinden, ob es bessere Alternativen gibt.

+0

Die folgenden Threads hier über in den AWS-Foren auch für das Sehen von Nutzen sein können, was Menschen in ähnlichen Situationen haben getan: https://forums.aws.amazon.com/message.jspa?messageID=212411#212411 – jm3

Antwort

3

Ich denke, Sie haben alle aktuellen Optionen beschrieben. Vielleicht möchten Sie bei einigen der AWS-Forum-Threads mitspielen, um für eine Lösung zu stimmen - die Ingenieure und das Management von Amazon sind offen für Vorschläge für ELB-Verbesserungen.

+0

Fragen Sie sie über TPROXY-Unterstützung. :) – Craig

1

Es ist üblich, einen Anwendungsserver hinter einem Reverseproxy auszuführen. Ihr Reverse-Proxy ist eine Schicht, die Sie verwenden können, um den DoS-Schutz hinzuzufügen, bevor der Datenverkehr zu Ihrem Anwendungsserver gelangt. Für Nginx können Sie the rate limiting module als etwas betrachten, das helfen könnte.

0

Sie könnten einen EC2-Host einrichten und haproxy selbst ausführen (das nutzt Amazon sowieso!). Dann können Sie Ihre iptables-Filter auf diesem System anwenden.

2

Wenn Sie Ihren ELB und Instanzen mit VPC anstelle von EC2-classic bereitstellen, können Sie Sicherheitsgruppen und Netzwerk-ACLs verwenden, um den Zugriff auf den ELB einzuschränken.

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

+1

Gibt es eine Möglichkeit, ACL-Netzwerkregeln programmgesteuert hinzuzufügen? Wenn zB etwas wie fail2ban eine problematische IP gefunden hat, führe ein Skript aus, das es als ACL-Regel hinzufügt. – Aphire

+0

@Aphire Ja, die [CLI] (https://docs.aws.amazon.com/cli/latest/userguide/cli-ec2-sg.html) und die [API] (https://docs.aws. amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#authorizeSecurityGroupEgress-property) unterstützt das Erstellen und Ändern von Sicherheitsgruppen – Matt