2013-08-31 7 views
9

Mit einem Webserver (Apache oder Nginx) kann ich die x-forwarded-for Header finden und die Client-IP statt der ELB-IP finden.Wie bekomme ich Client-IP hinter einem AWS-ELB?

Kann ich dasselbe mit IPTables machen, so dass ich bestimmte IP-Adressen blockieren kann?

Ich kann dies auf der Webserver-Ebene tun. Aber ich denke, das ist ein bisschen ineffizient und ich hoffe, dass ich das mit IP-Tabellen oder etwas Ähnlichem erreichen kann?

Antwort

6

Das ist mit iptables nicht möglich, da iptables immer nur die IP-Adresse des Elastic Load Balancers sieht, da der ELB die Verbindungen zu Ihrer Instanz herstellt. Die Verwendung des Webservers zum Blockieren bestimmter x-forwarded-for-Werte ist nicht besonders ineffizient. Wenn Sie jedoch steuern möchten, wer nach der IP-Adresse auf Ihren ELB zugreifen kann, kann dies auch mit der an die Sicherheitsgruppe angehängten Sicherheitsgruppe bewerkstelligt werden ELB.


Update: Ihr Kommentar ist teilweise richtig, da, zumindest ab sofort, ELB auf EC2 „klassischen“ nicht eine eingehende Sicherheitsgruppe oder Netzwerk-Zugriffssteuerungsliste unterstützen, aber ELB auf VPC tut.

F: Kann ich eine Sicherheitsgruppe für das Front-End des Elastic Load Balancer konfigurieren?

Wenn Sie Amazon Virtual Private Cloud verwenden, können Sie Sicherheitsgruppen für das Front-End Ihres Elastic Load Balancer konfigurieren. —   http://aws.amazon.com/ec2/faqs/#ELB6

Sicherheitsgruppen sind am einfachsten zu verwenden, wenn Sie eine relativ kleine Gruppe von bestimmten IP-Adressbereichen zu ermöglichen, benötigen. Wenn Sie die meisten zulassen wollen, aber ein paar blockieren, dann ist ein VPC Network Access Control List der leichtere Ansatz.

+0

Ein ELB haben keine Sicherheitsgruppen, oder? Zumindest können Sie keine IPs hinzufügen/entfernen. – Abs

11

Seit dem 30. Juli unterstützt ELB Proxy Protocol. Wie am Ende von this thread in the AWS forum angegeben:

Elastic Load Balancing (ELB) unterstützt jetzt Proxy-Protokoll Version 1. Mit dieser Funktion können Sie die Client-Verbindung Informationen identifizieren, wenn TCP Lastausgleich verwendet wird, die Bereitstellung zusätzlicher Einblick in Besucher Ihrer Anwendungen. Mit dieser Information kann nützlich sein für die Analyse von Verkehrsprotokollen, das Sammeln von Verbindung Statistiken, Fehlerbehebung oder die Verwaltung von Whitelists von IP-Adressen.

Sie müssen enable Proxy Protocol in the ELB.

Die developers guide hat weitere Informationen über Proxy-Protokoll.

+0

Nur ein Hinweis: Proxy-Protokoll wird nur benötigt, wenn TCP-Listener verwenden. Für 'HTTP'-Listener können Sie immer noch' X-Forwarded-For'-Header verwenden. –

+0

Ist das immer noch so? Der Link funktioniert nicht:/ –

+0

Welcher Link funktioniert nicht? –