Vorheriges Thema: VPN - VPN-Appliance (VPN = Virtuelles privates Netzwerk)

Nächstes Thema: Generisch


Gemeinsamer geheimer IPSec-Schlüssel

Dieser Modus unterstützt ein Szenario aus einem Server und mehreren Clients, bei dem der Zugriff auf den VPN-Server von mehreren Speicherorten aus zulässig ist. Ein Datenspeicher ist erforderlich (entweder ein Daten-Volume oder eine NAS-Appliance, mit dem Terminal "fs" verbunden). Dieser Modus funktioniert nur in IPv4.

Beim Starten extrahiert die Server-Appliance die erste Zeile der Datei, die in der Eigenschaft "auth_path" angegeben ist, und verwendet sie als gemeinsamen Schlüssel. Diese Datei muss auf Client und Server vorhanden sein. Bevor Sie VPN-Clients konfigurieren, muss diese Datei für gemeinsame geheime Schlüssel in den entsprechenden Datenspeicher in das Unterverzeichnis "/client/" kopiert werden.

Auf der Server-VPN-Appliance wird auf der externen Schnittstelle eingegangener Datenverkehr entschlüsselt, über die Eigenschaften "tcp_ports", "udp_ports" und "aux_protocols" gefiltert und an die Serverschnittstelle weitergeleitet.

Auf der Client-VPN-Appliance wird der gesamte auf der Client-Schnittstelle eingegangene Datenverkehr verschlüsselt und an den Remote-VPN-Server weitergeleitet, der in der Eigenschaft "remote_host" angegeben wurde.

Eigenschaften, die auf der Serverseite konfiguriert werden müssen: "ip_addr", "netmask", "gateway" (bzw. entsprechende IPv6-Eigenschaften), "mode", "tunnel", "allowed_hosts", "tcp_ports", "udp_ports", "aux_protocols".

Eigenschaften, die auf der Client-Seite konfiguriert werden müssen: ip_addr, netmask, gateway (bzw. entsprechende IPv6-Eigenschaften), mode, tunnel, remote_host, auth_path.

Remote-Zugriff auf einen externen Dienst

Das folgende Diagramm zeigt ein Beispiel, wie Sie Remote-Zugriff auf einen externen Dienst konfigurieren:

Beispiel: Eine Web-Appliance, die auf Grid A ausgeführt wird und auf eine Remote-MySQL-Datenbank zugreift, die über einen sicheren VPN-Tunnel auf Grid B ausgeführt wird

Beispiel: Eine Web-Appliance, die auf Grid A ausgeführt wird, greift auf eine Remote-MySQL-Datenbank zu, die über einen sicheren VPN-Tunnel auf Grid B ausgeführt wird.

vpn1 auf Grid A ist so konfiguriert, dass sie mit der IP-Adresse verbunden ist, die vpn2 auf Grid B zugewiesenen ist. Das Terminal "srv" von vpn1 und das Terminal "clt" von vpn2 werden nicht verbunden. Externe Schnittstellen von vpn1 und vpn2 werden mit entsprechenden routbaren IP-Adressen konfiguriert.

Beispiel-Eigenschaftskonfiguration:

vpn1:

Eigenschaftsname

Wert

Hinweise

ip_addr

25.74.63.87

externe IP, die für vpn1 verwendet wird

netmask

255.255.255.0

netmask

gateway

25.74.63.1

gateway

mode

Client

Client-Betriebsmodus

tunnel

ipsec-Zertifikat

Datenverkehr wird mithilfe von IPSec verschlüsselt

auth_path

client-7575

Name des Zertifikat-/Schlüsseldateienpaares

remote_host

12.12.12.12

externe IP, die der externen Schnittstelle von vpn2 zugewiesen ist

vpn2:

Eigenschaftsname

Wert

Hinweise

ip_addr

12.12.12.12

externe IP, die für vpn2 verwendet wird

netmask

255.255.255.0

netmask

gateway

12.12.12.1

gateway

mode

Server

Server-Betriebsmodus

tunnel

ipsec-Zertifikat

Datenverkehr wird mithilfe von IPSec verschlüsselt

allowed_hosts

25.74.63.87

