Ich weiß, dass ein bestimmter Bereich von IP-Adressen Probleme mit meinem Server verursacht. 172.64.*.*
Wie kann ich den Zugriff auf meine Amazon EC2-Instanz am besten blockieren? Gibt es eine Möglichkeit, dies mithilfe von Sicherheitsgruppen zu tun, oder ist es besser, dies mit der Firewall auf dem Server selbst zu tun?
27
Antworten:
Blockieren Sie den Datenverkehr sowohl auf dem Server als auch auf der Firewall, falls dies möglich ist.
Sicherheitsgruppen sind gut, weil sie sich außerhalb Ihres Hosts befinden, sodass die Daten niemals bei Ihnen ankommen. Sie sind jedoch nicht ganz so konfigurierbar wie die meisten serverbasierten Firewalls.
Leider können EC2-Sicherheitsgruppen Dienste nur über eine Standardverweigerungsrichtlinie "zulassen". Wenn Sie also versuchen, den Zugriff auf einen öffentlich "zugelassenen" Dienst für einen kleinen IP-Bereich zu blockieren, ist das Erstellen der Zulassungsregel für "den Rest des Internets" etwas komplexer als nur das Blockieren eines IP-Bereichs. Da Sie einen schönen großen Teil angegeben haben, ist die Liste der Netzwerkbereiche ohne 172.64.0.0/16 nicht zu lang:
Diese Liste müsste für Ihre Ports hinzugefügt werden. Anschließend können Sie die Regel "Alle zulassen" für diesen Port löschen. Wenn Sie mehrere Ports haben, für die Sie dies tun möchten, die nicht zusammenhängend sind, muss die Liste mehrmals verwendet werden. Wenn Sie über mehrere Sicherheitsgruppen verfügen, kann dies schnell zu Problemen führen.
Lokale Firewall funktioniert auch.
iptables
ist für Amazon AMI und alle Linux-Distributionen verfügbarNachdem Sie Ihre Regeln hinzugefügt haben, müssen Sie sie speichern und sicherstellen, dass der
iptables
Dienst beim Start gestartet wird.Die Konfigurationsdatei, in der gespeichert werden soll, hängt von den Distributionen ab.
Verwenden einer VPC
Wenn Sie eine VPC für Ihre Instanzen verwenden, können Sie "Netzwerk-ACLS" angeben, die in Ihrem Subnetz funktionieren. In Netzwerk-ACLs können Sie sowohl Zulassungs- als auch Ablehnungsregeln schreiben. Ich empfehle daher, dies auf diese Weise zu tun.
quelle
iptables
, dass es nicht funktioniert. Beziehen Sie sich also auf das große Subnetz, das in der Sicherheitsgruppe zulässig ist?Die einfachste Möglichkeit, den Datenverkehr zu stoppen, besteht darin, ihn der VPC-Netzwerk-ACL dieser Instanz hinzuzufügen und den gesamten Datenverkehr von dieser IP-Adresse abzulehnen (vorausgesetzt, VPC wird verwendet).
Beachten Sie, dass die Nummer der Verweigerungsregel kleiner sein sollte als die Nummer der ersten Zulassungsregel.
quelle
Ich bin zweimal auf ein Problem gestoßen und habe festgestellt, dass meine EC2-Situation etwas anders ist: Funktioniert
iptables
nicht, wenn sich Ihre Server in einem Cluster hinter einem ELB (Elastic Load Balancer) befinden - die IP-Adresse, von der die Instanz weiß, ist die von die ELB.Wenn Sie Ihre ELB in einer moderneren Konfiguration konfiguriert haben, lesen Sie diese SO-Antwort: https://stackoverflow.com/questions/20123308/how-to-configure-aws-elb-to-block-certain-ip-addresses-known -Spammer
In unserem Fall hatten wir die Dinge nicht gut eingerichtet, also musste ich Apache verwenden, der nach dem
X-FORWARDED-FOR
Header suchen und IP-Adressen davon blockieren kann.Fügen Sie dies zu Ihrer Apache-Konfiguration hinzu (möglicherweise in einem VirtualHost-Block):
Dies überprüft den von der ELB gesetzten Header
Speichern Sie die Konfiguration, testen Sie sie mit
apache2ctl -t
debian / ubuntu (oderapachectl -t
RHEL) und starten Sie Apache neu.Dies sendet nur eine
403 Forbidden
Antwort zurückquelle
Blockieren des Datenverkehrs von einem einzelnen IP / IP-Bereich in AWS
Hier ist eine kurze Anleitung: http://chopmo.dk/posts/2015/06/13/blocking-traffic-in-aws.html
quelle