Zum Hauptinhalt springen
Version: 1.89.x (Q2 26)

Private Network (VPN) verbinden

Ein häufiges Szenario für die Nutzung eines VPN ist eine Anwendung, die auf Codesphere läuft und auf Dienste zugreifen muss, die in einem privaten Netzwerk gehostet werden. Ein Beispiel dafür ist die Verbindung zu einer On-Premise-Datenbank im eigenen Rechenzentrum des Unternehmens. Durch die Einrichtung einer VPN-Verbindung kannst du deine in Codesphere laufende Anwendung sicher mit deinem privaten Netzwerk verbinden, sodass deine Anwendungen mit internen Datenbanken, APIs oder anderen Diensten kommunizieren können, als befänden sie sich im selben lokalen Netzwerk.

Diese Anleitung führt dich durch die Erstellung einer VPN-Konfiguration und die Verbindung deiner Codesphere Workspaces mit einem VPN-Gateway mittels IPsec. Nach der Einrichtung baut jede Replica deines Workspace-Dienstes eine eigene individuelle VPN-Verbindung zu deinem VPN-Gateway auf.

Host-to-Site-Architektur

Jeder Server in deinem Workspace agiert als eigenständiger VPN-Host/Client und baut eine eigene sichere Verbindung zu deinem privaten Netzwerk-Gateway auf. Dabei handelt es sich nicht um ein klassisches Site-to-Site-VPN, sondern jede Replica eines Workspace-Dienstes unterhält ihren eigenen VPN-Tunnel. Diese Architektur ist aufgrund der Multi-Tenant-Infrastruktur von Codesphere notwendig, um eine ordnungsgemäße Netzwerkisolation und Sicherheit zwischen den verschiedenen Workspaces zu gewährleisten.

Diagramm der VPN-Host-to-Site-Architektur

Entsprechende barrierefreie Textbeschreibung

Voraussetzungen & Einschränkungen

Voraussetzungen:

  • Dein VPN-Gateway muss aus dem öffentlichen Internet erreichbar sein und eine statische öffentliche IP-Adresse besitzen.
  • Das Gateway muss IPsec mit IKEv1 oder IKEv2 unterstützen.
  • Der Pre-Shared Key (PSK) muss sowohl in der Codesphere VPN-Konfiguration als auch auf deinem Gateway identisch konfiguriert sein.
  • Die IKE- und ESP-Cipher-Suites müssen auf beiden Seiten exakt übereinstimmen.

Einschränkungen:

  • Jede Workspace-Replica baut ihren eigenen individuellen VPN-Tunnel zu deinem Gateway auf. Dein Gateway muss so konfiguriert sein, dass es mehrere gleichzeitige Verbindungen von unterschiedlichen Quell-IPs akzeptiert.
    • Dies ist erforderlich, um das dynamische Hinzufügen und Entfernen von Anwendungsdiensten und deren Replicas zu unterstützen.
  • Es handelt sich um eine Host-to-Site-Konfiguration, nicht um Site-to-Site. Codesphere Workspaces agieren als VPN-Clients, nicht als Netzwerk-Peer.
  • Das Ändern einer VPN-Konfiguration startet den VPN-Dienst auf allen verbundenen Workspaces neu, was zu einer kurzen Netzwerkunterbrechung führt.
    • Es wird empfohlen, eine zweite VPN-Konfiguration mit einem duplizierten Workspace zu verwenden, um Änderungen ohne Ausfallzeit zu ermöglichen.
Beispiel einer Gateway-Konfiguration

Dein VPN-Gateway muss so konfiguriert werden, dass es eingehende IPsec-Verbindungen von Codesphere Workspace-Replicas akzeptiert. Nachfolgend findest du ein Beispiel für eine strongSwan-Konfiguration (ipsec.conf), die mit dem VPN-Setup von Codesphere kompatibel ist.

conn workspaces
keyexchange=ikev1
type=tunnel
authby=psk
forceencaps=yes
ike=aes256-sha256-modp2048
esp=aes256-sha256-modp2048
ikelifetime=1h

leftid=1.2.3.4 # Öffentliche IP des Gateways
left=%defaultroute
lifetime=8h
leftsubnet=0.0.0.0/0

right=%any
rightsourceip=10.200.0.0/24 # Die interne Quell-IP, die in einem Tunnel für den entfernten Peer verwendet wird.