nur Verbindungen von vpn1 zulassen

tcp_ports

3306

Standardport für MySQL-Server

Remote-Zugriff auf interne CA AppLogic-Appliances

Das folgende Diagramm zeigt ein Beispiel, wie Sie Remote-Zugriff auf interne CA AppLogic-Appliances konfigurieren:

Beispiel: Ein Benutzer muss von seinem PC aus über eine sichere VPN-Verbindung mit dem OpenVPN-Client auf unterschiedliche Appliances zugreifen.

In diesem Beispiel muss ein Benutzer von seinem PC aus über eine sichere VPN-Verbindung mit dem OpenVPN-Client auf unterschiedliche Appliances zugreifen. OpenVPN wird für die Verbindung mit der IP-Adresse verwendet, die vpn zugewiesen ist. Vpn stellt einen VPN-Tunnel mit dem PC des Benutzers her und leitet den gesamten eingehenden Datenverkehr an den sw-Port-Schalter weiter, der so konfiguriert ist, dass der Datenverkehr auf vier verschiedene Appliances innerhalb der Anwendung verteilt wird.

OpenVPN muss vor dem Zugriff auf eine CA AppLogic-Anwendung, die die VPN-Appliance wie in diesem Beispiel beschrieben verwendet, auf dem PC des Benutzers installiert werden. Die unten stehenden Schritte beschreiben, wie diese Anwendung konfiguriert wird und wie ein Benutzer über einem sicheren VPN-Tunnel auf die Anwendung zugreifen kann:

  1. Der Benutzer muss OpenVPN auf seinem PC installieren. OpenVPN ist hier oder hier erhältlich (es wurde berichtet, dass OpenVPN nicht mit Windows Vista funktioniert). Nach der Installation muss eine separate Konfigurationsdatei erstellt werden, die die Eigenschaften des OpenVPN-Tunnels definiert, über den der Benutzer auf die CA AppLogic-Anwendung zugreift. Die unten stehenden Schritte beschreiben, wie Sie dabei vorgehen.
  2. Es wird dringend empfohlen, den gemeinsamen Schlüsselmodus der VPN-Appliance zu verwenden. Konfigurieren Sie vpn folgendermaßen:

vpn:

Eigenschaftsname

Wert

Hinweise

ip_addr

28.36.85.21

IP-Adresse, die der VPN-Appliance zugewiesen ist

mode

Server

Server-Betriebsmodus

tunnel

gemeinsamer Schlüssel

Verwendung der Datei für gemeinsamen geheime Schlüssel

allowed_hosts

26.42.56.72

IP-Adresse des Client-PC

tcp_ports

0

Alle Ports sind zulässig

udp_ports

0

Alle Ports sind zulässig

3. Weisen Sie die gewünschten Protokolle und Ports zu, die über die sw-Appliance weitergeleitet werden müssen. In diesem Fall werden 4 Ports (122, 422, 522, 822) an die ssh-Ports der mit sw verbundenen Appliances weitergeleitet:

Eigenschaftsname

Wert

Hinweise

out1_protocol

tcp

TCP-Protokoll

out1_in_port

122

Eingehender Port 122

out1_out_port

22

Ausgehender Port 22

out4_protocol

tcp

TCP-Protokoll

out4_in_port

422

Eingehender Port 422

out4_out_port

22

Ausgehender Port 22

out5_protocol

tcp

TCP-Protokoll

out5_in_port

522

Eingehender Port 522

out5_out_port

22

Ausgehender Port 22

out8_protocol

tcp

TCP-Protokoll

out8_in_port

822

Eingehender Port 822

out8_out_port

22

Ausgehender Port 22

4. Starten Sie die Anwendung. Nachdem die Anwendung gestartet wurde, extrahieren Sie die Datei für gemeinsame geheime Schlüssel aus der VPN-Appliance:

grid> comp ssh APPLICATION:main.VPN
vpn> cat /mnt/data/server/secret.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
431e845f2ca67f2a31649b20e3ba3291
...
fe991cdbfe82525a9367b9afbfd0f922
-----END OpenVPN Static key V1-----

