AWS - VPC & Networking Basic Information

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

AWS-Netzwerke im Überblick

Ein VPC enthält ein Netzwerk-CIDR wie z.B. 10.0.0.0/16 (mit seiner Routing-Tabelle und Netzwerk-ACL).

Dieses VPC-Netzwerk ist in Teilnetze unterteilt, sodass ein Teilnetz direkt mit dem VPC, der Routing-Tabelle und der Netzwerk-ACL verbunden ist.

Dann sind Netzwerk-Schnittstellen an Dienste (wie EC2-Instanzen) angeschlossen und mit Sicherheitsgruppen an die Teilnetze verbunden.

Daher wird eine Sicherheitsgruppe die freigegebenen Ports der Netzwerk-Schnittstellen, die sie verwenden, unabhängig vom Teilnetz begrenzen. Und eine Netzwerk-ACL wird die freigegebenen Ports für das gesamte Netzwerk begrenzen.

Darüber hinaus gibt es einige interessante Konfigurationen, um auf das Internet zuzugreifen:

  • Ein Teilnetz kann öffentliche IPv4-Adressen automatisch zuweisen

  • Eine Instanz, die im Netzwerk erstellt wurde und IPv4-Adressen automatisch zuweisen kann, kann eine erhalten

  • Ein Internet-Gateway muss an das VPC angehängt werden

  • Sie könnten auch Nur-Ausgangs-Internet-Gateways verwenden

  • Sie könnten auch ein NAT-Gateway in einem privaten Teilnetz haben, sodass es möglich ist, von diesem privaten Teilnetz aus eine Verbindung zu externen Diensten herzustellen, aber es ist nicht möglich, von außen darauf zuzugreifen.

  • Das NAT-Gateway kann öffentlich (Zugriff auf das Internet) oder privat (Zugriff auf andere VPCs) sein

VPC

Amazon Virtual Private Cloud (Amazon VPC) ermöglicht es Ihnen, AWS-Ressourcen in ein von Ihnen definiertes virtuelles Netzwerk zu starten. Dieses virtuelle Netzwerk wird mehrere Teilnetze, Internet-Gateways zum Zugriff auf das Internet, ACLs, Sicherheitsgruppen, IPs usw. haben...

Teilnetze

Teilnetze helfen dabei, ein höheres Maß an Sicherheit durchzusetzen. Die logische Gruppierung ähnlicher Ressourcen hilft Ihnen auch dabei, eine einfache Verwaltung Ihrer Infrastruktur aufrechtzuerhalten.

  • Gültige CIDR reichen von einem /16-Netzwerkmaskenbit bis zu einem /28-Netzwerkmaskenbit.

  • Ein Teilnetz kann nicht gleichzeitig in verschiedenen Verfügbarkeitszonen sein.

  • AWS reserviert die ersten drei Host-IP-Adressen jedes Teilnetzes für die interne AWS-Nutzung: Die erste verwendete Host-Adresse ist für den VPC-Router. Die zweite Adresse ist für AWS DNS reserviert und die dritte Adresse ist für zukünftige Verwendung reserviert.

  • Es wird als öffentliche Teilnetze bezeichnet, die direkten Zugriff auf das Internet haben, während private Teilnetze dies nicht haben.

Routing-Tabellen

Routing-Tabellen bestimmen die Verkehrswege für ein Teilnetz innerhalb eines VPCs. Sie bestimmen, welcher Netzwerkverkehr zum Internet oder zu einer VPN-Verbindung weitergeleitet wird. Sie finden normalerweise Zugriff auf:

  • Lokales VPC

  • NAT

  • Internet-Gateways / Nur-Ausgangs-Internet-Gateways (um einem VPC Zugriff auf das Internet zu geben).

  • Um ein Teilnetz öffentlich zu machen, müssen Sie ein Internet-Gateway erstellen und an Ihr VPC anhängen.

  • VPC-Endpunkte (um von privaten Netzwerken aus auf S3 zuzugreifen)

In den folgenden Bildern können Sie die Unterschiede in einem Standard-öffentlichen Netzwerk und einem privaten Netzwerk überprüfen:

ACLs

