VPN-Server erstellen
Erstellen Sie einen VPN-Server, um Clients aus dem Internet die Verbindung zum VPC-Netz unter Beibehaltung einer sicheren Konnektivität zu ermöglichen.
Sie können einen VPN-Server über die Konsole, CLI oder API erstellen.
Vorbereitende Schritte
Bevor Sie einen VPN-Server bereitstellen, müssen Sie die folgenden Voraussetzungen in der folgenden Reihenfolge erfüllen:
-
Prüfen Sie die Planungshinweise für VPN-Server.
-
Entscheiden Sie, welcher VPN-Client-Authentifizierungsmodus verwendet werden soll: zertifikatsbasiert, Benutzer-ID und Passcode oder beides. Weitere Informationen finden Sie unter Client-to-Server-Authentifizierung einrichten.
-
Erstellen Sie eine Secrets Manager-Serviceinstanz und verwalten Sie Zertifikate.
Es wird empfohlen, unter Berücksichtigung dieser Aspekte ein privates Zertifikat zu erstellen.
-
Erstellen Sie eine IAM-Dienst-zu-Dienst-Autorisierung für Ihren VPN-Server und IBM Cloud Secrets Manager.
-
Erstellen Sie eine VPC und mindestens ein Teilnetz in Ihrer ausgewählten VPC.
Für Hochverfügbarkeit erstellen Sie eine VPC und zwei Teilnetze in zwei verschiedenen Zonen. Der VPN-Server befindet sich in den beiden Teilnetzen.
Erstellen eines VPN-Servers in der Konsole
So erstellen Sie einen Client-to-Site-VPN-Server in der Konsole:
-
Erfüllen Sie alle unter 'Vorbereitende Schritte' aufgeführten Vorbedingungen.
-
Öffnen Sie in Ihrem Browser die Konsole IBM Cloud und melden Sie sich bei Ihrem Konto an.
-
Wählen Sie das Navigationsmenü
aus und klicken Sie dann auf
Infrastruktur- VPC > Netzwerk > VPNs.
-
Klicken Sie in der rechten oberen Ecke der Seite auf Erstellen.
-
Klicken Sie im Abschnitt VPN-Typ auf Client-to-Site-Server.
Abschnitt VPN-Typ"" Der Abschnitt Standorte zeigt die Region, in der sich die VPC befindet und in der der VPN-Server bereitgestellt wird.
-
Geben Sie im Abschnitt 'Details' die folgenden Informationen an:
-
Name des VPN-Servers: Geben Sie einen Namen für den VPN-Server ein, z. B.
my-vpn-server
. -
Ressourcengruppe: Wählen Sie eine Ressourcengruppe für den VPN-Server aus.
-
Tags- Fügen Sie optional Tags hinzu, um den Zugriff auf Ihre Ressourcen zu organisieren, Nutzungskosten zu verfolgen oder zu verwalten.
-
Zugriffsmanagementtags-Optional können Sie Zugriffsmanagementtags zu Ressourcen hinzufügen, um die Zugriffssteuerungsbeziehungen zu organisieren. Das einzige unterstützte Format für Zugriffsverwaltungstags ist
key:value
. Weitere Informationen finden Sie unter Zugriff auf Ressourcen mithilfe von Tags steuern. -
Virtual Private Cloud: Wählen Sie die VPC für den VPN-Server aus.
-
IPv4-Adresspool für Client: Geben Sie einen CIDR-Bereich ein. Dem Client wird eine IP-Adresse aus diesem Adressenpool für seine Sitzung zugewiesen.
Abschnitt VPN-Details""
-
-
Geben Sie im Abschnitt 'Teilnetze' die folgenden Informationen an:
-
Wählen Sie einen VPN-Servermodus aus:
- Hochverfügbarkeitsmodus: Stellt den VPN-Server über zwei Teilnetze in verschiedenen Zonen. bereit. Dieser Modus eignet sich am besten für Mehrzonenbereitstellungen und Lösungen, in denen der Zugriff auf das Client-VPN extrem wichtig ist.
- Standalone-Modus: Stellt den VPN-Server in einem einzigen Teilnetz und einer einzelnen Zone bereit. Dieser Modus eignet sich am besten für Einzelzonenbereitstellungen, in denen die Verfügbarkeit mehrerer Zonen nicht erforderlich ist.
-
Geben Sie das Teilnetz (Standalone-Modus) oder die Teilnetze (Hochverfügbarkeitsmodus) für die VPC an.
Abschnitt für VPN-Teilnetze
-
-
Geben Sie im Abschnitt 'Authentifizierung' die folgenden Informationen an:
-
VPN-Serverauthentifizierung-Wählen Sie das SSL-Zertifikat des Servers aus Secrets Manageraus. Füllen Sie alle erforderlichen Felder aus.
Abschnitt für die VPN-Serverauthentifizierung -
Clientauthentifizierungsmodi: Wählen Sie diese Option aus, um die Benutzerauthentifizierung über die Verwendung eines Clientzertifikats, einer Benutzer-ID und eines Kenncodes oder beides zu konfigurieren.
-
Clientzertifikat: Sie können ein Clientzertifikat auswählen und eine Benutzer-ID und einen Kenncode für optimale Sicherheit konfigurieren. Eine Benutzer-ID und ein Passcode bieten eine zusätzliche Sicherheitsebene, die zusätzliche Anmeldedaten für den Kontozugang erfordert.
Optional können Sie eine Zertifikatswiderrufsliste (Certificate Revocation List, CRL) im PEM-Format hochladen. Nachdem Sie eine CRL hochgeladen haben, wird die PEM-Datei als der Name des VPN-Servers angezeigt.
-
Benutzer-ID und Kenncode-Konfigurieren Sie die hinzugefügte Authentifizierung für VPN-Clientbenutzer. Diese Authentifizierungsmethode bietet eine zusätzliche Sicherheitsebene, die mit IBM Cloud IAM integriert wird, um die Client-Authentifizierung abzuschließen. Wenn die Authentifizierung abgeschlossen ist, gibt das System den Code zur Authentifizierung an den openVPN Client weiter.
Abschnitt zur VPN-Clientauthentifizierung -
-
-
Wählen Sie im Abschnitt 'Sicherheitsgruppen' mindestens eine Sicherheitsgruppe aus.
Um eine oder mehrere Sicherheitsgruppen und ihre Regeln zu konfigurieren oder um optional Zugriffskontrolllisten (ACLs) auf dem Subnetz zu konfigurieren, in dem Sie den VPN-Server und andere VPC-Subnetze, die über den VPN-Tunnel kommunizieren, bereitstellen möchten, lesen Sie den Abschnitt Konfigurieren von ACLs zur Verwendung mit einem VPN-Server.
Abschnitt für VPN-Sicherheitsgruppen Sie können Sicherheitsgruppen nach der Bereitstellung auf der Detailseite des VPN-Servers (Registerkarte "Sicherheitsgruppen") zuordnen.
-
Geben Sie im Abschnitt Zusätzliche Konfiguration die folgenden Informationen an:
-
IP-Adresse des DNS-Servers: Geben Sie optional eine oder zwei IP-Adressen des DNS-Servers für die Auflösung von Domänennamen an.
-
Inaktivitätszeitlimit für Sitzung (Sekunden): Wenn der VPN-Server keinen Datenverkehr verzeichnet, bevor dieses Intervall abläuft, wird die Verbindung automatisch getrennt. Dieser Wert kann zwischen
0
und28800
Sekunden liegen. Der Standardwert ist600
Sekunden. -
Transportprotokoll: Wählen Sie eines der folgenden Protokolle aus und geben Sie einen gültigen VPN-Port ein (
1 - 65535
).- UDP ist ein verbindungsunabhängiges Protokoll, das eine Fehlerprüfung durchführt, aber fehlerhafte Pakete verwirft. UDP ist schneller als TCP.
- TCP ist ein verbindungsorientiertes Protokoll mit Fehlerprüfung und Fehlerbehebung. TCP ist zuverlässiger als UDP.
-
Tunnelmodus: Geben Sie eine der folgenden Optionen an:
-
Full-Tunnel: Der gesamte Datenverkehr fließt über die VPN-Schnittstelle zum VPN-Tunnel.
-
Split-Tunnel: Der private Datenverkehr fließt über die VPN-Schnittstelle zum VPN-Tunnel und der öffentliche Datenverkehr fließt über die vorhandene LAN-Schnittstelle.
Abschnitt für zusätzliche VPN-Konfiguration
-
-
Erstellen eines VPN-Servers über die CLI
Bevor Sie beginnen, richten Sie Ihre CLI-Umgebung ein.
Um einen VPN-Server über die CLI zu erstellen, geben Sie den folgenden Befehl ein:
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]
Befehlsoptionen
- --subnets: Durch Kommas getrennte IDs der Teilnetze, in denen dieser VPN-Server bereitgestellt werden soll. Verwenden Sie Teilnetze in verschiedenen Zonen, um eine hohe Verfügbarkeit bereitzustellen. Es können maximal zwei Teilnetze festgelegt werden.
- --client-ip-pool: Der IPv4-Adresspool des VPN-Clients, der im CIDR-Format angegeben ist. Die Anforderung darf sich nicht mit vorhandenen Adresspräfixen in der VPC oder einem der folgenden reservierten Adressbereiche überschneiden: 127.0.0.0/8 (IPv4-Loopback-Adressen), 161.26.0.0/ 16 (IBM Services), 166.8.0.0/ 14 (Cloud-Service-Endpunkte), 169.254.0.0/16 (IPv4-Link-Local-Adressen), 224.0.0.0/4 (IPv4-Multicast-Adressen). Die Präfixlänge des CIDR des Client-IP-Adressenpools muss zwischen /9 (8.388.608 Adressen) und /22 (1024 Adressen) liegen. Es wird ein CIDR-Block empfohlen, der die doppelte Anzahl an IP-Adressen enthält, die für die Aktivierung der maximalen Anzahl gleichzeitiger Verbindungen erforderlich sind.
- --cert: Die Zertifikatsinstanz-CRN für diesen VPN-Server.
- --client-auth-methods: Durch Kommas getrennte Liste der Clientauthentifizierungsmethoden. Folgende Werte sind zulässig: certificate, username, certificate,username, username,certificate.
- --client-ca: Der CRN der Zertifikatsinstanz, der für die VPN-Clientzertifizierungsstelle verwendet werden soll.
- --client-crl: CRL | @CRL-Datei. Der Inhalt der Zertifikatswiderrufsliste, der im PEM-Format codiert ist.
- --client-dns: Durch Kommas getrennte DNS-Serveradressen, die für VPN-Clients bereitgestellt werden, die mit diesem VPN-Server verbunden sind. Es können maximal zwei DNS-Server festgelegt werden.
- --client-idle-timeout: Die Sekunden, die ein VPN-Client inaktiv sein kann, bevor dieser VPN-Server die Verbindung trennt. Geben Sie 0 an, um zu verhindern, dass der Server inaktive Clients trennt (Standardwert: 600).
- --enable-split-tunnel: Gibt an, ob das Split-Tunneling für diesen VPN-Server aktiviert ist. Folgende Werte sind zulässig: false, true (Standardwert: false).
- --port: Die Portnummer, die für diesen VPN-Server verwendet werden soll (Standardwert: 443).
- --protocol: Das Transportprotokoll, das für diesen VPN-Server verwendet werden soll. Folgende Werte sind zulässig: udp, tcp (Standardwert: udp).
- --security-group: Die ID der Sicherheitsgruppe.
- --name: Neuer Name für den VPN-Server.
- --resource-group-id: ID der Ressourcengruppe. Diese Option und die Option --resource-group-name schließen sich gegenseitig aus.
- --resource-group-name: Name der Ressourcengruppe. Diese Option und die Option --resource-group-id schließen sich gegenseitig aus.
- --output: Gibt das Ausgabeformat an. Nur JSON wird unterstützt. Option: JSON.
- -q, --quiet: Ausführliche Ausgabe unterdrücken.
Befehlsbeispiele
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
Erstellen eines VPN-Servers mit der API
Gehen Sie folgendermaßen vor, um einen Client-to-Site-VPN-Server mit der API zu erstellen:
-
Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
-
Speichern Sie weitere Variablen; die in den API-Befehlen verwendet werden sollen. Zum Beispiel:
-
ResourceGroupId
- Suchen Sie die Ressourcengruppen-ID mithilfe des Befehlsget resource groups
und füllen Sie dann die Variable:export ResourceGroupId=<your_resourcegroup_id>
-
SubnetId
- Suchen Sie die Teilnetz-ID mithilfe des Befehlsget subnet
und füllen Sie anschließend die Variable:export SubnetId=<your_subnet_id>
-
-
Wenn alle Variablen initialisiert sind, erstellen Sie den VPN-Server:
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'" } }'
Nächste Schritte
- Um zu überprüfen, ob der VPN-Server erfolgreich erstellt wurde, warten Sie einige Minuten und gehen Sie dann in die Tabelle Client-to-Site-Server,
um sicherzustellen, dass der Status des VPN-Servers
Stable
und der GesundheitsstatusHealthy
lautet. - Erstellen Sie VPN-Routen.
- Konfigurieren Sie eine VPN-Clientumgebung und stellen Sie eine Verbindung zum VPN-Server her.