auto=add
  • left bezieht sich auf das Gateway (deine Seite). leftsubnet=0.0.0.0/0 erlaubt dem Gateway, den gesamten Verkehr durch den Tunnel zu leiten. In deinem privaten Netzwerk ist dies üblicherweise das Subnetz deines privaten Netzwerks.
  • right=%any akzeptiert Verbindungen von jeder Quell-IP, was erforderlich ist, da sich jede Workspace-Replica von einer anderen IP aus verbinden kann.
  • rightsourceip definiert den IP-Pool, der verbindenden Codesphere-Clients zugewiesen wird.

Konfiguration erstellen

Tabelle mit VPN-Konfigurationen, die die eingerichteten VPN-Verbindungen des Teams aufführt.

  1. Navigiere zum Tab VPNs in deinem Team-Dashboard.
  2. Klicke auf die Schaltfläche + Create VPN.

VPN-Konfigurationsformular mit Peer-IP, Subnetzen und IPsec-Sicherheitseinstellungen.

  1. Gib einen Namen für die Verbindung ein.
  2. Gib den Pre-Shared Key ein (stelle sicher, dass dieser mit deinem entfernten Gateway übereinstimmt).
  3. Konfiguriere die IKE- und ESP-Einstellungen (Version, Lifetime, Cipher Suites).

Übereinstimmung der Konfiguration

Deine IKE- und ESP-Einstellungen müssen exakt mit der Konfiguration deiner externen Firewall oder VPN-Appliance übereinstimmen. Nicht übereinstimmende Sicherheitsphasen sind die häufigste Ursache für Verbindungsfehler.

  1. Suche den Abschnitt „Network Settings“.
  2. Gib die Peer IP ein (die öffentliche IP deines VPN-Gateways).
  3. Gib die Peer Subnet(s) an.

CIDR-Notation

Verwende die standardmäßige CIDR-Notation (z. B. 10.250.0.0/24) für die privaten IP-Bereiche, auf die du über den Tunnel zugreifen musst. Achte darauf, nicht den gesamten Verkehr (0.0.0.0/0) über den Tunnel zu leiten, da dies die internen Funktionen von Codesphere und den Zugriff auf andere Dienste beeinträchtigen würde.

  1. Speichere die Konfiguration.

Workspaces verbinden

VPN Workspace-Verbindung

  1. Klicke auf den neu erstellten VPN-Namen, um dessen Details zu öffnen.
  2. Wähle den Tab Connected Workspaces aus.
  3. Verwende das Dropdown Add Workspaces, um die Ziel-Landscapes auszuwählen, die du mit diesem VPN verbinden möchtest.

Dienstunterbrechung

Das Ändern der Konfiguration startet den VPN-Dienst neu auf allen verbundenen Workspaces. Dies kann zu einer kurzen Netzwerkunterbrechung bei bestehenden Verbindungen führen.

Verbindung überprüfen

Sobald deine Workspaces verbunden sind, solltest du den Tunnel testen, um sicherzustellen, dass der Datenverkehr korrekt geroutet wird.

  1. Öffne das Terminal in deiner Codesphere IDE.
  2. Sende einen Ping an eine private IP-Adresse innerhalb des zuvor definierten Peer Subnet.
    • Beispielbefehl: ping 10.250.0.5
  3. Bestätige, dass der Ping erfolgreich ist, um zu überprüfen, dass der Tunnel aktiv ist und Verkehr erfolgreich durchleitet.

Preview Deployments via CI/CD

Du kannst Preview Deployments auch über unsere CI-Integrationen für GitHub, Bitbucket und GitLab mit bestehenden VPN-Verbindungen verknüpfen. So kannst du komfortabel mit privaten Netzwerken (z. B. eingeschränkten On-Premise-Datenbanken oder internen APIs) für deine Entwicklungsumgebungen arbeiten.

Um dies einzurichten, referenziere einfach den Namen deiner VPN-Verbindung in der Deploy-YAML deines Repositorys.

Füge den Parameter vpnConfig im Abschnitt with deines Deployment-Schritts hinzu.

- name: Deploy
uses: codesphere-cloud/gh-action-deploy@main
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
email: ${{ secrets.CODESPHERE_EMAIL }}
password: ${{ secrets.CODESPHERE_PASSWORD }}
team: 'My Team' # Ändere dies zu deinem Team
plan: 'Boost' # Wähle den Plan für deine App
onDemand: 'true'
vpnConfig: 'vpnConfigName' # Durch den Namen deiner VPN-Verbindung ersetzen