Netzwerkzugriffssteuerungslisten (ACLs): Netzwerk-ACLs sind Firewall-Regeln, die den ein- und ausgehenden Netzwerkverkehr zu einem Teilnetz steuern. Sie können verwendet werden, um den Verkehr zu bestimmten IP-Adressen oder -Bereichen zuzulassen oder zu verweigern.

  • Es ist am häufigsten, den Zugriff mit Sicherheitsgruppen zu erlauben/verweigern, aber dies ist nur eine Möglichkeit, bereits etablierte Reverse-Shells vollständig zu unterbrechen. Eine geänderte Regel in einer Sicherheitsgruppe stoppt keine bereits hergestellten Verbindungen.

  • Dies gilt jedoch für das gesamte Teilnetz, seien Sie vorsichtig, wenn Sie Dinge verbieten, da die benötigte Funktionalität gestört werden könnte.

Sicherheitsgruppen

Sicherheitsgruppen sind eine virtuelle Firewall, die den ein- und ausgehenden Netzwerkverkehr zu Instanzen in einem VPC kontrollieren. In der Regel wird dies verwendet, um gefährliche Ports in Instanzen zu öffnen, wie z. B. Port 22:

Elastische IP-Adressen

Eine elastische IP-Adresse ist eine statische IPv4-Adresse, die für die dynamische Cloud-Computing-Umgebung entwickelt wurde. Eine elastische IP-Adresse wird Ihrem AWS-Konto zugewiesen und gehört Ihnen, bis Sie sie freigeben. Durch die Verwendung einer elastischen IP-Adresse können Sie den Ausfall einer Instanz oder Software maskieren, indem Sie die Adresse schnell auf eine andere Instanz in Ihrem Konto umleiten.

Verbindung zwischen Subnetzen

Standardmäßig ist die automatische Zuweisung von öffentlichen IP-Adressen für Subnetze deaktiviert, kann jedoch aktiviert werden.

Ein lokaler Routeneintrag in einer Routentabelle ermöglicht die Kommunikation zwischen VPC-Subnetzen.

Wenn Sie ein Subnetz mit einem anderen Subnetz verbinden, können Sie nicht auf die mit dem anderen Subnetz verbundenen Subnetze zugreifen, Sie müssen eine direkte Verbindung mit ihnen herstellen. Dies gilt auch für Internet-Gateways. Sie können nicht über eine Subnetzverbindung auf das Internet zugreifen, Sie müssen das Internet-Gateway Ihrem Subnetz zuweisen.

VPC-Peering

VPC-Peering ermöglicht es Ihnen, zwei oder mehr VPCs miteinander zu verbinden, indem Sie IPV4 oder IPV6 verwenden, als ob sie Teil desselben Netzwerks wären.

Sobald die Peer-Verbindung hergestellt ist, können Ressourcen in einer VPC auf Ressourcen in der anderen zugreifen. Die Verbindung zwischen den VPCs wird über die vorhandene AWS-Netzwerkinfrastruktur implementiert und ist daher hochverfügbar, ohne Bandbreitenengpässe. Da gepeerte Verbindungen so funktionieren, als wären sie Teil desselben Netzwerks, gibt es Einschränkungen hinsichtlich der CIDR-Blockbereiche, die verwendet werden können. Wenn Sie überlappende oder doppelte CIDR-Bereiche für Ihre VPC haben, können Sie die VPCs nicht miteinander verbinden. Jede AWS-VPC wird nur mit ihrem Peer kommunizieren. Wenn Sie beispielsweise eine Peering-Verbindung zwischen VPC 1 und VPC 2 und eine weitere Verbindung zwischen VPC 2 und VPC 3 haben, können VPC 1 und 2 direkt miteinander kommunizieren, ebenso wie VPC 2 und VPC 3, jedoch könnten VPC 1 und VPC 3 nicht. Sie können nicht über eine VPC routen, um eine andere zu erreichen.

VPC-Flow-Logs

In Ihrem VPC könnten potenziell Hunderte oder sogar Tausende von Ressourcen vorhanden sein, die zwischen verschiedenen Subnetzen, sowohl öffentlichen als auch privaten, und auch zwischen verschiedenen VPCs über VPC-Peering-Verbindungen kommunizieren. VPC-Flow-Logs ermöglichen es Ihnen, IP-Verkehrsdaten zu erfassen, die zwischen den Netzwerkschnittstellen Ihrer Ressourcen in Ihrem VPC fließen.

