Direkt zum Inhalt

Wie erlaube ich meinen Benutzern, eine Verbindung zu meiner Website herzustellen, die ich auf einer EC2-Instance über HTTP oder HTTPS hoste?

Lesedauer: 5 Minute
0

Ich hoste meine Website auf einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance. Ich möchte, dass Benutzer über HTTP (Port 80) oder HTTPS (Port 443) eine Verbindung zu meiner Website herstellen.

Lösung

Um den Datenverkehr auf Port 80 oder Port 443 zuzulassen, musst du die zugehörige Sicherheitsgruppe und die Netzwerk-Zugriffssteuerungsliste (ACL) konfigurieren.

Sicherheitsgruppenregeln konfigurieren

Füge für den HTTP-Datenverkehr eine Regel für eingehenden Datenverkehr auf Port 80 von der Quelladresse 0.0.0.0/0 hinzu.

Füge für den HTTPS-Datenverkehr eine Regel für eingehenden Datenverkehr auf Port 443 von der Quelladresse 0.0.0.0/0 hinzu.

Die vorherigen Regeln für eingehenden Datenverkehr lassen den Datenverkehr von IPv4-Adressen zu. Um den IPv6-Datenverkehr zuzulassen, füge Regeln für eingehenden Datenverkehr für dieselben Ports von der Quelladresse ::/0 aus hinzu.

Du musst die Regeln der Sicherheitsgruppe für ausgehenden Datenverkehr nicht ändern. Sicherheitsgruppen sind zustandsbehaftet, sodass der Rückverkehr von der Instance zu Benutzern automatisch zugelassen wird.

Die folgende Beispielkonfiguration enthält Regeln, die IPv4- und IPv6-Datenverkehr auf den TCP-Ports 80 und 443 zulassen.

Regeln für eingehenden Datenverkehr

TypProtokollPort-BereichQuelle
HTTP (80)TCP (6)800.0.0.0/0
HTTP (80)TCP (6)80::/0
HTTPS (443)TCP (6)4430.0.0.0/0
HTTPS (443)TCP (6)443::/0

Hinweis: Prüfe, ob du anderen Datenverkehrsquellen wie SSH oder Remote Desktop Protocol (RDP) erlauben musst, sich bei der Instance anzumelden. Stelle dann sicher, dass deine Sicherheitsgruppe über die Regeln für eingehenden Datenverkehr verfügt, um den erforderlichen Datenverkehr zuzulassen.

Netzwerk-ACL konfigurieren

Die Standard-Netzwerk-ACL lässt den gesamten eingehenden und ausgehenden IPv4-Datenverkehr zu. Wenn deiner Amazon Virtual Private Cloud (Amazon VPC) ein IPv6-CIDR-Block zugeordnet ist, fügt die Standard-Netzwerk-ACL automatisch Regeln hinzu, die den gesamten eingehenden und ausgehenden IPv6-Datenverkehr zulassen. Wenn du jedoch eine benutzerdefinierte Netzwerk-ACL mit restriktiveren Regeln verwendest, musst du den Datenverkehr auf Port 80 und 443 explizit zulassen.

Netzwerk-ACLs sind zustandslos, daher musst du Regeln sowohl für eingehenden als auch für ausgehenden Datenverkehr hinzufügen, um die Verbindung zu deiner Website zu ermöglichen.

Die folgende Konfiguration ist ein Beispiel für eine benutzerdefinierte Netzwerk-ACL, die Datenverkehr auf den TCP-Ports 80 und 443 zulässt. Du verwendest Netzwerk-ACLs für alle Ressourcen in einem Subnetz, nicht nur für eine einzelne Amazon-EC2-Instance. Die folgende Konfiguration blockiert den gesamten Datenverkehr zu und von Ressourcen im Subnetz, außer an den Zielports 80 und 443.

Regeln für eingehenden Datenverkehr

Regel Nr.TypProtokollPort-BereichQuelleErlauben/Verweigern
100HTTP (80)TCP (6)800.0.0.0/0ERLAUBEN
101HTTPS (443)TCP (6)4430.0.0.0/0ERLAUBEN
102HTTP (80)TCP (6)80::/0ERLAUBEN
103HTTPS (443)TCP (6)443::/0ERLAUBEN
*GESAMTER DatenverkehrALLEALLE::/0VERWEIGERN
*GESAMTER DatenverkehrALLEALLE0.0.0.0/0VERWEIGERN

Regeln für ausgehenden Datenverkehr

Regel Nr.TypProtokollPort-BereichZielortErlauben/Verweigern
100Benutzerdefinierte TCP-RegelTCP (6)1024-655350.0.0.0/0ERLAUBEN
101Benutzerdefinierte TCP-RegelTCP (6)1024-65535::/0ERLAUBEN
*GESAMTER DatenverkehrALLEALLE::/0VERWEIGERN
*GESAMTER DatenverkehrALLEALLE0.0.0.0/0VERWEIGERN

Hinweis: Prüfe, ob du anderen Datenverkehrsquellen wie SSH oder RDP erlauben musst, sich bei der Instance anzumelden. Stelle dann sicher, dass deine Netzwerk-ACL über die Regeln für eingehenden Datenverkehr verfügt, um den erforderlichen Datenverkehr zuzulassen.

Problembehandlung beim Fehler „connection refused“

Der Fehler „connection refused“ tritt auf, wenn die Verbindung über einen Port weitergeleitet wird, den du nicht in deinen Sicherheitsgruppen- oder Netzwerk-ACL-Regeln angegeben hast. Beispielsweise initiiert Host A eine TCP-Verbindung zu Host B. Zuerst sendet Host A ein TCP-SYN-Paket an Host B. Dann sendet Host B ein TCP-RST-Paket als Antwort an Host A. Wenn diese Verbindungsanforderungen nicht auf dem angegebenen Port erfolgen, empfängt Host A den Fehler „connection refused“.

Um dieses Problem zu beheben, überprüfe, ob sich der Webserver-Service in der Instance auf Port 80 oder 443 im Status Wird ausgeführt befindet.

Fehler „connection timeout“ beheben

Wenn du die Fehlermeldung „connection timeout“ erhältst, nachdem du die TCP-Ports 80 und 443 explizit zugelassen hast, überprüfe die Firewall des Betriebssystems. Stelle sicher, dass die Firewall den eingehenden TCP-Datenverkehr an den erforderlichen Ports nicht blockiert.

AWS OFFICIALAktualisiert vor 7 Monaten