Rubrique précédente: VPN - Appliance de mise en réseau privé virtuel

Rubrique suivante: Générique


Secret partagé IPSec

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.

Accès distant à un service externe

Le diagramme suivant indique comment configurer un accès distant à un service externe :

Exemple : appliance Web s'exécutant sur la grille A, accédant à une base de données MySQL distante s'exécutant sur la grille B sur un tunnel VPN sécurisé

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.

Accès distant aux appliances CA AppLogic internes

Le diagramme suivant indique comment configurer un accès distant aux appliances CA AppLogic internes :

Exemple : à partir de son PC, un utilisateur doit accéder à plusieurs appliances différentes via une connexion VPN sécurisée à l'aide du client OpenVPN

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é :

  1. L'utilisateur doit installer OpenVPN sur son PC. OpenVPN peut être obtenu ici ou ici. (OpenVPN ne fonctionne apparemment pas sous Windows Vista). Après l'installation, un fichier de configuration distinct doit être créé pour définir les propriétés du tunnel OpenVPN qui permettra à l'utilisateur d'accéder à l'application CA AppLogic. Les étapes ci-dessous décrivent cette procédure.
  2. Il est vivement recommandé d'utiliser le mode de fonctionnement de secret partagé de l'appliance VPN. Configurez VPN comme suit :

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.

Fourniture de tunnels VPN sécurisés pour la réplication MySQL

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 :

Exemple : deux applications s'exécutant 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é.

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.

Commentaires

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