Aktuelle Version: 3.1.3-1
Auf einen Blick |
|
Katalog |
System |
Kategorie |
Gateways |
Benutzer-Volumes |
ja |
Min. Speicher |
96M |
Betriebssystem |
Linux |
Einschränkungen |
no |
VPN ist eine VPN-Appliance (VPN = Virtuelles privates Netzwerk), die in IPv4- und IPv6-Netzwerken arbeitet und für die Bereitstellung sicherer und zuverlässiger Tunnel für Inter-Grid-Kommunikation und Remote-Zugriff auf Anwendungen und Appliances konzipiert ist. VPN kann auch ohne den Einsatz von VPN-Tunnel funktionieren. In diesem Fall fungiert es als kombiniertes Cleartext-IN/OUT-Gateway. VPN kann ferner zur nahtlosen Verbindung von IPv4- und IPv6-Grids von CA AppLogic® verwendet werden. VPN basiert auf den Open-Source-Softwarepakten OpenVPN, OpenSSH und Raccoon.
VPN hat drei grundlegende Betriebsarten: Server, Client und beides.
VPN unterstützt IPSec, freigegebene Schlüsseldateien, SSL-Zertifikate und SSH-Schlüsseldateien für Authentifizierung und Verschlüsselung. Ein normaler OpenVPN/OpenSSH-Client kann auf einer Remote-Arbeitsstation für die Verbindung mit VPN verwendet werden, das wiederum den sicheren Zugriff auf die internen Komponenten einer Anwendung ermöglicht, die auf CA AppLogic® ausgeführt wird. Die VPN-Appliance unterstützt die Generierung von freigegebenen Schlüsseldateien, SSL-Zertifikaten und SSH-Schlüsseln.
Für den Remote-Zugriff auf eine CA AppLogic®-Anwendung über einen sicheren VPN-Tunnel mittels VPN können Sie die OpenVPN-Software auf der Client-Seite oder OpenSSH auf dem Client-Rechner verwenden (oder eine andere kompatible Software).
Ressource |
Minimum |
Maximum |
Standard |
CPU |
0.1 |
16 |
0.2 |
Speicher |
96 MB |
32 GB |
96 MB |
Bandbreite |
1 Mbit/s |
2 Gbit/s |
250 Mbit/s |
name |
dir |
protocol |
description |
clt |
in |
Alle |
Häufige Eingabe für den gesamten eingehenden Datenverkehr, der durch die externe Schnittstelle geleitet werden soll, wenn VPN als Client ausgeführt wird. Wenn VPN so konfiguriert ist, dass auf der externen Schnittstelle ein Tunnel erstellt wird, werden an clt gesendete Pakete zu einem hergestellten Tunnel geleitet oder beendet, wenn der Tunnel nicht funktionsfähig ist. |
srv |
out |
Alle |
Häufige Eingabe für den gesamten ausgehenden Datenverkehr, der durch die externe Schnittstelle geleitet werden soll, wenn VPN als Server ausgeführt wird. Der gesamte Datenverkehr wird mithilfe der Eigenschaften tcp_ports, udp_ports, ssh_ports und aux_protocols gefiltert, bevor er durch srv geleitet wird. |
fs |
out |
NFS |
Zugriff auf ein Netzwerkdateisystem für freigegebene Dateispeicherung, wobei Lese-/Schreibzugriff auf die Dateien über NFS bereitgestellt wird. Dieses Volume wird als /mnt/fs im Dateisystemspeicherbereich der Appliance geladen und zum Speichern von Verschlüsselungscodes und Zertifikaten verwendet. Der verbundene Server muss über eine "/mnt/data" genannte Freigabe mit Lese-/Schreibzugriff verfügen. Weder das Daten-Volume noch das von NFS bereitgestellte Volume wird benötigt, wenn VPN im Cleartext-Modus ausgeführt wird. Dieses Terminal kann unverbunden gelassen werden, wenn es nicht verwendet wird. |
log |
out |
CIFS |
Zugriff auf ein CIFS-basiertes Netzwerkdateisystem zum Speichern von Zugriffs- und Fehlerprotokollen. Der verbundene Server muss anonyme Anmeldungen zulassen und eine benannte Freigabe mit Lese-/Schreibzugriff haben. Dieses Terminal kann unverbunden gelassen werden, wenn es nicht verwendet wird. |
mon |
out |
CCE |
Wird verwendet, um Leistungs- und Ressourcenverwendungsstatistik zu senden. Keine Verbindung erforderlich, sofern nicht verwendet. |
Allgemeine Eigenschaften
Eigenschaftsname |
Typ |
Beschreibung |
ip_addr |
ip_owned |
Definiert die primäre IPv4-Adresse der externen Schnittstelle des Gateways. Diese Eigenschaft ist obligatorisch, wenn VPN nur im IPv4-Modus betrieben wird. |
netmask |
IP-Adresse |
Definiert die IPv4-Netzwerkmaske der externen Schnittstelle. Diese Eigenschaft ist obligatorisch, wenn VPN nur im IPv4-Modus betrieben wird. |
gateway |
IP-Adresse |
Definiert das Standard-IPv4-Netzwerkgateway (Router) für die externe Schnittstelle. Wenn diese Eigenschaft leer gelassen wird, kann nur auf Hosts auf dem gleichen Teilnetz wie ip_addr/netmask zugegriffen werden. Standard: leer |
ipv6_addr |
string |
Definiert die IPv6-Adresse der externen Schnittstelle des Gateways. Die IPv6-Adresse wird in standardmäßiger Adressnotation in acht Gruppen aus vier Hexadezimalziffern angegeben. Eine oder mehrere aufeinander folgende Gruppen des Werts 0 können durch zwei Doppelpunkte (::) ersetzt werden. Das Format ist Adresse/Netzmaske. Beispiel: fc00:1234:5678::12/64. Diese Eigenschaft ist obligatorisch,, wenn VPN im reinen IPv6-Modus ausgeführt wird. |
ipv6_gateway |
string |
Definiert das standardmäßige IPv6-Netzwerk-Gateway (Router) für die externe Schnittstelle. Wenn diese Eigenschaft leer gelassen wird, kann nur auf Hosts auf dem gleichen Teilnetz wie ipv6_addr zugegriffen werden. Standard: leer |
dns1 |
IP-Adresse |
Definiert den primären DNS-Server, an den VPN DNS-Anfragen weiterleitet. Wenn diese Eigenschaft leer gelassen wird, verwendet VPN die Stamm-DNS-Server. Standard: leer |
dns2 |
IP-Adresse |
Definiert den Sicherungs-DNS-Server, an den VPN DNS-Anfragen weiterleitet, wenn der primäre Server nicht verfügbar ist. Wenn diese Eigenschaft leer gelassen wird, verwendet VPN keinen Sicherungs-DNS-Server. Standard: leer |
Wichtig! Mindestens ein Paar Adressen (IPv4 oder IPv6) muss definiert werden.
VPN-Eigenschaften
Eigenschaftsname |
Typ |
Beschreibung |
mode |
String |
Betriebsmodus. Mögliche Werte sind: |
tunnel |
String |
Typ des erstellenden Tunnels. Mögliche Werte sind: |
auth_path |
String |
Authentifizierungsinformationen für den Tunnel. Im Shared Secret-Modus ist dies ein relativer Pfad zur Shared Secrets-Datei auf dem Daten-Volume (z. B. "secret.key" für die Datei "client/secret.key"). Für den Zertifikatsmodus ist dies ein relativer Pfad, einschließlich des Dateinamens ohne Erweiterung, zum Zertifikats-/Schlüsseldateipaar. Beispiel: Wenn die Zertifikatsdateien client1-2009.crt und client1-2009.key sich im Unterverzeichnis /client des Daten-Volumes befinden, muss client1-2009 hier angegeben werden. Wenn der Tunnel cleartext ist, wird diese Eigenschaft ignoriert. Wenn es sich bei dem Tunnel um einen SSH-Schlüssel handelt, gibt diese Eigenschaft den Pfad und Dateinamen zur öffentlichen (für den VPN-Server) oder privaten (für den VPN-Client) SSH-Schlüsseldatei an (z. B. "/1/ssh.key" für die öffentliche Schlüsseldatei "/client/1/ssh.key"). |
log_level |
String |
VPN-Protokollierungsebene. Mögliche Werte sind: |
Server-Eigenschaften
allowed_hosts |
String |
Liste von Hosts und/oder Teilnetzen, die Verbindungszugriff haben. Trennen Sie mehrere Einträge mit Leerzeichen oder Kommas. Beispiel für ein unterstütztes Format: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0 fc00:1234::12/64. |
tcp_ports |
String |
Port-Nummern oder Port-Bereiche, die auf dem srv-Terminal zulässig sind. Akzeptiert eine Zeichenfolge von komma- bzw. leerzeichengetrennten Werten. Port-Bereiche müssen als "lower_port:higher_port" mit Doppelpunkt oder Gedankenstrich als Trennzeichen angegeben werden (zum Beispiel 80,81,82:85 86-90). Ein besonderer Wert von 0 gibt an, dass alle tcp-Ports akzeptiert werden. |
udp_ports |
String |
Wie tcp_ports, aber für UDP-Protokoll. |
aux_protocols |
String |
Eine Zeichenfolge von durch Komma oder Leerzeichen getrennte zusätzliche IP-Protokoll-Nummern, die zugelassen sind (z. B. 6 für TCP, 47 für GRE). Separate Protokolle können durch ihre Namen angegeben werden (z. B. "gre" anstelle von "47"). Siehe http://www.iana.org/assignments/protocol-numbers for assignment. |
Client-Eigenschaften
remote_host |
String |
Definiert den Remote-Host, zu dem der gesamte Datenverkehr geleitet werden soll. Dies kann der DNS-Name des Host oder seine IPv4- oder IPv6-Adresse in Punktnotation sein. Diese Eigenschaft ist obligatorisch. |
dns_poll |
Ganzzahl |
Das Abfrageintervall in Sekunden, das VPN beim Überprüfen der Zuordnung des DNS-Namens von remote_host zur IP-Adresse verwendet (wird nur verwendet, wenn remote_host als DNS-Name angegeben wird). Auf 0 festlegen, um Abrufen zu deaktivieren und nicht zu versuchen, Änderungen festzustellen. |
ssh_ports |
String |
Eine clientseitige Eigenschaft für den SSH-Schlüsselmodus, die angibt, was tcp-Ports zum VPN-Server weiterleiten. Port-Bereiche werden nicht unterstützt, Ports können durch Leerzeichen oder Kommas getrennt werden. |
Name |
Beschreibung |
Daten |
Ein Daten-Volume mit Lese-/Schreibberechtigung (Platzhalter), das Konfigurationsdateien und Zertifikatsdateien enthält. Dieses Volume wird nicht benötigt, wenn der fs-Terminal angeschlossen ist. Wenn fs angeschlossen ist und ein Daten-Volume bereitgestellt wird, kann VPN nicht starten und protokolliert eine Fehlermeldung. Alle Dateien, die für VPN-Server-Vorgänge notwendig sind, sind im Unterverzeichnis /server/ des Datenspeichers gespeichert. Alle Dateien, die für VPN-Client-Vorgänge notwendig sind, sind im Unterverzeichnis /client/ gespeichert. |
Die VPN-Appliance meldet die folgenden benutzerdefinierten Zähler über das Terminal "mon".
Zählername |
Beschreibung |
server_bytes_in |
Gesamtanzahl Byte, die von VPN empfangen wurde. |
server_bytes_out |
Gesamtanzahl Byte, die von VPN gesendet wurde. |
client_bytes_in |
Gesamtanzahl Byte, die von Client-Tunneln empfangen wurde. |
client_bytes_out |
Gesamtanzahl Byte, die an Client-Tunnel gesendet wurde. |
clients |
Anzahl Clients, die mit VPN verbunden sind. |
Zwei Testanwendungen befanden sich auf demselben CA AppLogic®-Grid. 100 Mbit-Bandbreite wurde beiden VPN-Appliances (Client und Server) und Server- und Client-Appliances zugewiesen. Mehrere Objekte, jeweils 1 Megabyte groß, wurden abgerufen, 10 Objekte gleichzeitig, 60 Sekunden lang.
Modus |
Bandbreite, Mbit/Sekunde |
Objektgröße |
Anfragen/Sekunde |
Übertragungsrate, Megabyte/Sekunde |
Zertifikat |
100 |
1 MB |
12.5667 |
12.56 |
Gemeinsamer Schlüssel |
100 |
1 MB |
12.5166 |
12.51 |
SSH-Schlüssel |
100 |
1 MB |
12.7667 |
12.76 |
Klartext |
100 |
1 MB |
13.0329 |
13.03 |
Im Fall von Appliance-Startfehlern können die folgenden Fehler im Systemprotokoll protokolliert werden:
Fehlermeldung |
Beschreibung |
Failed to mount the data volume |
VPN konnte das Daten-Volume nicht laden. Überprüfen Sie, ob das Volume formatiert und verfügbar ist. |
Failed to generate server_key |
VPN konnte die Datei für gemeinsame geheime Schlüssel nicht generieren. Wahrscheinlich ist das Daten-Volume zu klein, oder wurde schreibgeschützt geladen. |
Failed to launch OpenVPN server |
VPN konnte OpenVPN-Server nicht starten. Wenden Sie sich an den Support von CA Technologies. |
Failed to generate certificates. |
VPN konnte Zertifizierungsstelle nicht erstellen und das notwendige Zertifikat für den Serverbetriebsmodus nicht generieren. Wahrscheinlich ist das Daten-Volume zu klein, oder wurde schreibgeschützt geladen. |
Failed to generate DH file. |
VPN konnte die Diffie-Hellman-Schlüsseldatei nicht generieren. Wahrscheinlich ist das Daten-Volume zu klein, oder wurde schreibgeschützt geladen. |
Secrets file client_auth does not exist |
Die Datei "client_auth", die in der Eigenschaft "auth" definiert ist, ist nicht vorhanden. Überprüfen Sie den Pfad und Namen der Datei. |
Remote server address is empty for |
Entfernte VPN-Serveradresse ist für Tunnel X leer. |
Failed to launch OpenVPN for clientX tunnel |
VPN konnte OpenVPN-Software für Client-Tunnel X nicht starten. Wahrscheinlich sind einige Eigenschaften oder Schlüsseldateien ungültig. |
Certificate file client_auth.crt does not exist |
VPN konnte eine Zertifikatsdatei nicht finden. Ungültiger Pfad oder Dateiname in der Eigenschaft "auth" für den Betriebsmodus des Zertifikat-Clients angegeben. |
Key file client_auth.key does not exist |
VPN konnte eine Schlüsseldatei nicht finden. Ungültiger Pfad oder Dateiname in der Eigenschaft "auth" für den Betriebsmodus des Zertifikat-Clients angegeben. |
Certification Authority certificate ca_cert is missing |
VPN konnte das Zertifikat der Zertifizierungsstelle nicht finden. Es sollte sich in der Datei /CA/ca.crt auf dem Daten-Volume befinden. |
Klartext
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. In diesem Modus werden keine VPN-Tunnel erstellt, und ein Datenspeicher wird nicht benötigt (weder ein Daten-Volume noch eine NAS-Appliance ist mit dem Terminal "fs" verbunden). Dieser Modus funktioniert in IPv4 und IPv6.
Auf der Server-VPN-Appliance wird auf der externen Schnittstelle eingegangener Datenverkehr über die Eigenschaften "tcp_ports", "udp_ports" und "aux_protocols" gefiltert und an die Serverschnittstelle weitergeleitet.
Auf der Client-VPN-Appliance wird auf der Client-Schnittstelle eingegangener Datenverkehr an den Remote-VPN-Server weitergeleitet, der durch die Eigenschaft "remote_host" angegeben ist.
Eigenschaften, die auf der Serverseite konfiguriert werden müssen: ip_addr, netmask, gateway, mode, tunnel, allowed_hosts, tcp_ports, udp_ports, aux_protocols.
Eigenschaften, die auf der Client-Seite konfiguriert werden müssen: ip_addr, netmask, gateway, mode, tunnel, remote_host.
Die serverseitige Eigenschaft "remote_host" muss mit der Adresse des Client konfiguriert werden, wenn der IPv6-Modus verwendet wird.
Zertifikat
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 sowohl in IPv4 als auch in IPv6.
Beim Start generiert die Server-Appliance erforderliche Zertifikate und Schlüsseldateien, wenn diese Dateien bereits nicht vorhanden sind. Diese Dateien können mit dem security.sh-Skript erneut generiert werden, das sich im Verzeichnis "/appliance/" befindet. Vor dem Konfigurieren eines VPN-Clients müssen Zertifikate dafür generiert werden. Ein Benutzer kann sich bei der ausgeführten VPN-Server-Appliance anmelden und ein Client-Schlüsselpaar folgendermaßen generieren:
grid> comp login VPN-1:main.VPN CentOS Version 5 (Endversion) [VPN-1:main.VPN ~]# /appliance/security.sh generate_client Generated client SSL certificate and key file. ============================================== Diese Dateien mit CA-Zertifikatsdatei müssen auf den VPN-Server kopiert werden, und zwar in "/client/" des Daten-Volumes oder des in FS bereitgestellten Volumes. Der Pfad zu Client-Dateien (client.829de5afcac564b3) muss in der Eigenschaft "auth_path" festgelegt werden. Speicherort der Dateien: Client-Zertifikat: /mnt/fs/server/client.829de5afcac564b3.crt Client-Schlüsseldatei: /mnt/fs/server/client.829de5afcac564b3.key CA-Zertifikatsdatei unter /mnt/fs/server/ca.crt gefunden
Das Client-Zertifikat und die Schlüsseldatei müssen in die Client-VPN-Appliance in das Unterverzeichnis "/client/" des Datenspeichers kopiert werden, und "auth_path" muss auf den entsprechenden Wert festgelegt werden, in diesem Fall "client.829de5afcac564b3". Das CA-Zertifikat vom VPN-Server (/mnt/fs/server/ca.crt) muss auch in das Unterverzeichnis "/client/" auf der Client-Appliance kopiert und "ca.crt" genannt werden. Jede Client-VPN-Appliance benötigt ein eigenes Zertifikat.
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.
Dieser Modus unterstützt nur den einzelnen Server - Szenario mit einem einzigen Client, bei dem der Zugriff auf den VPN-Server von jeweils nur einem einzigen Client erlaubt ist. Ein Datenspeicher ist erforderlich (entweder ein Daten-Volume oder eine NAS-Appliance, mit dem Terminal "fs" verbunden). Dieser Modus funktioniert sowohl in IPv4 als auch in IPv6.
Beim Starten generiert die Server-Appliance eine Datei für gemeinsame geheime Schlüssel namens /server/secret.key, sofern diese Datei noch nicht vorhanden ist. Diese Datei kann mit dem Skript security.sh erneut generiert werden, das im Verzeichnis /appliance/ gespeichert ist. Bevor Sie VPN-Clients konfigurieren, muss diese Datei für gemeinsame geheime Schlüssel in den entsprechenden Datenspeicher in das Unterverzeichnis /client/ kopiert werden. Um eine neue Datei für gemeinsame geheime Schlüssel zu generieren, kann ein Benutzer sich bei der ausgeführten VPN-Server-Appliance anmelden und den folgenden Befehl ausgeben:
[VPN-1:main.VPN server]# /appliance/security.sh generate_secret Generated OpenVPN shared secrets file. ====================================== Diese Datei muss auf den VPN-Server in das Unterverzeichnis "/server/" des Daten-Volumes oder des in FS bereitgestellten Volumes kopiert werden. Außerdem muss die Datei auf den VPN-Client in das Unterverzeichnis "/client/" des Daten-Volumes oder des in FS bereitgestellten Volumes kopiert werden. Der entsprechende Pfad muss in der Eigenschaft "auth_path" des VPN-Clients festgelegt werden. Speicherort der Datei: /mnt/fs/server/secret.key
Eine neu generierte Datei für gemeinsame geheime Schlüssel überschreibt die alte Datei, sofern vorhanden. Diese Datei für gemeinsame geheime Schlüssel /mnt/fs/server/secret.key muss auf die Client-VPN-Appliance in das Unterverzeichnis "/client/" des Datenspeichers kopiert werden. Für die Eigenschaft "auth_path" muss der korrekte Wert festgelegt werden, in diesem Fall secret.key. Es können mehrere Client-VPN-Appliances konfiguriert werden, allerdings kann nur jeweils eine Appliance angeschlossen 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.
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). Nur TCP-Datenverkehr kann durch den SSH-Tunnel geleitet werden, daher wird nur die Eigenschaft "tcp_ports" auf der Serverseite verwendet. Port-Bereiche werden nicht unterstützt - jeder Port, der weitergeleitet werden soll, muss ausdrücklich in der Eigenschaft "ssh_ports" auf der Client-Seiten angegeben werden. Dieser Modus funktioniert sowohl in IPv4 als auch in IPv6.
Der VPN-Server generiert das standardmäßige SSH-Schlüsselpaar beim Start; Standardschlüssel befinden sich an folgendem Speicherort: server key (public key): server/ssh-server.pub client key (private key): server/ssh-client.key Zusätzliche Schlüssel können manuell mit dem Skript security.sh generiert werden:
[VPN-1:main.VPN ~]# /appliance/security.sh generate_ssh Generated SSH keypair. ====================== Der öffentliche Schlüssel muss auf den VPN-Server in das Unterverzeichnis "/server/" des Daten-Volumes oder des in FS bereitgestellten Volumes kopiert werden. Der private Schlüssel muss auf den VPN-Client in das Unterverzeichnis "/client/" des Daten-Volumes oder des in FS bereitgestellten Volumes kopiert werden. Der Pfad für die Schlüsseldateien muss in der Eigenschaft "auth_path" sowohl auf dem VPN-Client als auch auf dem Server festgelegt werden. Speicherort der Dateien: Öffentlicher Schlüssel: /mnt/fs/server/ssh.11179ebbfa3f6852.pub Privater Schlüssel: /mnt/fs/server/ssh.11179ebbfa3f6852.key
Der öffentliche Schlüssel muss auf den VPN-Server in das Unterverzeichnis "/server/" kopiert werden; der private Schlüssel muss auf den Client in das Unterverzeichnis "/client/" kopiert werden. Die Eigenschaft "auth_path" muss sowohl auf dem Client als auch auf dem Server festgelegt werden. Wenn "auth_path" leer ist, wird der SSH-Standardschlüssel verwendet.
Auf der Server-VPN-Appliance wird auf der externen Schnittstelle eingegangener Datenverkehr über die Eigenschaft "ssh_ports" entschlüsselt und an die Serverschnittstelle weitergeleitet. Es wird nur TCP-Port-Weiterleitung unterstützt. Die Eigenschaft "auth_path" definiert den zu verwendenden öffentlichen SSH-Schlüssel. Wenn die Appliance sowohl im Client- als auch im Servermodus ausgeführt wird, sollten der öffentliche und der private Schlüssel den gleichen Namen tragen und in den Unterverzeichnissen /server/ und /client/ gespeichert sein. Die Eigenschaft "ssh_ports" muss auf dem Server und auf dem Client auf die gleiche Weise konfiguriert werden.
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, auth_path, tcp_ports.
Eigenschaften, die auf der Serverseite konfiguriert werden müssen: ip_addr, netmask, gateway (bzw. entsprechende IPv6-Eigenschaften), mode, tunnel, remote_host, auth_path, ssh_ports.
Wichtig! SSH-Server-Server-Modus. Zwei VPN-Appliances können in beiden Modi konfiguriert und miteinander verbunden werden. Um diesen Modus zu verwenden, müssen Appliances auf besondere Weise konfiguriert werden:
Nehmen wir an, dass zwei Appliances namens VPN1 und VPN2 existieren: 1. Erstellen Sie 2 Sets mit Dateien mit öffentlichen/privaten Schlüsseln (1.key/1.pub, 2.key/2.pub, mit Skript "/appliance/security.sh generate_ssh"). 2. Konfigurieren Sie die Eigenschaft "auth_path" auf beiden Appliances mit "ssh.key". 3. Kopieren Sie 2.pub in VPN1:/mnt/data/server/ssh.key (oder in Datei "ssh.key" in Unterverzeichnis "/server/" des NAS-Laufwerks) (öffentlicher Schlüssel in Unterverzeichnis "/server/"). 4. Kopieren Sie 2.key in VPN2:/mnt/data/client/ssh.key (privater Schlüssel in Unterverzeichnis "/client/"). 5. Kopieren Sie 1.pub in VPN2:/mnt/data/server/ssh.key (öffentlicher Schlüssel in Unterverzeichnis "/server/"). 6. Kopieren Sie 1.key in VPN1:/mnt/data/client/ssh.key (privater Schlüssel in Unterverzeichnis "/client/").
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 Start generiert die Server-Appliance erforderliche Zertifikate und Schlüsseldateien, wenn diese Dateien bereits nicht vorhanden sind. Diese Dateien können mit dem security.sh-Skript erneut generiert werden, das sich im Verzeichnis "/appliance/" befindet. Vor dem Konfigurieren eines VPN-Clients müssen Zertifikate dafür generiert werden. Ein Benutzer kann sich bei der ausgeführten VPN-Server-Appliance anmelden und ein Client-Schlüsselpaar folgendermaßen generieren:
grid> comp login VPN-1:main.VPN CentOS Version 5 (Endversion) [VPN-1:main.VPN ~]# /appliance/security.sh generate_client Generiertes SSL-Client-Zertifikat und Schlüsseldatei. ============================================== Diese Dateien mit CA-Zertifikatsdatei müssen auf den VPN-Server kopiert werden, und zwar in "/client/" des Daten-Volumes oder des in FS bereitgestellten Volumes. Der Pfad zu Client-Dateien (client.829de5afcac564b3) muss in der Eigenschaft "auth_path" festgelegt werden. Speicherort der Dateien: Client-Zertifikat: /mnt/fs/server/client.829de5afcac564b3.crt Client-Schlüsseldatei: /mnt/fs/server/client.829de5afcac564b3.key CA-Zertifikatsdatei unter /mnt/fs/server/ca.crt gefunden
Das Client-Zertifikat und die Schlüsseldatei müssen in die Client-VPN-Appliance in das Unterverzeichnis "/client/" des Datenspeichers kopiert werden, und "auth_path" muss auf den entsprechenden Wert festgelegt werden, in diesem Fall "client.829de5afcac564b3". Das CA-Zertifikat vom VPN-Server (/mnt/fs/server/ca.crt) muss auch in das Unterverzeichnis "/client/" auf der Client-Appliance kopiert und "ca.crt" genannt werden. Jede Client-VPN-Appliance benötigt ein eigenes Zertifikat.
Wichtig! Eine Ausnahme besteht dann, wenn VPN in beiden Modi verwendet wird. In diesem Fall müssen alle Zertifikate (Client und Server) von der gleichen VPN-Instanz generiert und zusammen mit dem Zertifikat "ca.crt" an andere Instanzen verteilt 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.
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.
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, 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 |
Das folgende Diagramm zeigt ein Beispiel, wie Sie Remote-Zugriff auf interne CA AppLogic®-Appliances konfigurieren:
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:
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.
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.
"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. |
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 LUX6 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 |
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|