Ich sehe in den VPC-Flow-Protokollen für mein öffentliches NAT-Gateway eingehenden Datenverkehr. Akzeptiert mein öffentliches NAT-Gateway eingehenden Datenverkehr aus dem Internet?

Lesedauer: 4 Minute
0

In meinen Flow-Protokollen für Virtual Private Cloud (VPC) wird Action = ACCEPT für eingehenden Datenverkehr von öffentlichen IP-Adressen angezeigt. Nach meinem Verständnis akzeptieren Network Address Translation (NAT)-Gateways jedoch keinen Datenverkehr aus dem Internet. Akzeptiert mein NAT-Gateway eingehenden Datenverkehr aus dem Internet?

Lösung

Von AWS verwaltete NAT-Gateways akzeptieren keinen aus dem Internet initiierten Datenverkehr. Es gibt jedoch zwei Gründe, warum Informationen in Ihren VPC-Flow-Protokollen darauf hindeuten können, dass eingehender Datenverkehr aus dem Internet akzeptiert wird.

Grund Nr. 1: Eingehender Datenverkehr aus dem Internet wird von Ihrer Sicherheitsgruppe oder Ihren Netzwerk-Zugriffssteuerungslisten (ACL) zugelassen

In den VPC-Flow-Protokollen wird eingehender Datenverkehr aus dem Internet als akzeptiert angezeigt, wenn er von Ihrer Sicherheitsgruppe oder Ihren Netzwerk-ACL zugelassen wird. Wenn die Netzwerk-ACL eines NAT-Gateways Datenverkehr aus dem Internet nicht explizit verweigern, erscheint der Datenverkehr zum NAT-Gateway als akzeptiert. Der Datenverkehr wird jedoch vom NAT-Gateway nicht akzeptiert und verworfen.

Gehen Sie wie folgt vor, um dies zu überprüfen:

  1. Öffnen Sie die Amazon-CloudWatch-Konsole.
  2. Wählen Sie im Navigationsbereich Erkenntnisse aus.
  3. Wählen Sie aus der Dropdownliste die Protokollgruppe aus, die die Elastic-Network-Schnittstellen des NAT-Gateways und der privaten Instance enthält.
  4. Führen Sie die folgende Abfrage aus.
filter (dstAddr like 'xxx.xxx' and srcAddr like 'public IP')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| limit 10

Hinweis: Sie können nur die ersten beiden Oktette im Suchfilter verwenden, um alle Netzwerkschnittstellen in der VPC zu analysieren. Ersetzen Sie im obigen Beispiel xxx.xxx durch die ersten beiden Oktette Ihres VPC Classless Inter-Domain Routing (CIDR). Ersetzen Sie außerdem public IP durch die öffentliche IP, die Sie im VPC-Flow-Protokolleintrag sehen.

Die Ergebnisse der Abfrage zeigen den Datenverkehr auf der privaten IP des NAT-Gateways von der öffentlichen IP aus, aber nicht den Datenverkehr auf anderen privaten IPs in der VPC. Diese Ergebnisse bestätigen, dass der eingehende Datenverkehr unerwünscht war. Wenn Sie jedoch Datenverkehr auf der IP der privaten Instance sehen, folgen Sie den Schritten zu Grund Nr. 2.

Grund Nr. 2: Datenverkehr zur öffentlichen IP wurde von einer privaten Instance initiiert

Wenn private Instances das NAT-Gateway für den Internetzugang verwenden, enthält Ihr VPC-Flow-Protokoll den Antwort-Datenverkehr von der öffentlichen IP-Adresse. Führen Sie folgende Abfrage aus, um zu bestätigen, dass der Datenverkehr zur öffentlichen IP von Ihrer privaten Instance aus initiiert wurde:

Hinweis: Erledigen Sie folgende Schritte, bevor Sie die Abfrage ausführen:

  • Wählen Sie den Zeitrahmen aus, in dem Sie Datenverkehr in den VPC-Flow-Protokollen beobachtet haben.
  • Wenn Sie mehrere Protokollgruppen in Ihrer VPC haben, wählen Sie die entsprechende aus.
filter (dstAddr like 'public IP' and srcAddr like 'xxx.xxx') or (srcAddr like 'public IP' and dstAddr like 'xxx.xxx')
| limit 10

Ersetzen Sie xxx.xxx durch die ersten beiden Oktette Ihres VPC CIDR. Ersetzen Sie public IP durch die öffentliche IP, die Sie im VPC-Flow-Protokolleintrag sehen. Erhöhen Sie das limit, wenn mehr als 10 Ressourcen in Ihrer VPC Datenverkehr zur öffentlichen IP initiiert haben.

Die Abfrageergebnisse zeigen bidirektionalen Datenverkehr zwischen der privaten Instance und öffentlichen IP-Adressen. Um festzustellen, ob die private Instance oder die externe öffentliche IP-Adresse der Initiator ist, sehen Sie sich das folgende Beispiel an:

2022-09-28T12:05:18.000+10:00 eni-023466675b6xxxxxx 10.0.101.222 8.8.8.8 53218 53 6(17) 4 221 1664330718 1664330746 ACCEPT OK
2022-09-28T12:05:18.000+10:00 eni-023466675b6xxxxxx 8.8.8.8 10.0.101.222 53 53218 6(17) 4 216 1664330718 1664330746 ACCEPT OK

In diesem Beispiel für TCP/UDP-Datenverkehr (Protokoll-ID = 6 oder 17) ist die private IP-Adresse 10.0.101.222 mit dem Quellport 53218 (flüchtiger Port) der Initiator. Die IP-Adresse 8.8.8.8 mit Zielport 53 ist der Empfänger und der Responder. Hinweis: Es hat sich bewährt, das TCP-Flag-Feld für Ihr VPC-Flow-Protokoll zu aktivieren.

Die folgenden Einträge haben beispielsweise ein TCP-Flag-Feld in der letzten Spalte:

2022-09-28T12:05:52.000+10:00 eni-023466675b6xxxxxx 10.0.1.231 8.8.8.8 50691 53 6(17) 3 4 221 1664330752 1664330776 ACCEPT OK 2
2022-09-28T12:05:21.000+10:00 eni-023466675b6xxxxxx 8.8.8.8 10.0.1.231 53 50691 6(17) 19 4 216 1664330721 1664330742 ACCEPT OK 18

Die private IP-Adresse 10.0.101.222 ist der Initiator mit dem TCP-Flag 2, das ein TCP-SYN-Paket darstellt.

Im folgenden Beispiel unter Verwendung des ICMP-Protokolls sind nicht genügend Informationen vorhanden, um festzustellen, welche Seite der Initiator ist, da es keine Auskunft über Ports und kein TCP-Flag enthält:

2022-09-27T17:57:39.000+10:00 eni-023466675b6xxxxxx 10.0.1.231 8.8.8.8 0 0 1 17 1428 1664265459 1664265483 ACCEPT OK
2022-09-27T17:57:39.000+10:00 eni-023466675b6xxxxxx 8.8.8.8 10.0.1.231 0 0 1 0 17 1428 1664265459 1664265483 ACCEPT OK

Das Format eines Eintrags in Ihrem Flow-Protokoll hängt davon ab, wie dieses erstellt wurde. Weitere Informationen zu Protokollzeilen-Formaten finden Sie unter Anzeigen eines Flow-Protokolls.


Ähnliche Informationen

Protokollieren von IP-Datenverkehr mit VPC Flow Logs

Beispielabfragen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr