# AWS - VPC & Informations de base sur le réseau

{{#include ../../../../banners/hacktricks-training.md}}

## Réseau AWS en un coup d'œil

Un **VPC** contient un **CIDR de réseau** comme 10.0.0.0/16 (avec sa **table de routage** et **ACL de réseau**).

Ce réseau VPC est divisé en **sous-réseaux**, donc un **sous-réseau** est directement **lié** au **VPC**, à la **table de routage** et à l'**ACL de réseau**.

Ensuite, les **interfaces réseau** attachées aux services (comme les instances EC2) sont **connectées** aux **sous-réseaux** avec des **groupes de sécurité**.

Par conséquent, un **groupe de sécurité** limitera les ports exposés des **interfaces réseau qui l'utilisent**, **indépendamment du sous-réseau**. Et une **ACL de réseau** **limitera** les ports exposés à **l'ensemble du réseau**.

De plus, pour **accéder à Internet**, il y a certaines configurations intéressantes à vérifier :

- Un **sous-réseau** peut **attribuer automatiquement des adresses IPv4 publiques**
- Une **instance** créée dans le réseau qui **attribue automatiquement des adresses IPv4 peut en obtenir une**
- Une **passerelle Internet** doit être **attachée** au **VPC**
- Vous pouvez également utiliser des **passerelles Internet uniquement sortantes**
- Vous pouvez également avoir une **passerelle NAT** dans un **sous-réseau privé** afin qu'il soit possible de **se connecter à des services externes** depuis ce sous-réseau privé, mais il **n'est pas possible de les atteindre depuis l'extérieur**.
- La passerelle NAT peut être **publique** (accès à Internet) ou **privée** (accès à d'autres VPC)

![](<../../../../images/image (274).png>)

## VPC

Amazon **Virtual Private Cloud** (Amazon VPC) vous permet de **lancer des ressources AWS dans un réseau virtuel** que vous avez défini. Ce réseau virtuel aura plusieurs sous-réseaux, des passerelles Internet pour accéder à Internet, des ACL, des groupes de sécurité, des IP...

### Sous-réseaux

Les sous-réseaux aident à renforcer un niveau de sécurité plus élevé. **Le regroupement logique de ressources similaires** vous aide également à maintenir une **facilité de gestion** à travers votre infrastructure.

- Les CIDR valides vont d'un masque de réseau /16 à un masque de réseau /28.
- Un sous-réseau ne peut pas être dans différentes zones de disponibilité en même temps.
- **AWS réserve les trois premières adresses IP hôtes** de chaque sous-réseau **pour** **l'utilisation interne d'AWS** : la première adresse hôte utilisée est pour le routeur VPC. La deuxième adresse est réservée pour le DNS AWS et la troisième adresse est réservée pour un usage futur.
- On appelle **sous-réseaux publics** ceux qui ont **un accès direct à Internet, tandis que les sous-réseaux privés n'en ont pas.**

<figure><img src="https://lh5.googleusercontent.com/N_WTrTrDAHwN61FMKJvLSHVua2EM0IazHH1fSTg8JQfTChm-dLN9mn7wkjz2MlpD-uOUqtWdMZpqKOp4VxaHy5-5X66GD1K8y1UGc27r-GbHdFty9ImpXdcjEsC7u4vjxKme_B_HwDOUnG6camxENYECTw=s2048" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh3.googleusercontent.com/MmjfVzGmV4jM7tO8lVoTKONoeqbq6E40DGeKUoo4kN-lmMDKnEiGNB-gGVx3EvjK9UV844im225CA8aAjomHf1Modt3MramHrHZdEGbeSZncWhVuT9R8f7tQZ2pXjdSJxeNfErmJ-0mmcUaV6dcU0TAd2A=s2048" alt=""><figcaption></figcaption></figure>

### Tables de routage

Les tables de routage déterminent le routage du trafic pour un sous-réseau au sein d'un VPC. Elles déterminent quel trafic réseau est redirigé vers Internet ou vers une connexion VPN. Vous trouverez généralement l'accès à :

- VPC local
- NAT
- Passerelles Internet / Passerelles Internet uniquement sortantes (nécessaires pour donner accès à Internet à un VPC).
- Pour rendre un sous-réseau public, vous devez **créer** et **attacher** une **passerelle Internet** à votre VPC.
- Points de terminaison VPC (pour accéder à S3 depuis des réseaux privés)

Dans les images suivantes, vous pouvez vérifier les différences entre un réseau public par défaut et un réseau privé :

<figure><img src="https://lh3.googleusercontent.com/q4ASpcLAYqijdNMLhMLl8EoowDtTMU5I_7YCVfk7-5hxDyeQOik9ImHnD2SYy32XUA2qXjEbXTAxA1lP--znJASdhYOdBveDcrD42f9XBKZ3EmjJCazN3YPLC6oS0xtRMmfORuwCszmMt-KrAkH07_izwg=s2048" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh5.googleusercontent.com/30psylXAI0gRN6_LK-reP00aGIlMma64E1qafCVPunn6nS-y5jAO6Y2JiempKcf6-LFi7ScicYcOh7BbHEya2VWtksnFX_8SPXQf97tKkg2tNZzrArWbiDCCn2m2LP1QUq6MZ_KayH3yir7t8zpO7CEQOw=s2048" alt=""><figcaption></figcaption></figure>

### ACLs

**Listes de contrôle d'accès réseau (ACLs)** : Les ACL de réseau sont des règles de pare-feu qui contrôlent le trafic réseau entrant et sortant vers un sous-réseau. Elles peuvent être utilisées pour autoriser ou refuser le trafic vers des adresses IP spécifiques ou des plages.

- Il est plus fréquent d'autoriser/refuser l'accès en utilisant des groupes de sécurité, mais c'est le seul moyen de couper complètement les shells inversés établis. Une règle modifiée dans un groupe de sécurité ne stoppe pas les connexions déjà établies.
- Cependant, cela s'applique à l'ensemble du sous-réseau, soyez prudent lorsque vous interdisez des éléments car des fonctionnalités nécessaires pourraient être perturbées.

### Groupes de sécurité

Les groupes de sécurité sont un **pare-feu** virtuel qui contrôle le trafic réseau entrant et sortant vers des **instances** dans un VPC. Relation 1 SG à M instances (généralement 1 à 1).\
Cela est généralement utilisé pour ouvrir des ports dangereux dans les instances, comme le port 22 par exemple :

<figure><img src="https://lh5.googleusercontent.com/LliB7eb3cYfkEyOpyw1-eYgWsn2kq1yF6uRn5VYndvOuTvDlURimYx9UvuK8F2impTLmx50mid4MdTXE-Ljt2i_rxaIfnKUdji_hFjCdU9tdoW-axng9-W4tSL71gbbjrPQ7IYY5lAdH_G3UoMRMGGGOxQ=s2048" alt=""><figcaption></figcaption></figure>

### Adresses IP élastiques

Une _adresse IP élastique_ est une **adresse IPv4 statique** conçue pour le cloud computing dynamique. Une adresse IP élastique est allouée à votre compte AWS et vous appartient jusqu'à ce que vous la libériez. En utilisant une adresse IP élastique, vous pouvez masquer la défaillance d'une instance ou d'un logiciel en remappant rapidement l'adresse à une autre instance de votre compte.

### Connexion entre sous-réseaux

Par défaut, tous les sous-réseaux ont l'**attribution automatique d'adresses IP publiques désactivée**, mais cela peut être activé.

**Une route locale dans une table de routage permet la communication entre les sous-réseaux VPC.**

Si vous **connectez un sous-réseau avec un autre sous-réseau, vous ne pouvez pas accéder aux sous-réseaux connectés** avec l'autre sous-réseau, vous devez créer une connexion avec eux directement. **Cela s'applique également aux passerelles Internet**. Vous ne pouvez pas passer par une connexion de sous-réseau pour accéder à Internet, vous devez attribuer la passerelle Internet à votre sous-réseau.

### Peering VPC

Le peering VPC vous permet de **connecter deux ou plusieurs VPC ensemble**, en utilisant IPV4 ou IPV6, comme s'ils faisaient partie du même réseau.

Une fois la connectivité de pair établie, **les ressources dans un VPC peuvent accéder aux ressources dans l'autre**. La connectivité entre les VPC est mise en œuvre via l'infrastructure réseau AWS existante, et elle est donc hautement disponible sans goulet d'étranglement de bande passante. Comme **les connexions de pair fonctionnent comme si elles faisaient partie du même réseau**, il y a des restrictions concernant les plages de blocs CIDR que vous pouvez utiliser.\
Si vous avez des plages CIDR **chevauchantes ou dupliquées** pour votre VPC, alors **vous ne pourrez pas établir de peering entre les VPC**.\
Chaque VPC AWS **ne communiquera qu'avec son pair**. Par exemple, si vous avez une connexion de peering entre le VPC 1 et le VPC 2, et une autre connexion entre le VPC 2 et le VPC 3 comme montré, alors le VPC 1 et le VPC 2 pourraient communiquer directement entre eux, tout comme le VPC 2 et le VPC 3, cependant, le VPC 1 et le VPC 3 ne pourraient pas. **Vous ne pouvez pas router à travers un VPC pour accéder à un autre.**

### **Journaux de flux VPC**

Au sein de votre VPC, vous pourriez potentiellement avoir des centaines voire des milliers de ressources communiquant entre différents sous-réseaux, à la fois publics et privés, et également entre différents VPC via des connexions de peering VPC. **Les journaux de flux VPC vous permettent de capturer des informations sur le trafic IP qui circule entre vos interfaces réseau de vos ressources au sein de votre VPC**.

Contrairement aux journaux d'accès S3 et aux journaux d'accès CloudFront, les **données de journal générées par les journaux de flux VPC ne sont pas stockées dans S3. Au lieu de cela, les données de journal capturées sont envoyées aux journaux CloudWatch**.

Limitations :

- Si vous exécutez une connexion de peering VPC, alors vous ne pourrez voir que les journaux de flux des VPC de pair qui sont dans le même compte.
- Si vous exécutez encore des ressources dans l'environnement EC2-Classic, alors malheureusement vous ne pouvez pas récupérer d'informations de leurs interfaces.
- Une fois qu'un journal de flux VPC a été créé, il ne peut pas être modifié. Pour modifier la configuration du journal de flux VPC, vous devez le supprimer puis en recréer un nouveau.
- Le trafic suivant n'est pas surveillé et capturé par les journaux. Le trafic DHCP au sein du VPC, le trafic des instances destiné au serveur DNS Amazon.
- Tout trafic destiné à l'adresse IP du routeur par défaut du VPC et le trafic vers et depuis les adresses suivantes, 169.254.169.254 qui est utilisé pour rassembler les métadonnées des instances, et 169.254.169.123 qui est utilisé pour le service de synchronisation horaire Amazon.
- Trafic lié à une licence d'activation Windows d'une instance Windows.
- Trafic entre une interface de répartiteur de charge réseau et une interface de réseau de point de terminaison.

Pour chaque interface réseau qui publie des données dans le groupe de journaux CloudWatch, elle utilisera un flux de journal différent. Et dans chacun de ces flux, il y aura les données d'événement de journal de flux qui montrent le contenu des entrées de journal. Chacun de ces **journaux capture des données pendant une fenêtre d'environ 10 à 15 minutes**.

## VPN

### Composants de base du VPN AWS

1. **Passerelle client** :
- Une passerelle client est une ressource que vous créez dans AWS pour représenter votre côté d'une connexion VPN.
- C'est essentiellement un appareil physique ou une application logicielle de votre côté de la connexion VPN Site-à-Site.
- Vous fournissez des informations de routage et l'adresse IP publique de votre appareil réseau (comme un routeur ou un pare-feu) à AWS pour créer une passerelle client.
- Elle sert de point de référence pour établir la connexion VPN et n'entraîne pas de frais supplémentaires.
2. **Passerelle privée virtuelle** :
- Une passerelle privée virtuelle (VPG) est le concentrateur VPN du côté Amazon de la connexion VPN Site-à-Site.
- Elle est attachée à votre VPC et sert de cible pour votre connexion VPN.
- VPG est le point de terminaison du côté AWS pour la connexion VPN.
- Elle gère la communication sécurisée entre votre VPC et votre réseau sur site.
3. **Connexion VPN Site-à-Site** :
- Une connexion VPN Site-à-Site connecte votre réseau sur site à un VPC via un tunnel VPN IPsec sécurisé.
- Ce type de connexion nécessite une passerelle client et une passerelle privée virtuelle.
- Elle est utilisée pour une communication sécurisée, stable et cohérente entre votre centre de données ou réseau et votre environnement AWS.
- Typiquement utilisée pour des connexions régulières et à long terme et est facturée en fonction de la quantité de données transférées via la connexion.
4. **Point de terminaison VPN client** :
- Un point de terminaison VPN client est une ressource que vous créez dans AWS pour activer et gérer les sessions VPN client.
- Il est utilisé pour permettre à des appareils individuels (comme des ordinateurs portables, des smartphones, etc.) de se connecter de manière sécurisée aux ressources AWS ou à votre réseau sur site.
- Il diffère du VPN Site-à-Site en ce qu'il est conçu pour des clients individuels plutôt que de connecter des réseaux entiers.
- Avec le VPN client, chaque appareil client utilise un logiciel client VPN pour établir une connexion sécurisée.

### VPN Site-à-Site

**Connectez votre réseau sur site à votre VPC.**

- **Connexion VPN** : Une connexion sécurisée entre votre équipement sur site et vos VPC.
- **Tunnel VPN** : Un lien crypté où les données peuvent passer du réseau client vers AWS ou vice versa.

Chaque connexion VPN comprend deux tunnels VPN que vous pouvez utiliser simultanément pour une haute disponibilité.

- **Passerelle client** : Une ressource AWS qui fournit des informations à AWS sur votre appareil de passerelle client.
- **Appareil de passerelle client** : Un appareil physique ou une application logicielle de votre côté de la connexion VPN Site-à-Site.
- **Passerelle privée virtuelle** : Le concentrateur VPN du côté Amazon de la connexion VPN Site-à-Site. Vous utilisez une passerelle privée virtuelle ou une passerelle de transit comme passerelle pour le côté Amazon de la connexion VPN Site-à-Site.
- **Passerelle de transit** : Un hub de transit qui peut être utilisé pour interconnecter vos VPC et réseaux sur site. Vous utilisez une passerelle de transit ou une passerelle privée virtuelle comme passerelle pour le côté Amazon de la connexion VPN Site-à-Site.

#### Limitations

- Le trafic IPv6 n'est pas pris en charge pour les connexions VPN sur une passerelle privée virtuelle.
- Une connexion VPN AWS ne prend pas en charge la découverte de MTU de chemin.

De plus, prenez en compte les éléments suivants lorsque vous utilisez le VPN Site-à-Site.

- Lorsque vous connectez vos VPC à un réseau sur site commun, nous vous recommandons d'utiliser des blocs CIDR non chevauchants pour vos réseaux.

### VPN client <a href="#what-is-components" id="what-is-components"></a>

**Connectez-vous depuis votre machine à votre VPC**

#### Concepts

- **Point de terminaison VPN client :** La ressource que vous créez et configurez pour activer et gérer les sessions VPN client. C'est la ressource où toutes les sessions VPN client sont terminées.
- **Réseau cible :** Un réseau cible est le réseau que vous associez à un point de terminaison VPN client. **Un sous-réseau d'un VPC est un réseau cible**. L'association d'un sous-réseau avec un point de terminaison VPN client vous permet d'établir des sessions VPN. Vous pouvez associer plusieurs sous-réseaux à un point de terminaison VPN client pour une haute disponibilité. Tous les sous-réseaux doivent provenir du même VPC. Chaque sous-réseau doit appartenir à une zone de disponibilité différente.
- **Route** : Chaque point de terminaison VPN client a une table de routage qui décrit les routes réseau de destination disponibles. Chaque route dans la table de routage spécifie le chemin pour le trafic vers des ressources ou réseaux spécifiques.
- **Règles d'autorisation :** Une règle d'autorisation **restreint les utilisateurs qui peuvent accéder à un réseau**. Pour un réseau spécifié, vous configurez le groupe Active Directory ou fournisseur d'identité (IdP) qui est autorisé à accéder. Seuls les utilisateurs appartenant à ce groupe peuvent accéder au réseau spécifié. **Par défaut, il n'y a pas de règles d'autorisation** et vous devez configurer des règles d'autorisation pour permettre aux utilisateurs d'accéder aux ressources et réseaux.
- **Client :** L'utilisateur final se connectant au point de terminaison VPN client pour établir une session VPN. Les utilisateurs finaux doivent télécharger un client OpenVPN et utiliser le fichier de configuration du point de terminaison VPN client que vous avez créé pour établir une session VPN.
- **Plage CIDR client :** Une plage d'adresses IP à partir de laquelle attribuer des adresses IP client. Chaque connexion au point de terminaison VPN client se voit attribuer une adresse IP unique de la plage CIDR client. Vous choisissez la plage CIDR client, par exemple, `10.2.0.0/16`.
- **Ports VPN client :** AWS Client VPN prend en charge les ports 443 et 1194 pour TCP et UDP. Le port par défaut est le port 443.
- **Interfaces réseau VPN client :** Lorsque vous associez un sous-réseau à votre point de terminaison VPN client, nous créons des interfaces réseau VPN client dans ce sous-réseau. **Le trafic envoyé au VPC depuis le point de terminaison VPN client est envoyé via une interface réseau VPN client**. La traduction d'adresse réseau source (SNAT) est ensuite appliquée, où l'adresse IP source de la plage CIDR client est traduite en l'adresse IP de l'interface réseau VPN client.
- **Journalisation des connexions :** Vous pouvez activer la journalisation des connexions pour votre point de terminaison VPN client afin d'enregistrer les événements de connexion. Vous pouvez utiliser ces informations pour effectuer des analyses, analyser comment votre point de terminaison VPN client est utilisé ou déboguer des problèmes de connexion.
- **Portail en libre-service :** Vous pouvez activer un portail en libre-service pour votre point de terminaison VPN client. Les clients peuvent se connecter au portail web en utilisant leurs identifiants et télécharger la dernière version du fichier de configuration du point de terminaison VPN client, ou la dernière version du client fourni par AWS.

#### Limitations

- **Les plages CIDR client ne peuvent pas chevaucher le CIDR local** du VPC dans lequel se trouve le sous-réseau associé, ou toute route ajoutée manuellement à la table de routage du point de terminaison VPN client.
- Les plages CIDR client doivent avoir une taille de bloc d'au **moins /22** et ne doivent **pas être supérieures à /12.**
- Une **partie des adresses** dans la plage CIDR client est utilisée pour **supporter le modèle de disponibilité** du point de terminaison VPN client, et ne peut pas être attribuée aux clients. Par conséquent, nous vous recommandons d'**attribuer un bloc CIDR contenant deux fois le nombre d'adresses IP requises** pour permettre le maximum de connexions simultanées que vous prévoyez de prendre en charge sur le point de terminaison VPN client.
- La **plage CIDR client ne peut pas être changée** après la création du point de terminaison VPN client.
- Les **sous-réseaux** associés à un point de terminaison VPN client **doivent être dans le même VPC**.
- Vous **ne pouvez pas associer plusieurs sous-réseaux de la même zone de disponibilité à un point de terminaison VPN client**.
- Un point de terminaison VPN client **ne prend pas en charge les associations de sous-réseaux dans un VPC à occupation dédiée**.
- Le VPN client prend en charge **uniquement** le trafic IPv4.
- Le VPN client **n'est pas** conforme aux normes de traitement de l'information fédérales (**FIPS**).
- Si l'authentification multi-facteurs (MFA) est désactivée pour votre Active Directory, un mot de passe utilisateur ne peut pas être au format suivant.

```
SCRV1:<base64_encoded_string>:<base64_encoded_string>
```

- Le portail en libre-service **n'est pas disponible pour les clients qui s'authentifient en utilisant l'authentification mutuelle**.

{{#include ../../../../banners/hacktricks-training.md}}
