Création d'un serveur VPN
Créez un serveur VPN pour permettre aux clients d'Internet de se connecter au réseau VPC tout en maintenant une connectivité sécurisée.
Vous pouvez créer un serveur VPN en utilisant la console, le CLI ou l'API.
Avant de commencer
Avant de mettre à disposition un serveur VPN, remplissez les prérequis suivants dans l'ordre suivant :
-
Passez en revue la rubrique Remarques relatives à la planification des serveurs VPN.
-
Décidez du mode d'authentification du client VPN à utiliser : basé sur un certificat, ID utilisateur et code de passe, ou les deux. Pour plus d'informations, voir Configuration de l'authentification client à site.
-
Créez une instance de service Secrets Manager et gérez les certificats.
Il est recommandé de créer un certificat privé en gardant à l'esprit ces considérations.
-
Créer une autorisation IAM de service à service pour votre serveur VPN et IBM Cloud Secrets Manager.
-
Créez un VPC et au moins un sous-réseau dans votre VPC sélectionné.
Pour la haute disponibilité, créez un VPC et deux sous-réseaux dans deux zones différentes. Le serveur VPN réside dans les deux sous-réseaux.
Créer un serveur VPN dans la console
Pour créer un serveur VPN client-site dans la console :
-
Remplissez l'ensemble des prérequis de la section "Avant de commencer".
-
Depuis votre navigateur, ouvrez la console IBM Cloud et connectez-vous à votre compte.
-
Sélectionnez l'
Navigation, puis cliquez sur Infrastructure > Réseau > VPN.
-
Cliquez sur Créer dans l'angle supérieur droit de la page.
-
Dans la section Type de VPN, cliquez sur Serveurs client à site.
Section de type VPN La section Emplacements indique la région où le VPC est situé et où le serveur VPN sera approvisionné.
-
Dans la section Détails, indiquez les informations suivantes :
-
Nom du serveur VPN - Entrez un nom pour le serveur VPN, tel que
my-vpn-server
. -
Groupe de ressources - Sélectionnez un groupe de ressources pour le serveur VPN.
-
Tags- En option, ajoutez des tags pour organiser, suivre les coûts d'utilisation ou gérer l'accès à vos ressources.
-
Balises de gestion des accès-Si vous le souhaitez, ajoutez des balises de gestion des accès aux ressources pour faciliter l'organisation des relations de contrôle d'accès.
key:value
est le seul format pris en charge pour les étiquettes de gestion des accès. Pour plus d'informations, voir Contrôle de l'accès aux ressources à l'aide d'étiquettes. -
Cloud privé virtuel - Sélectionnez le VPC pour le serveur VPN.
-
Pool d'adresses IPv4 du client - Entrez une plage CIDR. Une adresse IP est attribuée au client pour sa session à partir de ce pool d'adresses.
Section des détails du VPN
-
-
Dans la section Sous-réseaux, indiquez les informations suivantes :
-
Sélectionnez un mode de serveur VPN :
- Mode haute disponibilité - Déploie le serveur VPN sur deux sous-réseaux dans des zones différentes. Convient aux solutions et déploiements multizones où l'accès au VPN par les clients est critique.
- Mode autonome - Déploie le serveur VPN dans un seul sous-réseau et une seule zone. Convient aux déploiements monozones où la résilience multizone n'est pas requise.
-
Indiquez le sous-réseau (mode autonome) ou les sous-réseaux (mode HA) pour votre VPC.
Section Sous-réseaux VPN
-
-
Dans la section Authentification, indiquez les informations suivantes :
-
Authentification du serveur VPN-Sélectionnez le certificat SSL du serveur dans Secrets Manager. Renseignez toutes les zones requises.
Section d'authentification du serveur VPN -
Modes d'authentification du client - Choisissez de configurer l'authentification de l'utilisateur à l'aide d'un certificat client, d'un ID utilisateur et d'un code d'accès, ou des deux.
-
Certificat client - Vous pouvez sélectionner un certificat client et configurer un ID utilisateur et un code d'accès pour une sécurité optimale. Un identifiant et un code d'accès constituent un niveau de sécurité supplémentaire qui nécessite des identifiants de connexion supplémentaires pour l'accès au compte.
En option, vous pouvez télécharger une liste de révocation de certificats (CRL) au format PEM. Après le téléchargement d'une CRL, le fichier PEM apparaît comme le nom du serveur VPN.
-
ID utilisateur et code d'accès-Configurez l'authentification ajoutée pour les utilisateurs du client VPN. Cette méthode d'authentification offre une couche de sécurité supplémentaire qui s'intègre à IBM Cloud IAM pour compléter l'authentification du client. Lorsque l'authentification est terminée, le système transmet le code au client openVPN pour qu'il s'authentifie.
Section d'authentification du client VPN -
-
-
Dans la section Groupes de sécurité, sélectionnez au moins un groupe de sécurité.
Pour configurer un ou plusieurs groupes de sécurité et leurs règles ou, en option, pour configurer des listes de contrôle d'accès (ACL) sur le sous-réseau où vous prévoyez de déployer le serveur VPN et d'autres sous-réseaux VPC qui communiquent via le tunnel VPN, voir Configuration des ACL à utiliser avec un serveur VPN.
Section Groupes de sécurité VPN Vous pouvez joindre des groupes de sécurité après la mise à disposition à partir de la page des détails du serveur VPN (onglet Groupes de sécurité).
-
Dans la section Additional configuration, indiquez les informations suivantes :
-
DNS server IP address - En option, indiquez une ou deux adresses IP de serveur DNS pour la résolution de noms de domaine.
-
Idle timeout session (seconds) - Si le serveur VPN n'a pas de trafic avant l'expiration de cet intervalle, il est automatiquement déconnecté. Cette valeur peut être comprise entre
0
et28800
secondes. La valeur par défaut est600
secondes. -
Protocole de transport - Sélectionnez l'un des protocoles suivants et entrez un port VPN valide (
1 - 65535
).- UDP est un protocole sans connexion qui vérifie les erreurs mais ignore les paquets erronés. Plus rapide que TCP.
- TCP est un protocole orienté connexion doté des fonctions de vérification et de correction des erreurs. Plus fiable que le protocole UDP.
-
Tunnel mode - Indiquez l'une des options suivantes :
-
Tunnel complet - Tout le trafic passe par l'interface VPN vers le tunnel VPN.
-
Tunnel fractionné - Le trafic privé passe par l'interface VPN vers le tunnel VPN, et le trafic public passe par l'interface LAN existante.
Section de configuration supplémentaire VPN
-
-
Création d'un serveur VPN à partir du CLI
Avant de commencer, configurez votre environnement d'interface de ligne de commande.
Pour créer un serveur VPN à partir de l'interface de gestion, entrez la commande suivante :
ibmcloud is vpn-server-create --subnets SUBNETS --client-ip-pool CLIENT_IP_POOL --cert CERT (--client-auth-methods certificate | username | certificate,username | username,certificate) [--client-ca CLIENT_CA] [--client-crl CLIENT_CRL] [--client-dns CLIENT_DNS] [--client-idle-timeout CLIENT_IDLE_TIMEOUT] [--enable-split-tunnel false | true] [--port PORT] [--protocol udp | tcp] [--security-group SECURITY_GROUP1 --security-group SECURITY_GROUP2 ...] [--name NAME] [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] [--output JSON] [-q, --quiet]
Options de commande
- --subnets : ID séparés par des virgules des sous-réseaux dans lesquels mettre à disposition ce serveur VPN. Utilisez des sous-réseaux dans des zones différentes pour une haute disponibilité, deux sous-réseaux peuvent être définis au maximum.
- --client-ip-pool : pool d'adresses IPv4 du client VPN, exprimé au format CIDR. La demande ne doit chevaucher aucun préfixe d'adresse existant dans le VPC, ni les plages d'adresses réservées suivantes : 127.0.0.0/8 (adresses de bouclage IPv4), 161.26.0.0/16 (services IBM), 166.8.0.0/14 (points d'extrémité de service cloud), 169.254.0.0/16 (adresses lien-local IPv4), 224.0.0.0/4 (adresses de multidiffusion IPv4). La longueur de préfixe du bloc CIDR du pool d'adresses IP client doit être comprise entre /9 (8 388 608 adresses) et /22 (1 024 adresses). Il est recommandé de définir un bloc CIDR contenant deux fois plus d'adresses IP que le nombre requis pour permettre le maximum de connexions simultanées.
- --cert : CRN de l'instance de certificat pour ce serveur VPN.
- --client-auth-methods : liste des méthodes d'authentification du client, séparée par des virgules. L'un des éléments suivants : certificate, username, certificate,username, username,certificate.
- --client-ca : CRN de l'instance de certificat à utiliser pour l'autorité de certification (CA) du client VPN.
- --client-crl : CRL | @CRL-file. Contenu de la liste de révocation des certificats, encodé au format PEM.
- --client-dns : liste séparée par des virgules des adresses de serveurs DNS qui seront fournies aux clients VPN connectés à ce serveur VPN. Deux serveurs DNS peuvent être définis au maximum.
- --client-idle-timeout : secondes pendant lesquelles un client VPN peut être inactif avant que le serveur VPN ne le déconnecte. Spécifiez 0 pour empêcher le serveur de déconnecter les clients inactifs (par défaut : 600).
- --enable-split-tunnel : indique si la tunnelisation fractionnée est activée sur ce serveur VPN. L'un des éléments suivants : false, true (valeur par défaut : false).
- --port : numéro de port à utiliser pour ce serveur VPN (valeur par défaut : 443).
- --protocol : protocole de transport à utiliser pour ce serveur VPN. L'un des éléments suivants : udp, tcp (valeur par défaut : udp).
- --security-group : ID du groupe de sécurité.
- --name : nouveau nom pour le serveur vpn.
- --resource-group-id : ID du groupe de ressources. Cette option est mutuellement exclusive avec --resource-group-name.
- --resource-group-name : nom du groupe de ressources. Cette option est mutuellement exclusive avec --resource-group-id.
- --output : spécifiez le format de sortie. Seul le format JSON est pris en charge. Valeur admise : JSON.
- -q, --quiet : supprimer les sorties prolixes.
Exemples de commande
ibmcloud is vpn-server-create --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0,0736-4b871e22-e819-4f87-bb17-e457a88246a2 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.165.7.0/20 --client-auth-methods certificate --client-ca crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc
ibmcloud is vpn-server-create --name myvpnserver --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0,0736-4b871e22-e819-4f87-bb17-e457a88246a2 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.166.7.0/20 --client-auth-methods username
ibmcloud is vpn-server-create --name myvpnserver2 --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.167.7.0/20 --client-auth-methods username --client-dns 9.9.9.9,8.8.8.8 --protocol tcp --port 8888 --enable-split-tunnel true --client-idle-timeout 1200
ibmcloud is vpn-server-create --name myvpnserver3 --subnets 0717-a7191f77-7c87-4ad4-bb11-a37f9e9fc0f0 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc --client-ip-pool 190.168.7.0/20 --client-auth-methods username --security-group r006-e32f671c-463d-4f93-88e3-2dd0413476b4 --security-group r006-3af7a9db-d9bc-43d4-bced-93e0a33fee25
ibmcloud is vpn-server-create --subnets 0736-4b871e22-e819-4f87-bb17-e457a88246a2 --client-ip-pool 192.170.0.0/22 --client-dns 172.34.1.100 --cert crn:v1:bluemix:public:cloudcerts:us-south:a/0046b57b897f419080c4ed3e011b86d4:5f1a72bc-b4c2-413f-bd22-011cfa4be5db:certificate:c81627a1bf6f766379cc4b98fd21ccd6 --client-auth-methods certificate,username --client-ca crn:v1:bluemix:public:cloudcerts:us-south:a/0046b57b897f419080c4ed3e011b86d4:5f1a72bc-b4c2-413f-bd22-011cfa4be5db:certificate:c81627a1bf6f766379cc4b98fd21ccd6 --client-crl @./openvpn/crl.pem --name vpnswithcrl --security-group r006-5744b689-e5c4-461d-9f9b-ce5e7e8dbed6
Créer un serveur VPN avec l'API
Pour créer un serveur VPN client-site avec l'API, procédez comme suit :
-
Configurez votre environnement d'API avec les variables appropriées.
-
Stockez d'autres variables destinées à être utilisées dans les commandes d'API, par exemple :
-
ResourceGroupId
- Recherchez l'ID groupe de ressources à l'aide de la commandeget resource groups
, puis renseignez la variable :export ResourceGroupId=<your_resourcegroup_id>
-
SubnetId
- Recherchez l'ID sous-réseau à l'aide de la commandeget subnet
, puis renseignez la variable :export SubnetId=<your_subnet_id>
-
-
Lorsque toutes les variables sont initialisées, créez le serveur VPN :
curl -X POST "$vpc_api_endpoint/v1/vpn_servers?version=$api_version&generation=2" \ -H "Authorization: $iam_token" \ -d '{ "certificate": { "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc" }, "client_ip_pool": "192.168.50.0/22", "name": "my-new-vpn-server", "subnets": [ { "id": "0716-046c3fd3-1cc5-40f6-b0ad-bbc305308f6d" }, { "id": "0717-30ff71ff-3e90-42a9-aa93-96a062081f18" } ], "client_authentication": [ { "method": "certificate", "client_ca": { "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:1862b0b4-c1f8-4eef-a6b5-e9c00c9f593d:certificate:6c801ef768c139d986b4c6f91175e8cc" } }, { "method": "username", "identity_provider": { "provider_type": "iam" } } ] "resource_group": { "id": "'$ResourceGroupId'" } }'
Etapes suivantes
- Pour valider que le serveur VPN a été créé avec succès, attendez quelques minutes, puis allez dans le tableau Serveurs client-site pour
vous assurer que l'état du serveur VPN est
Stable
et que l'état de santé estHealthy
. - Créez des routes VPN.
- Configurez un environnement client VPN et connectez-vous au serveur VPN.