Ce mode prend en charge un scénario "serveur unique - clients multiples" permettant d'accéder au serveur VPN à partir de plusieurs emplacements. Un magasin de données est requis (un volume de données ou une appliance NAS connectée au terminal fs). Ce mode est uniquement compatible avec IPv4.
Au démarrage, l'appliance de serveur extrait d'abord la première ligne du fichier spécifié dans la propriété auth_path et l'utilise en tant que clé partagée. Ce fichier doit être présent sur les deux parties. Avant de configurer des clients VPN, ce fichier de secrets partagés doit être copié dans son magasin de données dans le sous-répertoire /client/.
Sur l'appliance VPN du serveur, le trafic reçu sur l'interface externe est déchiffré, filtré via les propriétés tcp_ports, udp_ports et aux_protocols, puis renvoyé à l'interface srv.
Sur l'appliance VPN du client, tout le trafic reçu sur l'interface clt est chiffré et envoyé au serveur VPN distant spécifié dans la propriété remote_host.
Propriétés devant être configurées côté serveur : ip_addr, netmask, gateway (ou propriétés IPv6 correspondantes), mode, tunnel, allowed_hosts, tcp_ports, udp_ports et aux_protocols.
Propriétés devant être configurées côté client : ip_addr, netmask, gateway (ou propriétés IPv6 correspondantes), mode, tunnel, remote_host et auth_path.
Le diagramme suivant indique comment configurer un accès distant à un service externe :

Dans cet exemple, une appliance Web s'exécutant sur la grille A accède à une base de données MySQL distante s'exécutant sur la grille B sur un tunnel VPN sécurisé
vpn1 sur la grille A est configuré pour se connecter à l'adresse IP affectée à vpn2 sur la grille B. Le terminal srv de vpn1 et le terminal clt de vpn2 restent déconnectés. Les interfaces externes de vpn1 et vpn2 sont configurées avec des adresses IP routables appropriées.
Exemple de configuration de propriété :
vpn1 :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
25.74.63.87 |
IP externe utilisée pour vpn1 |
|
netmask |
255.255.255.0 |
netmask |
|
gateway |
25.74.63.1 |
gateway |
|
mode |
client |
Mode de fonctionnement client |
|
tunnel |
Certificat IPSec |
Le trafic est codé à l'aide d'IPSec. |
|
auth_path |
client-7575 |
Nom de la paire de fichiers certificat/clé |
|
remote_host |
12.12.12.12 |
IP externe affectée à l'interface externe de vpn2 |
vpn2 :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
12.12.12.12 |
IP externe utilisée pour vpn2 |
|
netmask |
255.255.255.0 |
netmask |
|
gateway |
12.12.12.1 |
gateway |
|
mode |
serveur |
Mode de fonctionnement Serveur |
|
tunnel |
Certificat IPSec |
Le trafic est codé à l'aide d'IPSec. |
|
allowed_hosts |
25.74.63.87 |
Autorise uniquement les connexions à partir de vpn1 |
|
tcp_ports |
3306 |
Port par défaut pour MySQL Server. |
Le diagramme suivant indique comment configurer un accès distant aux appliances CA AppLogic internes :