5. Fügen Sie die Inhalte von secret.key oben in eine neue Datei auf dem PC des Benutzers ein, und speichern Sie die Datei. Dies ist eine Datei für gemeinsame geheime Schlüssel, die für die Authentifizierung verwendet wird.

6. Bereiten Sie eine Client-OpenVPN-Konfigurationsdatei vor. Kopieren Sie die folgenden Zeilen in eine neue Datei auf dem PC des Benutzers (eine andere Datei als in Schritt 5):

dev tun
proto udp
resolv-retry infinite
persist-key
persist-tun
cipher AES-128-CBC
comp-lzo
keepalive 10 120
remote 11.22.33.44 1194
secret "C:\\Program Files\\OpenVPN\\sample-config\\secret.key"
nobind
ifconfig 169.254.215.101 169.254.215.102

In der Zeile "Ifconfig" können Sie beliebige IP-Adressen verwenden, sofern sie: a) aus dem 169.254.0.0/16-Netzwerkblock stammen, b) sich im gleichen /30-Teilnetz befinden, c) nicht die ersten oder letzten Adressen im /30-Teilnetz sind. b) und c) sind die Einschränkungen des OpenVPN-Client, der auf der Windows-Plattform ausgeführt wird.

7. Ersetzen Sie die Remote-IP-Adresse durch die IP-Adresse, die der vpn-Appliance zugewiesen ist. Ersetzen Sie den Pfad zur Datei für gemeinsame geheime Schlüssel in der Zeile "secret" durch den Pfad der in Schritt 5 erstellten Schlüsseldatei. Wenn Sie auf dem Benutzer-PC, auf dem OpenVPN installiert ist, mit einem Microsoft-Windows-Betriebssystem arbeiten, setzen Sie alle Zeilen in Anführungszeichen, und ersetzen Sie jeden Schrägstrich durch einen doppelten Schrägstrich.

8. Starten Sie den OpenVPN-Client:

c:\Programme\OpenVPN\bin\openvpn.exe --config "c:\client.ovpn"

Hinweis: Ersetzen Sie "c:\client.ovpn" durch den Pfad der in Schritt 6 erstellten Konfigurationsdatei.

9. Nach wenigen Sekunden wird die folgende Meldung von OpenVPN angezeigt:

Wed Jul 01 09:41:12 2009 Peer Connection Initiated with XX.XX.XX.XX:1194
Wed Jul 01 09:41:12 2009 Initialization Sequence Completed

Jetzt können Sie mithilfe der in der Konfigurationsdatei (in diesem Fall 169.254.215.102) definierten IP-Adresse auf die Appliances der CA AppLogic-Anwendung zugreifen. Port 169.254.215.102:122 wird von sw an Port 22 der srv1-Appliance weitergeleitet, ebenso wird Port 169.254.215.102:422 an die srv4-Appliance weitergeleitet usw. Führen Sie beispielsweise Folgendes aus:

ssh -p 122 root@169.254.215.102

um auf die erste Appliance zuzugreifen.

Bereitstellen von sicheren VPN-Tunneln für die MySQL-Replikation

Das folgende Diagramm zeigt ein Beispiel, wie Sie sichere VPN-Tunnel für die MySQL-Replikation bereitstellen können:

Beispiel: Zwei Anwendungen, die auf unterschiedlichen Grids (Grid A und Grid B) ausgeführt werden, wobei beide Anwendungen die gleiche MySQL-Datenbank verwenden, die über einen sicheren VPN-Tunnel repliziert wird.

Beispiel: Zwei Anwendungen, die auf unterschiedlichen Grids (Grid A und Grid B) ausgeführt werden, wobei beide Anwendungen die gleiche MySQL-Datenbank verwenden, die über einen sicheren VPN-Tunnel repliziert wird.

"vpn1" und "vpn2" werden mit umleitbarer IP-Adresse auf ihren externen Schnittstellen konfiguriert. "vpn1" wird konfiguriert, um einen Tunnel nach "vpn2" einzurichten, und umgekehrt.