Im Gegensatz zu S3-Zugriffsprotokollen und CloudFront-Zugriffsprotokollen wird Protokolldaten, die von VPC-Flow-Logs generiert werden, nicht in S3 gespeichert. Stattdessen werden die erfassten Protokolldaten an CloudWatch-Logs gesendet.

Einschränkungen:

  • Wenn Sie eine VPC-gepeerte Verbindung haben, können Sie nur Flow-Logs von gepeerten VPCs sehen, die sich im selben Konto befinden.

  • Wenn Sie weiterhin Ressourcen in der EC2-Classic-Umgebung ausführen, können Sie leider keine Informationen von deren Schnittstellen abrufen.

  • Sobald ein VPC-Flow-Log erstellt wurde, kann es nicht geändert werden. Um die Konfiguration des VPC-Flow-Logs zu ändern, müssen Sie es löschen und dann neu erstellen.

  • Der folgende Verkehr wird nicht überwacht und erfasst. DHCP-Verkehr innerhalb des VPC, Verkehr von Instanzen, der für den Amazon DNS-Server bestimmt ist.

  • Jeder Verkehr, der zur IP-Adresse des VPC-Standardrouters und Verkehr zu und von den folgenden Adressen, 169.254.169.254, die für das Abrufen von Instanzmetadaten verwendet wird, und 169.254.169.123, die für den Amazon Time Sync Service verwendet wird.

  • Verkehr in Bezug auf eine Amazon Windows-Aktivierungslizenz von einer Windows-Instanz

  • Verkehr zwischen einem Netzwerk-Lastenausgleichs-Interface und einem Endpunktnetzwerk-Interface

Für jede Netzwerkschnittstelle, die Daten an die CloudWatch-Loggruppe sendet, wird ein anderer Protokollstream verwendet. Und in jedem dieser Streams gibt es die Flussprotokolldaten, die den Inhalt der Protokolleinträge zeigen. Jedes dieser Protokolle erfasst Daten während eines Zeitraums von etwa 10 bis 15 Minuten.

VPN

Grundlegende AWS VPN-Komponenten

  1. Kundengateway:

  • Ein Kundengateway ist eine Ressource, die Sie in AWS erstellen, um Ihre Seite einer VPN-Verbindung darzustellen.

  • Es handelt sich im Wesentlichen um ein physisches Gerät oder eine Softwareanwendung auf Ihrer Seite der Site-to-Site-VPN-Verbindung.

  • Sie geben Routing-Informationen und die öffentliche IP-Adresse Ihres Netzwerkgeräts (wie z. B. einen Router oder eine Firewall) an AWS weiter, um ein Kundengateway zu erstellen.

  • Es dient als Referenzpunkt für die Einrichtung der VPN-Verbindung und verursacht keine zusätzlichen Kosten.

  1. Virtuelles privates Gateway:

  • Ein Virtuelles privates Gateway (VPG) ist der VPN-Konzentrator auf der Amazon-Seite der Site-to-Site-VPN-Verbindung.

  • Es ist mit Ihrem VPC verbunden und dient als Ziel für Ihre VPN-Verbindung.

  • VPG ist der AWS-seitige Endpunkt für die VPN-Verbindung.

  • Es handhabt die sichere Kommunikation zwischen Ihrem VPC und Ihrem lokalen Netzwerk.

  1. Site-to-Site-VPN-Verbindung:

  • Eine Site-to-Site-VPN-Verbindung verbindet Ihr lokales Netzwerk über einen sicheren IPsec-VPN-Tunnel mit einem VPC.

  • Diese Art der Verbindung erfordert ein Kundengateway und ein Virtuelles privates Gateway.

  • Sie wird für eine sichere, stabile und konsistente Kommunikation zwischen Ihrem Rechenzentrum oder Netzwerk und Ihrer AWS-Umgebung verwendet.

  • Typischerweise für regelmäßige, langfristige Verbindungen verwendet und basiert auf der übertragenen Datenmenge.

  1. Client-VPN-Endpunkt:

  • Ein Client-VPN-Endpunkt ist eine Ressource, die Sie in AWS erstellen, um Client-VPN-Sitzungen zu ermöglichen und zu verwalten.

  • Es wird verwendet, um einzelnen Geräten (wie Laptops, Smartphones usw.) die sichere Verbindung mit AWS-Ressourcen oder Ihrem lokalen Netzwerk zu ermöglichen.

  • Es unterscheidet sich von Site-to-Site-VPN darin, dass es für einzelne Clients konzipiert ist, anstatt ganze Netzwerke zu verbinden.

  • Mit Client-VPN verwendet jedes Client-Gerät eine VPN-Client-Software, um eine sichere Verbindung herzustellen.