Dans cet exemple, un utilisateur doit accéder, à partir de son PC, à plusieurs appliances différentes via une connexion VPN sécurisée à l'aide du client OpenVPN. OpenVPN permet de se connecter à l'adresse IP affectée à VPN. VPN établit un tunnel VPN avec le PC de l'utilisateur et transfère tout le trafic entrant au commutateur de port sw configuré pour répartir le trafic entre quatre appliances différentes de l'application.
OpenVPN doit être installé sur le PC de l'utilisateur avant d'accéder à une application CA AppLogic qui utilise l'appliance VPN décrite dans cet exemple. Les étapes ci-dessous décrivent comment cette application est configurée et ce que doit faire l'utilisateur pour accéder à l'application via un tunnel VPN sécurisé :
vpn:
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
28.36.85.21 |
Adresse IP affectée à l'appliance VPN |
|
mode |
serveur |
Mode de fonctionnement Serveur |
|
tunnel |
secret partagé |
Utilisation du fichier de secret partagé |
|
allowed_hosts |
26.42.56.72 |
Adresse IP du PC client |
|
tcp_ports |
0 |
Tous les ports sont autorisés. |
|
udp_ports |
0 |
Tous les ports sont autorisés. |
3. Affectez les protocoles et les ports que vous souhaitez transférer vers l'appliance sw. Dans ce cas, 4 ports (122,422,522,822) sont transférés aux ports de ssh des appliances connectées à sw :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
out1_protocol |
tcp |
Protocole TCP |
|
out1_in_port |
122 |
Port d'entrée 122 |
|
out1_out_port |
22 |
Port de sortie 22 |
|
out4_protocol |
tcp |
Protocole TCP |
|
out4_in_port |
422 |
Port d'entrée 422 |
|
out4_out_port |
22 |
Port de sortie 22 |
|
out5_protocol |
tcp |
Protocole TCP |
|
out5_in_port |
522 |
Port d'entrée 522 |
|
out5_out_port |
22 |
Port de sortie 22 |
|
out8_protocol |
tcp |
Protocole TCP |
|
out8_in_port |
822 |
Port d'entrée 822 |
|
out8_out_port |
22 |
Port de sortie 22 |
4. Démarrez l'application. Une fois l'application démarrée, extrayez le fichier de secrets partagés de l'appliance VPN :
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. Collez le contenu de secret.key ci-dessus dans un nouveau fichier sur le PC de l'utilisateur et enregistrez le fichier. Il s'agit d'un fichier de secrets partagés utilisé pour l'authentification.
6. Préparez un fichier de configuration OpenVPN pour le client. Copiez les lignes suivantes dans un nouveau fichier sur le PC de l'utilisateur (un fichier distinct de celui de l'étape 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
Les adresses IP de la ligne ifconfig peuvent être définies librement aux conditions suivantes : a) elles proviennent du bloc réseau 169.254.0.0/16 ; b) elles figurent dans le même sous-réseau /30 ; c) elles ne sont ni la première ni la dernière adresse du sous-réseau /30. Les restrictions B et C concernent le client OpenVPN s'exécutant sur une plate-forme Windows.
7. Remplacez l'adresse IP distante par l'adresse IP affectée à l'appliance VPN. Dans la ligne relative au secret, remplacez le chemin d'accès au fichier de secrets partagés par le chemin d'accès au fichier de clé créé à l'étape 5. Si vous utilisez un système d'exploitation Microsoft Windows sur le PC de l'utilisateur contenant l'installation d'OpenVPN, entourez toutes les lignes de guillemets et remplacez toutes les barres obliques par des barres obliques doubles.
8. Lancez le client OpenVPN :
c:\program files\OpenVPN\bin\openvpn.exe --config "c:\client.ovpn"
Remarque : Remplacez c:\client.ovpn par le chemin d'accès du fichier de configuration créé à l'étape 6.
9. Après quelques secondes, le message suivant d'OpenVPN s'affiche :
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
Vous pouvez désormais accéder aux appliances de l'application CA AppLogic à l'aide de l'adresse IP définie dans le fichier de configuration (dans ce cas, 169.254.215.102). Le port 169.254.215.102:122 est réacheminé par sw vers le port 22 de l'appliance de srv1. De la même manière, le port 169.254.215.102:422 est réacheminé vers l'appliance srv4, etc. Par exemple, exécutez
ssh -p 122 root@169.254.215.102
pour accéder à la première appliance.
Le diagramme suivant fournit un exemple de la façon dont vous pouvez fournir des tunnels VPN sécurisés pour la réplication MySQL :