"db1" von Grid A sendet Datenverkehr von "vpn1" zu Replikationszwecken. Dort wird er verschlüsselt und an "vpn2" weitergegeben, der den Datenverkehr entschlüsselt und an das Terminal "rin" von "db2" auf Grid B sendet. Die Replikation von "db2" auf Grid B nach "db1" auf Grid A verhält sich auf die gleiche Weise.

vpn1:

Eigenschaftsname

Wert

Hinweise

ip_addr

82.56.42.25

Der externen Schnittstelle zugewiesene Adresse.

mode

beide

Server-Betriebsmodus.

tunnel

SSH-Schlüssel

Verwenden von SSH-Schlüsseldateien.

auth_path

"/keys/vpn21.ssh.key"

Pfad zur SSH-Schlüsseldatei.

remote_host

92.72.57.95

Der externen Schnittstelle von "vpn2" zugewiesene Adresse.

tcp_ports

3306,22

Standardport für MySQL-Server und SSH.

ssh_ports

3306,22

Standardport für MySQL-Server und SSH.

vpn2:

Eigenschaftsname

Wert

Hinweise

ip_addr

92.72.57.95

Der externen Schnittstelle zugewiesene Adresse.

mode

beide

Server-Betriebsmodus.

tunnel

SSH-Schlüssel

Verwenden von SSH-Schlüsseldateien.

auth_path

"/keys/vpn21.ssh.key"

Pfad zur SSH-Schlüsseldatei.

remote_host

82.56.42.25

Der externen Schnittstelle von "vpn1" zugewiesene Adresse.

tcp_ports

3306,22

Standardport für MySQL-Server und SSH.

ssh_ports

3306,22

Standardport für MySQL-Server und SSH.

vpn1:

Eigenschaftsname

Wert

Hinweise

ip_addr

82.56.42.25

Der externen Schnittstelle zugewiesene Adresse.

mode

beide

Fungiert als Server und Client, lässt Replikation in beide Richtungen zu.

tunnel

Gemeinsamer geheimer IPSec-Schlüssel

Verschlüsseln von Datenverkehr mit IPSec.

auth_path

"/keys/ipsec.key"

Pfad zur gemeinsamen IPSec-Schlüsseldatei

remote_host

92.72.57.95

Der externen Schnittstelle von "vpn2" zugewiesene Adresse.

tcp_ports

3306,22

Standardport für MySQL-Server und SSH.

vpn2:

Eigenschaftsname

Wert

Hinweise

ip_addr

92.72.57.95

Der externen Schnittstelle zugewiesene Adresse.

mode

beide

Fungiert als Server und Client, lässt Replikation in beide Richtungen zu.

tunnel

Gemeinsamer geheimer IPSec-Schlüssel

Verschlüsseln von Datenverkehr mit IPSec.

auth_path

"/keys/server/ipsec.key"

Pfad zur gemeinsamen IPSec-Schlüsseldatei.

remote_host

82.56.42.25

Der externen Schnittstelle von "vpn1" zugewiesene Adresse.

tcp_ports

3306,22

Standardport für MySQL-Server und SSH.

Hinweise

OpenVPN muss auf dem Client-Rechner verwendet werden, um auf einen sicheren VPN-Tunnel zuzugreifen, der von der VPN-Appliance verfügbar gemacht wird.

In der Appliance verwendete Drittanbieter-/Open-Source-Software von Drittanbietern

VPN verwendet zusätzlich zu den Drittanbieter-Open-Source-Paketen der jeweiligen Basisklasse LUX5 die folgenden Drittanbieter-Open-Source-Pakete.

Software

Version

Geändert

Lizenz

Hinweise

IPsec-Tools

0.6.5-13.el5_3.1

Nein

BSD

homepage

iptables

1.3.5-5.3.el5_4.1

Nein

GPLv2

N/A

iptables-ipv6

1.3.5-5.3.el5_4.1

Nein

GPLv2

N/A

LZO

2.03

Nein

GPLv2

homepage

OpenVPN

2.1.4

Nein

GPLv2

homepage

samba-client

3.0.33-3.15.el5_4

Nein

GPLv2

N/A

samba-common

3.0.33-3.15.el5_4

Nein

GPLv2

N/A

iproute2

2.6.29-1

Nein

GPLv2

homepage

autossh

1.4b

Nein

BSD

homepage