Site-to-Site-VPN

Verbinden Sie Ihr lokales Netzwerk mit Ihrem VPC.

  • VPN-Verbindung: Eine sichere Verbindung zwischen Ihrer lokalen Ausrüstung und Ihren VPCs.

  • VPN-Tunnel: Eine verschlüsselte Verbindung, über die Daten vom Kundenetzwerk zu oder von AWS übertragen werden können.

Jede VPN-Verbindung umfasst zwei VPN-Tunnel, die gleichzeitig für hohe Verfügbarkeit genutzt werden können.

  • Kundengateway: Eine AWS-Ressource, die AWS Informationen über Ihr Kundengatewaygerät bereitstellt.

  • Kundengateway-Gerät: Ein physisches Gerät oder eine Softwareanwendung auf Ihrer Seite der Site-to-Site-VPN-Verbindung.

  • Virtuelles privates Gateway: Der VPN-Konzentrator auf der Amazon-Seite der Site-to-Site-VPN-Verbindung. Sie verwenden ein virtuelles privates Gateway oder ein Transit-Gateway als Gateway für die Amazon-Seite der Site-to-Site-VPN-Verbindung.

  • Transit-Gateway: Ein Transit-Hub, der zur Verbindung Ihrer VPCs und lokalen Netzwerke verwendet werden kann. Sie verwenden ein Transit-Gateway oder ein virtuelles privates Gateway als Gateway für die Amazon-Seite der Site-to-Site-VPN-Verbindung.

Einschränkungen

  • IPv6-Verkehr wird für VPN-Verbindungen an einem virtuellen privaten Gateway nicht unterstützt.

  • Eine AWS VPN-Verbindung unterstützt keine Path MTU Discovery.

Zusätzlich sollten Sie Folgendes beachten, wenn Sie Site-to-Site VPN verwenden.

Client VPN

Verbindung von Ihrem Gerät zu Ihrem VPC