Dans cet exemple, deux applications s'exécutent sur des grilles différentes (grille A et grille B) dans lesquelles les deux applications utilisent la même base de données MySQL qui est répliquée via un tunnel VPN sécurisé.
vpn1 et vpn2 sont configurés avec l'adresse IP routable sur leurs interfaces externes. vpn1 est configuré pour établir un tunnel vers vpn2 et inversement.
db1 de la grille A envoie le trafic vers vpn1 à des fins de réplication. A cet emplacement, il est chiffré et transmis à vpn2 qui déchiffre le trafic et l'envoie au terminal rin de db2 sur la grille B. La réplication de db2 sur la grille B vers db1 sur la grille A se comporte de la même manière.
vpn1 :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
82.56.42.25 |
Adresse affectée à l'interface externe. |
|
mode |
both |
Mode de fonctionnement Serveur. |
|
tunnel |
Clé SSH |
Utilisation des fichiers de clé SSH. |
|
auth_path |
"/keys/vpn21.ssh.key" |
Chemin d'accès au fichier de clé SSH. |
|
remote_host |
92.72.57.95 |
Adresse affectée à l'interface externe de vpn2. |
|
tcp_ports |
3306,22 |
Port par défaut pour le serveur MySQL et SSH. |
|
ssh_ports |
3306,22 |
Port par défaut pour le serveur MySQL et SSH. |
vpn2 :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
92.72.57.95 |
Adresse affectée à l'interface externe. |
|
mode |
both |
Mode de fonctionnement Serveur. |
|
tunnel |
Clé SSH |
Utilisation des fichiers de clé SSH. |
|
auth_path |
"/keys/vpn21.ssh.key" |
Chemin d'accès au fichier de clé SSH. |
|
remote_host |
82.56.42.25 |
Adresse affectée à l'interface externe de vpn1. |
|
tcp_ports |
3306,22 |
Port par défaut pour le serveur MySQL et SSH. |
|
ssh_ports |
3306,22 |
Port par défaut pour le serveur MySQL et SSH. |
vpn1 :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
82.56.42.25 |
Adresse affectée à l'interface externe. |
|
mode |
both |
Fait office à la fois de serveur et de client. Autorise une réplication bidirectionnelle. |
|
tunnel |
ipsec shared secret |
Chiffrement du trafic avec IPSec. |
|
auth_path |
"/keys/ipsec.key" |
Chemin d'accès au fichier de secret partagé ipsec. |
|
remote_host |
92.72.57.95 |
Adresse affectée à l'interface externe de vpn2. |
|
tcp_ports |
3306,22 |
Port par défaut pour le serveur MySQL et SSH. |
vpn2 :
|
Nom de propriété |
Value (Valeur) |
Commentaires |
|
ip_addr |
92.72.57.95 |
Adresse affectée à l'interface externe. |
|
mode |
both |
Fait office à la fois de serveur et de client. Autorise une réplication bidirectionnelle. |
|
tunnel |
ipsec shared secret |
Chiffrement du trafic avec IPSec. |
|
auth_path |
"/keys/server/ipsec.key" |
Chemin d'accès au fichier de secret partagé ipsec. |
|
remote_host |
82.56.42.25 |
Adresse affectée à l'interface externe de vpn1. |
|
tcp_ports |
3306,22 |
Port par défaut pour le serveur MySQL et SSH. |
OpenVPN doit être utilisé sur l'ordinateur du client pour accéder à un tunnel VPN sécurisé proposé par l'appliance VPN.
Logiciels Open Source tiers utilisés dans l'appliance
VPN utilise les packages Open Source tiers suivants en plus des packages Open Source tiers utilisés par sa classe de base LUX5.
|
Logiciel |
Version |
Modifié |
Licence |
Commentaires |
|
IPsec-Tools |
0.6.5-13.el5_3.1 |
Non |
BSD |
page d'accueil |
|
iptables |
1.3.5-5.3.el5_4.1 |
Non |
GPLv2 |
N/D |
|
iptables-ipv6 |
1.3.5-5.3.el5_4.1 |
Non |
GPLv2 |
N/D |
|
LZO |
2.03 |
Non |
GPLv2 |
page d'accueil |
|
OpenVPN |
2.1.4 |
Non |
GPLv2 |
page d'accueil |
|
samba-client |
3.0.33-3.15.el5_4 |
Non |
GPLv2 |
N/D |
|
samba-common |
3.0.33-3.15.el5_4 |
Non |
GPLv2 |
N/D |
|
iproute2 |
2.6.29-1 |
Non |
GPLv2 |
page d'accueil |
|
autossh |
1.4b |
Non |
BSD |
page d'accueil |
| Copyright © 2012 CA. Tous droits réservés. |
|