Lab 04 : Connection de VPN
Objectifs
Section intitulée « Objectifs »Découvrir comment utiliser le service VPN de Cloud OUTSCALE afin d’établir une connexion sécurisée entre votre réseau d’entreprise et l’un de vos Virtual Private Clouds (VPC) dans le Cloud OUTSCALE.
Généralité
Section intitulée « Généralité »Une connexion VPN se compose des éléments suivants :
- Une customer gateway, de votre côté de la connexion. Cette ressource se situe dans votre réseau d’entreprise, et peut être logicielle ou matérielle.
- Une virtual private gateway, du côté 3DS OUTSCALE de la connexion. Cette ressource est attachée à l’un de vos VPC.
- Un tunnel VPN, qui relie la customer gateway et la virtual private gateway de manière sécurisée à travers le réseau internet.

Le protocole de chiffrement du tunnel VPN est l’Internet Protocol security (IPsec).
Une fois la connexion VPN créée, le tunnel VPN devient actif dès que du trafic est généré depuis votre côté de la connexion. C’est donc à partir de votre customer gateway que s’établit le tunnel, et non de la virtual private gateway.
Pour assurer redondance et haute disponibilité, vous pouvez créer plusieurs connexions VPN entre votre réseau et un même VPC.
Connexion VPN
Section intitulée « Connexion VPN »Déploiement d’une instance dans le cloud publique
Section intitulée « Déploiement d’une instance dans le cloud publique »Afin de pouvoir tester le service connexion VPN fournie par 3DS OUTSCALE on va commencer par créer une instance de VM dans le cloud publique.
- Connectez-vous sur le Dashboard cockpit d’OUTSCALE
- Provisionner une VM avec les paramètres suivants :
- Nom
vm-vpn - OMI : Ubuntu 22.04
ami-cd8d714e - Subnet : Laisser cocher
cloud public - Security group : Créer un SG autorisant le ping et les connections SSH depuis toutes les IP,
- Type :
tinav4.c1r1p2 - Keypair : créez une nouvelle keypair pour cette VM ou utilisez celle des labs précédents.
- Nom
Notez l’adesse IP Publique de la VM une fois celle-ci créée et démarée.

Création d’une client gateway
Section intitulée « Création d’une client gateway »- Cliquez sur
VPN > Client Gateways. - Cliquez sur
Créer, la boîte de dialogueCRÉER UNE Client Gatewayapparaît.- Donnez lui un nom, par exemple
lab4-gateway - Dans le champ
BGP ASN, l’Autonomous System Number (ASN) renseignez la valuer adéquat pour votre customer gateway. Celle-ci doit être comprise entre 1 et 4294967295. Tapez la valeur65000par exemple. - Dans le champ
Adresse IP, tapez l’IP statique de la ressource que vous voulez utiliser comme client gateway. Vous devez utiliser une adresse IPv4. Mettez l’IP publique de votre machine créée auparavant.
- Donnez lui un nom, par exemple
- Cliquez sur
Créerpour valider. - La client gateway est créée et apparaît sur la page.

Création d’une Virtual Gateway et attachement au VPC
Section intitulée « Création d’une Virtual Gateway et attachement au VPC »-
Cliquez sur
VPN > Virtual Gateways. -
Cliquez sur
Créer. La boîte de dialogueCRÉER UNE VIRTUAL GATEWAYapparaît.- Donnez un nom à votre
Virtual Gateway, par exemplelab04-VG
- Donnez un nom à votre
-
Cliquez sur
Créerpour valider. -
La virtual gateway est créée et apparaît sur la page.

-
Sélectionnez la virtual gateway que vous venez de créer en cochant la case associée.
-
La virtual gateway est sélectionnée.
-
Cliquez sur
Attacher. La boîte de dialogueATTACHER VGW-XXXXXXXXapparaît. -
Dans la liste VPC, sélectionnez l’ID du VPC du lab02.
-
Cliquez sur
Attacherpour valider. -
La virtual gateway est attachée au VPC spécifié.
Création d’une connexion VPN
Section intitulée « Création d’une connexion VPN »-
Cliquez sur
VPN > Connexions VPN. -
Cliquez sur
Créer. La boîte de dialogueCRÉER UNE CONNEXION VPNapparaît. -
Sélectionnez les informations suivantes :
- Dans la liste
Customer gateway, sélectionnez l’ID de la customer gateway que vous avez créé précédemment (lab4-gateway). - Dans la liste
Virtual private gateway, sélectionnez l’ID de la virtual private gateway que vous avez créé auparavant (lab04-VG). - Dans la liste
Routage, selectionnez le type de routage que vous voulez utiliser. SélectionnezStatique
- Dans la liste
-
Cliquez sur
Créerpour valider. -
La connexion VPN est créée.

