AWS - VPC & Networking Basic Information
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ein VPC enthält ein Netzwerk CIDR wie 10.0.0.0/16 (mit seiner Routing-Tabelle und Netzwerk-ACL).
Dieses VPC-Netzwerk ist in Subnetze unterteilt, sodass ein Subnetz direkt mit dem VPC, der Routing-Tabelle und der Netzwerk-ACL verbunden ist.
Dann sind Netzwerkschnittstellen, die an Dienste (wie EC2-Instanzen) angeschlossen sind, mit den Subnetzen über Sicherheitsgruppen verbunden.
Daher wird eine Sicherheitsgruppe die exponierten Ports der Netzwerk schnittstellen, die sie verwenden, unabhängig vom Subnetz einschränken. Und eine Netzwerk-ACL wird die exponierten Ports für das gesamte Netzwerk einschränken.
Darüber hinaus gibt es einige interessante Konfigurationen zu überprüfen, um auf das Internet zuzugreifen:
Ein Subnetz kann automatisch öffentliche IPv4-Adressen zuweisen
Eine Instanz, die im Netzwerk erstellt wird, das IPv4-Adressen automatisch zuweist, kann eine erhalten
Ein Internet-Gateway muss an das VPC angeschlossen werden
Sie könnten auch Egress-only Internet-Gateways verwenden
Sie könnten auch ein NAT-Gateway in einem privaten Subnetz haben, sodass es möglich ist, von diesem privaten Subnetz aus auf externe Dienste zuzugreifen, aber es ist nicht möglich, sie von außen zu erreichen.
Das NAT-Gateway kann öffentlich (Zugriff auf das Internet) oder privat (Zugriff auf andere VPCs) sein.
Amazon Virtual Private Cloud (Amazon VPC) ermöglicht es Ihnen, AWS-Ressourcen in ein virtuelles Netzwerk zu starten, das Sie definiert haben. Dieses virtuelle Netzwerk wird mehrere Subnetze, Internet-Gateways zum Zugriff auf das Internet, ACLs, Sicherheitsgruppen, IPs...
Subnetze helfen, ein höheres Maß an Sicherheit durchzusetzen. Logische Gruppierung ähnlicher Ressourcen hilft Ihnen auch, eine einfache Verwaltung über Ihre Infrastruktur aufrechtzuerhalten.
Gültige CIDR sind von einer /16-Netzmaske bis zu einer /28-Netzmaske.
Ein Subnetz kann nicht gleichzeitig in verschiedenen Verfügbarkeitszonen sein.
AWS reserviert die ersten drei Host-IP-Adressen jedes Subnetzes für interne AWS-Nutzung: Die erste Hostadresse wird für den VPC-Router verwendet. Die zweite Adresse ist für AWS DNS reserviert und die dritte Adresse ist für zukünftige Verwendung reserviert.
Es wird als öffentliche Subnetze bezeichnet, die direkten Zugang zum Internet haben, während private Subnetze dies nicht tun.
Routing-Tabellen bestimmen die Verkehrslenkung für ein Subnetz innerhalb eines VPC. Sie bestimmen, welcher Netzwerkverkehr ins Internet oder zu einer VPN-Verbindung weitergeleitet wird. Sie finden normalerweise den Zugang zu:
Lokales VPC
NAT
Internet-Gateways / Egress-only Internet-Gateways (notwendig, um einem VPC Zugang zum Internet zu geben).
Um ein Subnetz öffentlich zu machen, müssen Sie ein Internet-Gateway erstellen und an Ihr VPC anhängen.
VPC-Endpunkte (um von privaten Netzwerken auf S3 zuzugreifen)
In den folgenden Bildern können Sie die Unterschiede zwischen einem standardmäßigen öffentlichen Netzwerk und einem privaten Netzwerk überprüfen:
Netzwerkzugriffskontrolllisten (ACLs): Netzwerk-ACLs sind Firewall-Regeln, die den eingehenden und ausgehenden Netzwerkverkehr zu einem Subnetz steuern. Sie können verwendet werden, um den Verkehr zu bestimmten IP-Adressen oder -Bereichen zuzulassen oder abzulehnen.
Es ist am häufigsten, den Zugriff mit Sicherheitsgruppen zu erlauben/zu verweigern, aber dies ist der einzige Weg, um bereits etablierte Reverse-Shells vollständig zu unterbrechen. Eine geänderte Regel in einer Sicherheitsgruppe stoppt keine bereits etablierten Verbindungen.
Dies gilt jedoch für das gesamte Subnetz, seien Sie vorsichtig, wenn Sie Dinge verbieten, da die benötigte Funktionalität gestört werden könnte.
Sicherheitsgruppen sind eine virtuelle Firewall, die den eingehenden und ausgehenden Netzwerk verkehr zu Instanzen in einem VPC steuert. Beziehung 1 SG zu M Instanzen (normalerweise 1 zu 1). Normalerweise wird dies verwendet, um gefährliche Ports in Instanzen zu öffnen, wie zum Beispiel Port 22:
Eine Elastische IP-Adresse ist eine statische IPv4-Adresse, die für dynamisches Cloud-Computing konzipiert ist. 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 umschalten.
Standardmäßig haben alle Subnetze die automatische Zuweisung öffentlicher IP-Adressen deaktiviert, aber sie kann aktiviert werden.
Eine lokale Route innerhalb einer Routing-Tabelle 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 die Verbindung direkt 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 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 Konnektivität zwischen den VPCs wird über die bestehende AWS-Netzwerkinfrastruktur implementiert, und ist daher hochverfügbar ohne Bandbreitenengpass. 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, dann können Sie die VPCs nicht miteinander peeren. Jede AWS VPC wird nur mit ihrem Peer kommunizieren. Zum Beispiel, wenn Sie eine Peering-Verbindung zwischen VPC 1 und VPC 2 haben und eine andere Verbindung zwischen VPC 2 und VPC 3, wie gezeigt, dann könnten 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 durch eine VPC routen, um zu einer anderen zu gelangen.
Innerhalb Ihres VPC könnten Sie potenziell Hunderte oder sogar Tausende von Ressourcen haben, die alle 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-Verkehrsinformationen zu erfassen, die zwischen den Netzwerkschnittstellen Ihrer Ressourcen innerhalb Ihres VPC fließen.
Im Gegensatz zu S3-Zugriffsprotokollen und CloudFront-Zugriffsprotokollen werden die Protokolldaten, die von VPC Flow Logs generiert werden, nicht in S3 gespeichert. Stattdessen werden die erfassten Protokolldaten an CloudWatch-Protokolle gesendet.
Einschränkungen:
Wenn Sie eine VPC-Peering-Verbindung betreiben, können Sie nur die Flow-Logs der gepeerten VPCs sehen, die sich im selben Konto befinden.
Wenn Sie weiterhin Ressourcen in der EC2-Classic-Umgebung betreiben, können Sie leider keine Informationen von deren Schnittstellen abrufen.
Sobald ein VPC Flow Log erstellt wurde, kann es nicht mehr geändert werden. Um die Konfiguration des VPC Flow Logs zu ändern, müssen Sie es löschen und dann ein neues erstellen.
Der folgende Verkehr wird nicht überwacht und von den Protokollen erfasst. DHCP-Verkehr innerhalb des VPC, Verkehr von Instanzen, der für den Amazon DNS-Server bestimmt ist.
Jeglicher Verkehr, der an die IP-Adresse des VPC-Standardrouters gerichtet ist, und Verkehr zu und von den folgenden Adressen, 169.254.169.254, die zur Erfassung von Instanzmetadaten verwendet wird, und 169.254.169.123, die für den Amazon Time Sync Service verwendet wird.
Verkehr, der sich auf eine Amazon Windows-Aktivierungs Lizenz von einer Windows-Instanz bezieht.
Verkehr zwischen einer Netzwerk-Load-Balancer-Schnittstelle und einer Endpunkt-Netzwerkschnittstelle.
Für jede Netzwerkschnittstelle, die Daten an die CloudWatch-Protokollgruppe veröffentlicht, wird ein anderer Protokollstream verwendet. Und innerhalb jedes dieser Streams gibt es die Flow-Log-Ereignisdaten, die den Inhalt der Protokolleinträge zeigen. Jedes dieser Protokolle erfasst Daten während eines Zeitfensters von ungefähr 10 bis 15 Minuten.
Kundengateway:
Ein Kundengateway ist eine Ressource, die Sie in AWS erstellen, um Ihre Seite einer VPN-Verbindung darzustellen.
Es ist im Wesentlichen ein physisches Gerät oder eine Softwareanwendung auf Ihrer Seite der Site-to-Site-VPN-Verbindung.
Sie geben Routinginformationen und die öffentliche IP-Adresse Ihres Netzwerkgeräts (wie einen Router oder eine Firewall) an AWS an, um ein Kundengateway zu erstellen.
Es dient als Referenzpunkt für die Einrichtung der VPN-Verbindung und verursacht keine zusätzlichen Kosten.
Virtuelles privates Gateway:
Ein virtuelles privates Gateway (VPG) ist der VPN-Konzentrator auf der Amazon-Seite der Site-to-Site-VPN-Verbindung.
Es ist an Ihr VPC angeschlossen und dient als Ziel für Ihre VPN-Verbindung.
VPG ist der AWS-Seitenendpunkt für die VPN-Verbindung.
Es verwaltet die sichere Kommunikation zwischen Ihrem VPC und Ihrem lokalen Netzwerk.
Site-to-Site-VPN-Verbindung:
Eine Site-to-Site-VPN-Verbindung verbindet Ihr lokales Netzwerk mit einem VPC über einen sicheren IPsec-VPN-Tunnel.
Diese Art von Verbindung erfordert ein Kundengateway und ein virtuelles privates Gateway.
Es wird für sichere, stabile und konsistente Kommunikation zwischen Ihrem Rechenzentrum oder Netzwerk und Ihrer AWS-Umgebung verwendet.
Typischerweise für regelmäßige, langfristige Verbindungen verwendet und wird basierend auf der Menge der über die Verbindung übertragenen Daten abgerechnet.
Client-VPN-Endpunkt:
Ein Client-VPN-Endpunkt ist eine Ressource, die Sie in AWS erstellen, um Client-VPN-Sitzungen zu aktivieren und zu verwalten.
Es wird verwendet, um einzelnen Geräten (wie Laptops, Smartphones usw.) eine sichere Verbindung zu AWS-Ressourcen oder Ihrem lokalen Netzwerk zu ermöglichen.
Es unterscheidet sich von Site-to-Site-VPN, da 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.
Verbinden Sie Ihr lokales Netzwerk mit Ihrem VPC.
VPN-Verbindung: Eine sichere Verbindung zwischen Ihrer lokalen Ausrüstung und Ihren VPCs.
VPN-Tunnel: Ein verschlüsselter Link, über den Daten vom Kundennetzwerk zu oder von AWS übertragen werden können.
Jede VPN-Verbindung umfasst zwei VPN-Tunnel, die Sie gleichzeitig für hohe Verfügbarkeit nutzen können.
Kundengateway: Eine AWS-Ressource, die Informationen über Ihr Kundengateway-Gerät an AWS 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 verwendet werden kann, um Ihre VPCs und lokalen Netzwerke miteinander zu verbinden. Sie verwenden ein Transit-Gateway oder ein virtuelles privates Gateway als Gateway für die Amazon-Seite der Site-to-Site-VPN-Verbindung.
IPv6-Verkehr wird für VPN-Verbindungen auf einem virtuellen privaten Gateway nicht unterstützt.
Eine AWS-VPN-Verbindung unterstützt kein Path MTU Discovery.
Darüber hinaus sollten Sie Folgendes berücksichtigen, wenn Sie Site-to-Site-VPN verwenden.
Wenn Sie Ihre VPCs mit einem gemeinsamen lokalen Netzwerk verbinden, empfehlen wir, nicht überlappende CIDR-Blöcke für Ihre Netzwerke zu verwenden.
Verbinden Sie sich von Ihrem Computer mit Ihrem VPC
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. Das Verknüpfen eines Subnetzes mit einem Client-VPN-Endpunkt ermöglicht es Ihnen, VPN-Sitzungen einzurichten. 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 zu einer anderen Verfügbarkeitszone gehören.
Route: Jeder Client-VPN-Endpunkt hat eine Routing-Tabelle, die die verfügbaren Zielnetzwerk-Routen beschreibt. Jede Route in der Routing-Tabelle 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 den Zugriff erlaubt. Nur Benutzer, die zu dieser Gruppe gehö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 einzurichten. Endbenutzer müssen einen OpenVPN-Client herunterladen und die von Ihnen erstellte Client-VPN-Konfigurationsdatei verwenden, um eine VPN-Sitzung einzurichten.
Client-CIDR-Bereich: Ein IP-Adressbereich, aus dem Client-IP-Adressen zugewiesen werden. Jede Verbindung zum Client-VPN-Endpunkt erhält eine eindeutige IP-Adresse aus dem Client-CIDR-Bereich. Sie wählen den Client-CIDR-Bereich, zum Beispiel 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. Der Standardport ist 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 an das VPC gesendet wird, wird über eine Client-VPN-Netzwerkschnittstelle gesendet. Die Quellnetzwerkadressübersetzung (SNAT) wird dann angewendet, wobei 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 forensische Analysen 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 mit ihren Anmeldeinformationen in das webbasierte Portal einloggen und die neueste Version der Client-VPN-Endpunkt-Konfigurationsdatei oder die neueste Version des von AWS bereitgestellten Clients herunterladen.
Client-CIDR-Bereiche dürfen nicht mit dem lokalen CIDR des VPC, in dem sich das zugeordnete Subnetz befindet, oder mit Routen, die manuell zur Routing-Tabelle des Client-VPN-Endpunkts hinzugefügt wurden, ü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 doppelt so viele IP-Adressen enthält, wie erforderlich sind, um die maximale Anzahl gleichzeitiger Verbindungen zu ermöglichen, die Sie auf dem Client-VPN-Endpunkt unterstützen möchten.
Der Client-CIDR-Bereich kann nicht geändert werden, nachdem Sie den Client-VPN-Endpunkt erstellt haben.
Die Subnetze, die mit einem Client-VPN-Endpunkt verknüpft sind, müssen im selben VPC sein.
Sie können keine mehreren Subnetze aus derselben Verfügbarkeitszone mit einem Client-VPN-Endpunkt verknüpfen.
Ein Client-VPN-Endpunkt unterstützt keine Subnetzverknüpfungen in einem dedizierten Tenancy-VPC.
Client-VPN unterstützt nur IPv4-Verkehr.
Client-VPN ist nicht konform mit den Federal Information Processing Standards (FIPS).
Wenn die Multi-Faktor-Authentifizierung (MFA) für Ihr Active Directory deaktiviert ist, kann ein Benutzerpasswort nicht im folgenden Format vorliegen.
Das Self-Service-Portal ist nicht verfügbar für Clients, die sich mit gegenseitiger Authentifizierung authentifizieren.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)