Konzepte

  • Client VPN-Endpunkt: Die Ressource, die Sie erstellen und konfigurieren, um Client-VPN-Sitzungen zu aktivieren und zu verwalten. Es ist die Ressource, an der alle Client-VPN-Sitzungen beendet werden.

  • Zielnetzwerk: Ein Zielnetzwerk ist das Netzwerk, das Sie mit einem Client VPN-Endpunkt verknüpfen. Ein Subnetz aus einem VPC ist ein Zielnetzwerk. Durch die Verknüpfung eines Subnetzes mit einem Client VPN-Endpunkt können Sie VPN-Sitzungen herstellen. Sie können mehrere Subnetze mit einem Client VPN-Endpunkt für hohe Verfügbarkeit verknüpfen. Alle Subnetze müssen aus demselben VPC stammen. Jedes Subnetz muss einer anderen Verfügbarkeitszone angehören.

  • Route: Jeder Client VPN-Endpunkt verfügt über eine Routentabelle, die die verfügbaren Zielnetzwerkrouten beschreibt. Jede Route in der Routentabelle gibt den Pfad für den Verkehr zu bestimmten Ressourcen oder Netzwerken an.

  • Autorisierungsregeln: Eine Autorisierungsregel beschränkt die Benutzer, die auf ein Netzwerk zugreifen können. Für ein bestimmtes Netzwerk konfigurieren Sie die Active Directory- oder Identitätsanbieter (IdP)-Gruppe, die Zugriff hat. Nur Benutzer, die dieser Gruppe angehören, können auf das angegebene Netzwerk zugreifen. Standardmäßig gibt es keine Autorisierungsregeln und Sie müssen Autorisierungsregeln konfigurieren, um Benutzern den Zugriff auf Ressourcen und Netzwerke zu ermöglichen.

  • Client: Der Endbenutzer, der sich mit dem Client VPN-Endpunkt verbindet, um eine VPN-Sitzung herzustellen. Endbenutzer müssen einen OpenVPN-Client herunterladen und die von Ihnen erstellte Client VPN-Konfigurationsdatei verwenden, um eine VPN-Sitzung herzustellen.

  • Client CIDR-Bereich: Ein IP-Adressbereich, aus dem Client-IP-Adressen zugewiesen werden. Jede Verbindung mit dem Client VPN-Endpunkt erhält eine eindeutige IP-Adresse aus dem Client CIDR-Bereich. Sie wählen den Client CIDR-Bereich, z. B. 10.2.0.0/16.

  • Client VPN-Ports: AWS Client VPN unterstützt die Ports 443 und 1194 sowohl für TCP als auch für UDP. Standardmäßig ist Port 443.

  • Client VPN-Netzwerkschnittstellen: Wenn Sie ein Subnetz mit Ihrem Client VPN-Endpunkt verknüpfen, erstellen wir Client VPN-Netzwerkschnittstellen in diesem Subnetz. Der Verkehr, der vom Client VPN-Endpunkt zum VPC gesendet wird, wird über eine Client VPN-Netzwerkschnittstelle gesendet. Anschließend wird eine Quellnetzwerkadressübersetzung (SNAT) angewendet, bei der die Quell-IP-Adresse aus dem Client CIDR-Bereich in die IP-Adresse der Client VPN-Netzwerkschnittstelle übersetzt wird.

  • Verbindungsprotokollierung: Sie können die Verbindungsprotokollierung für Ihren Client VPN-Endpunkt aktivieren, um Verbindungsereignisse zu protokollieren. Sie können diese Informationen verwenden, um Forensik durchzuführen, zu analysieren, wie Ihr Client VPN-Endpunkt verwendet wird, oder Verbindungsprobleme zu debuggen.

  • Self-Service-Portal: Sie können ein Self-Service-Portal für Ihren Client VPN-Endpunkt aktivieren. Clients können sich über das webbasierte Portal mit ihren Anmeldedaten anmelden und die neueste Version der Client VPN-Endpunkt-Konfigurationsdatei oder die neueste Version des von AWS bereitgestellten Clients herunterladen.

Einschränkungen

  • Client CIDR-Bereiche dürfen nicht mit dem lokalen CIDR des VPC, in dem sich das zugehörige Subnetz befindet, oder mit manuell hinzugefügten Routen in der Routentabelle des Client VPN-Endpunkts überlappen.

  • Client CIDR-Bereiche müssen eine Blockgröße von mindestens /22 haben und dürfen nicht größer als /12 sein.

  • Ein Teil der Adressen im Client CIDR-Bereich wird verwendet, um das Verfügbarkeitsmodell des Client VPN-Endpunkts zu unterstützen und kann nicht an Clients zugewiesen werden. Daher empfehlen wir, dass Sie einen CIDR-Block zuweisen, der die doppelte Anzahl von IP-Adressen enthält, die erforderlich sind, um die maximale Anzahl von gleichzeitigen Verbindungen zu ermöglichen, die Sie auf dem Client VPN-Endpunkt unterstützen möchten.

  • Der Client CIDR-Bereich kann nach der Erstellung des Client VPN-Endpunkts nicht geändert werden.

  • Die Subnetze, die mit einem Client VPN-Endpunkt verknüpft sind, müssen sich im selben VPC befinden.

  • Sie können nicht mehrere Subnetze aus derselben Verfügbarkeitszone mit einem Client VPN-Endpunkt verknüpfen.

  • Ein Client VPN-Endpunkt unterstützt keine Subnetzverknüpfungen in einem VPC mit dedizierter Tenancy.

  • Client VPN unterstützt nur IPv4-Verkehr.

  • Client VPN ist nicht Federal Information Processing Standards (FIPS) konform.

  • Wenn die Multi-Faktor-Authentifizierung (MFA) für Ihr Active Directory deaktiviert ist, kann ein Benutzerpasswort nicht im folgenden Format vorliegen.

SCRV1:<base64_encoded_string>:<base64_encoded_string>
  • Das Self-Service-Portal ist nicht verfügbar für Clients, die sich über die gegenseitige Authentifizierung authentifizieren.

Last updated