-
Téléchargez les informations de configuration au format
XMLqu’on va utiliser dans la suite de cet atelier. Pour cela, sélectionnez la connexion VPN et cliquez surConfiguration. -
Visualisez le détail de cette connexion VPN, vous allez constater qu’elle comporte un tunnel. Pour le moment, il est en état
DOWN. Profitez-en pour noter l’adresse IP publique (Outside IP).
Configuration d’un client VPN
Section intitulée « Configuration d’un client VPN »Pour tester la connexion VPN, on va installer un client VPN sur la VM créé au début de ce TP, et plus
précisément strongswan qui est une implémentation IPSec open source. La plupart
des distributions Linux incluent strongswan ou facilitent son installation.
-
Connetez vous à votre VM placé dans le cloud public:
Terminal window ssh -i /path/to/keypair outscale@<IP_PUBLIC_VM> -
Une fois connecté à la VM, installons
strongswan:Terminal window sudo -iapt updateapt install -y strongswan -
Récupérez le
CIDRde votre réseau avec la commande suivante :Terminal window ip rCette commande renvoie par exemple
Terminal window default via 10.8.48.3 dev eth0 proto dhcp src 10.8.48.121 metric 10010.8.48.0/24 dev eth0 proto kernel scope link src 10.8.48.121 metric 100Donc le CIDR de notre réseau client est
10.8.48.0/24. Notez cette valeur. -
Créez un fichier de configuration
/etc/ipsec.confpour le client VPN sur la VM abvec le contenu suivant et éditez les détails de la connexion VPN avec l’IP publique de tunnel VPN, dans notre cas, c’est142.44.57.55Terminal window # ipsec.conf - strongSwan IPsec configuration file# Basic configurationconfig setup# strictcrlpolicy=yes# uniqueids = no# VPN connection definitionconn testauto=startleft=10.8.48.121leftid=171.33.101.48 # l'adresse IP publique de l'instanceright=142.44.57.55. # l'adresse IP publique de la connexion VPN créée plus hautleftsubnet=0.0.0.0/0rightsubnet=0.0.0.0/0ike=aes256-sha256-modp2048keyexchange=ikev2authby=pskikelifetime=28800sesp=aes256-sha256-modp2048keylife=3600stype=tunnelmobike=nocompress=noinstallpolicy=nomark=42dpddelay=30sdpdtimeout=90sdpdaction=restart -
Affichez le fichier de configuration
.xmlde votre VPN téléchargé précédemment et récupérez la clé partagée (PSK). Par exemple :Terminal window <pre_shared_key>sfIEAe3J2kQhKNfefqhcw8sn9s</pre_shared_key> -
Créer le fichier
/etc/ipsec.secretsavec le contenu suivant :Terminal window 142.44.57.55 : PSK "sfIEAe3J2kQhKNfefqhcw8sn9s"Avec :
142.44.57.55: l’adresse IP du tunnel VPNsfIEAe3J2kQhKNfefqhcw8sn9s: la clé PSK contenu dans le fichier de config
-
Vérifiez votre configuration IPSEC
Terminal window systemctl enable strongswan --now -
Vérifez le status du client VPN strongswan en lancant la commande
ipsec statusall, une sortie similaire à celle-ci doit apparaite:Terminal window ipsec statusallStatus of IKE charon daemon (strongSwan 5.9.5, Linux 5.15.0-60-generic, x86_64):uptime: 4 minutes, since Dec 06 13:08:12 2024malloc: sbrk 2179072, mmap 0, used 1362240, free 816832worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 4loaded plugins: charon aesni aes rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark stroke vici updown eap-mschapv2 xauth-generic countersListening IP addresses:10.8.48.121Connections:test: 10.8.48.121...142.44.57.55 IKEv2, dpddelay=30stest: local: [171.33.101.48] uses pre-shared key authenticationtest: remote: [142.44.57.55] uses pre-shared key authenticationtest: child: 0.0.0.0/0 === 0.0.0.0/0 TUNNEL, dpdaction=restartSecurity Associations (1 up, 0 connecting):test[1]: ESTABLISHED 4 minutes ago, 10.8.48.121[171.33.101.48]...142.44.57.55[142.44.57.55]test[1]: IKEv2 SPIs: 0f835e441fe6ec05_i* 9ac6268b63e98373_r, pre-shared key reauthentication in 7 hourstest[1]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_521test{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c8e1d69b_i cc18b4fb_otest{1}: AES_CBC_256/HMAC_SHA2_256_128, 1680 bytes_i, 0 bytes_o, rekeying in 44 minutestest{1}: 0.0.0.0/0 === 0.0.0.0/0 -
Si la connexion test est UP alors, vous avez réussi !
Validation du lab
Section intitulée « Validation du lab »- Dans cockpit, si vous visualisez à nouveau les détails de la connexion, vous devriez avoir le tunnel à l’état
UP

Challenge : Mise en place du routage
Section intitulée « Challenge : Mise en place du routage »-
Editez la route table
myrtassociée au subnetmysubnetet ajoutez les routes suivantes :- Cible : ID de la virtual private gateway, Destination : CIDR de votre réseau interne (entreprise)
10.0.0.0/16 - Cible : local, destination : CIDR VPC
172.31.0.0/16
- Cible : ID de la virtual private gateway, Destination : CIDR de votre réseau interne (entreprise)
-
Editez la security group
mysgassociée à la VMmyvm, ajoutez la règle SSH sur le CIDR interne (entreprise)10.0.0.0/16 -
Editez la connexion VPN et sous la table
Route VPNajoutez la route suivante :- Bloc CIDR de destination :
10.8.67.0/24(remplacez par le CIDR interne de votre entreprise), source :static
- Bloc CIDR de destination :
-
Testez le ping de votre machine
vm-vpnvers la VM déployée dans le VPC. -
Connectez-vous en SSH depuis la VM
vm-vpnvers la VMmyvmen utilisant la keypair et l’IP privée.