Unser Szenario erfordert die Einrichtung einer sicheren Verbindung von unserem Arbeitsplatz zu einer Oracle Cloud-Datenbank (OCI). Unser Hauptziel besteht darin, sicherzustellen, dass alle Transaktionen zwischen unserem Arbeitsplatz und der Cloud-Datenbank verschlüsselt erfolgen.
Zu diesem Zweck müssen wir zwei separate Netzwerke verwenden: das 192.168.40.0/24-Netzwerk für unseren Arbeitsplatz und das 10.10.10.0/16-Netzwerk für unsere Oracle Cloud-Infrastruktur.
Wir möchten sicherstellen, dass die Datenbank in der Oracle Cloud nur über das 10.10.10.0/16-Netzwerk erreichbar ist und nicht über das öffentliche Netzwerk zugänglich ist. Am Ende möchten wir unser Tool „SQL Developer“ auf unserem PC im 192.168.40.0/24-Netzwerk verwenden, um eine Verbindung zur Cloud-Datenbank herzustellen.
Es ist wichtig zu beachten, dass der Zugriff auf die Cloud-Datenbank nur über den Listener-Port (z. B. Port 1522) möglich ist und wir keinen Zugriff auf das Betriebssystem haben, da die Wartung von Oracle selbst verwaltet wird.
Als Beispiel verwenden wir die folgenden IP-Adressen:
- Arbeitsplatz-PC = 192.168.40.123
- Cloud-Datenbank = 10.10.0.40
Um sicherzustellen, dass beide Systeme in einem privaten Netzwerksegment sicher über das Internet kommunizieren können, planen wir den Aufbau einer Site-to-Site-VPN-Verbindung. Diese Verbindung dient dazu, das Netzwerk A (192.168.40.0/24) mit dem Netzwerk B (10.10.0.0/16) sicher zu verknüpfen. Jeglicher Netzwerkverkehr zwischen diesen beiden Segmenten wird durch IPsec getunnelt und verschlüsselt übertragen.
Der Aufbau sieht wie folgt aus:
Die Konfiguration erfordert die Zusammenarbeit von Firewall an unserem Firmenstandort und dem Dynamic Routing Gateway (DRG) in der OCI. Nach einer erfolgreichen Authentifizierung tauschen diese Einheiten mehrere Schlüsselparameter aus, um eine sichere Verbindung herzustellen. Auf der Seite unserer Firewall ist lediglich eine öffentliche IP-Adresse erforderlich. Auf der OCI-Seite müssen bei der Konfiguration zwei öffentliche IP-Adressen berücksichtigt werden, die bei der Einrichtung des IPsec-Tunnels verwendet werden.
Oracle verlangt von uns aus gutem Grund, gleich zwei IPsec-Tunnel zu erstellen, um sowohl Verschlüsselung als auch Redundanz der Verbindung sicherzustellen.
In diesem Szenario richten wir einen IPsec-Tunnel zur Oracle Autonomous Database in OCI ein. Dieses Beispiel bezieht sich auf ein Data Warehouse mit der Option „private endpoint access only“, da die Datenbank nur über das Virtual Cloud Network (VCN) erreichbar ist und keine öffentliche IP-Adresse hat. In diesem Beispiel hat die Datenbank die feste interne IP-Adresse 10.10.0.40.
Lassen Sie uns zunächst die Konfiguration des IPsec-Tunnels auf der OCI-Seite betrachten, da wir hier die Sicherheitsparameter für den IKE (Internet Key Exchange) festlegen.
Dazu klicken wir zunächst auf das Menüsymbol oben links (die drei horizontalen Striche) und navigieren von dort aus zu „Networking“ -> „Site-to-Site VPN“ unter „Customer Connectivity“.
Wir starten den VPN-Assistenten, da er automatisch die erforderlichen Abhängigkeiten für einen IPsec-Tunnel konfiguriert. Im nächsten Schritt wählen wir das richtige Compartment aus, in dem sich unsere virtuelle Infrastruktur mit Netzwerk und Datenbank befindet. Anschließend wählen wir das Netzwerk aus, in dem sich unsere Datenbank befindet. Es ist wichtig, hier ein Dynamic Routing Gateway (DRG) zu erstellen, da es für den IPsec-Tunnel erforderlich ist. Im folgenden Schritt müssen wir unter „Subnets and Security“ das richtige Subnetz auswählen.
Unter dem Abschnitt „Site-to-Site VPN“ wählen wir die Option „Policy Based Routing“ aus, da wir den Netzwerkverkehr nur zwischen dem Subnetz der OCI (10.10.0.0/16) und dem Subnetz unserer Firma (192.168.40.0/24) verbinden möchten. Daher geben wir unter „Routes to your on-premise network“ das Subnetz unserer Firma an, in dem sich unser Arbeitsplatz befindet (192.168.40.0/24).
Als nächstes konfigurieren wir die Einstellungen für Tunnel1 und Tunnel2. Wir wählen die IKEv1-Version aus und tragen unter „Associations“ das Subnetz unserer Firma in „On-premise network CIDR blocks“ und das Subnetz unserer Cloud in „Oracle Cloud CIDR Blocks“ ein. Diese Einträge gelten für beide Tunnel.
Im nächsten Schritt erstellen wir den Endpunkt unserer Firmenfirewall unter „Customer-Premises Equipment“. Hier tragen wir die öffentliche IP-Adresse ein, von der unsere Firewall extern für den IPsec-Tunnel erreichbar sein wird (Publick IP A). Nach diesen Schritten ist die Konfiguration abgeschlossen.
Wenn wir nun auf den gerade eingerichteten IPsec-Tunnel klicken, sehen wir, dass OCI automatisch zwei redundante Tunnel erstellt hat, die später mit unserer Firewall verbunden werden. Bevor wir dies jedoch tun, müssen die Sicherheitsparameter für die einzelnen Tunnel ausgewählt werden, da sie für die IPsec-Verbindung entscheidend sind. Dazu klicken wir zuerst auf das Tunnel1-Netzwerk und notieren uns den von OCI generierten Pre-Shared Key (PSK) unter „Shared Secret“ -> „Show“. Diesen PSK benötigen wir
später zur Authentifizierung gegenüber der Firewall. Beachten Sie, dass für Tunnel1 und Tunnel2 unterschiedliche PSKs generiert werden.
Nachdem wir den PSK notiert haben, klicken wir auf „Edit“ bei Tunnel1 und öffnen im nächsten Fenster die erweiterten Optionen unter „Show advanced options“. Hier wählen wir bei „Phase one (ISAKMP) configuration“ die Option „Set custom configurations“ aus, um die einzelnen Sicherheitsparameter anzuzeigen, die wir später mit der Firewall verhandeln müssen. Es ist wichtig zu beachten, dass OCI nicht so viele Sicherheitsparameter anbietet wie eine herkömmliche Firewall. Da wir auf unserer Firmenseite die Software OPNsense als Firewall-Endpunkt verwenden, setzen wir die folgenden Parameter:
Wir speichern diese Einstellungen und wählen dieselben Parameter auch für die Tunnel-2-Konfiguration aus. Wir merken uns die Oracle VPN-IP-Adressen für beide Tunnel, da wir sie später für die Einrichtung des IPsec-Tunnels auf unserer Firmenfirewall benötigen (Public IP B + Public IP C).
IPsec Konfiguration auf Firewall
Gehen wir nun über zu der IPsec Konfiguration auf der Firewall. Hierzu benutzen wie die kostenlose Open-Source Software von Opnsense, die hervorragend für diesen Zweck geeignet ist.
OPNsense:
Folgende Konfigurationen werden festgelegt:
General Information: - Connection Method: Start immediate
- Key Exchange Version: V1 (für unseren Beispiel)
- Internet Protocol: IPv4
- Interface WAN
- Remote Gateway: öffentliche IP der OCI (public IP B)
- Description: OCI IPsec Tunnel 1
Phase 1 proposal (Authentication) - Authentication Method: Mutual PSK
- Negotiation Mode: Main
- My identifier: My IP address
- Peer identifier: Peer IP address
- Pre-Shared Key: Vom OCI generierter PSK
Phase1 proposal (Algorithms) - Encryption algorithm: AES 256
- Hash algorithm: SHA256
- DH key group: 14 (2048 bits)
Advanced Options - Install policy->check
- NAT Traversal-> disable
- Lifetime: 28800
Speichern Sie dann ganz unten und klicken Sie im nächsten Fenster oben auf „Apply changes“
Als nächstes klicken wir auf das „+“ neben dem Eintrag in Phase 1, um Phase 2 zu konfigurieren. In Phase 2 werden folgende Einstellungen vorgenommen:
General Information - Mode: Tunnel IPv4
- Description: Local Network
Local Network: - Type: Network
Hier klicken wir in der linken Menüleiste auf VPN->Tunnelsettings [legacy]->“+“ (auf das Pluszeichen) - Address: 192.168.40.0/24
Remote Network: - Type: Network
- 10.10.0.0/16
Phase 2 proposal (SA/Key Exchange) - Protocol: ESP
- Encryption algorithms: AES 256
- Hash algorithms: SHA256
- PFS key group: 5 (1536 bits)
- Lifetime: 3600
Speichern Sie wieder ganz unten und klicken Sie im nächsten Fenster oben auf „Apply changes“
Der erste Tunnel sollte nun eingerichtet sein. Um den zweiten redundanten Tunnel zu erstellen, klonen wir die bereits erstellte Phase-1-Konfiguration und ändern dabei folgende Parameter: - Remote Gateway: 2. Öffentliche IP-Adresse von OCI (Public IP C)
- Description: OCI IPsec Tunnel 2
- Pre-Shared Key: vom OCI generierter PSK für die zweite öffentliche IP-Adresse
Speichern Sie auch diese Einstellungen und klicken Sie im nächsten Fenster oben auf „Apply changes“.
Anschließend klicken wir auf das „+“ neben dem zweiten Tunnel, um die Phase 2 für diesen Tunnel zu konfigurieren. Die Einstellungen sollten identisch mit denen der Phase 2 des ersten Tunnels sein.
Nachdem die Konfiguration fertig eingerichtet ist, muss nur noch der IPsec Dienst unter VPN->IPsec->Connections mit enabled aktiviert und gestartet werden. Zu Überprüfung sollte auch sichergestellt werden, dass unter VPN->IPsec-> Tunnel Settings das Häkchen in „Enable IPsec“ gesetzt ist. Es sollte oben rechts das grüne Play-Button erscheinen, der anzeigt, dass der Dienst aktiviert und gestartet ist. Unter VPN->IPsec-> Status Overview kann man sehen, ob der IPsec Tunnel erfolgreich aufgebaut wurde. Sollte dies nicht der Fall sein, müsste die Firewall evtl. neu gestartet werden.