Rubrique précédente: Net2 : appliance de la passerelle de sortie du sous-réseauRubrique suivante: VPN2 : appliance de mise en réseau privée virtuelle


VPN : appliance de mise en réseau privée virtuelle

Dernière version : 3.1.3-1

Appliance VPN

Aperçu rapide

Catalogue

System (Système)

Catégorie

Passerelles

Volumes d'utilisateur

Oui

Min. mémoire

96M

SE

Linux

Contraintes

non

Présentation fonctionnelle

VPN est une appliance de mise en réseau privé virtuel qui fonctionne dans des réseaux IPv4 et IPv6, conçus pour fournir des tunnels sécurisés et fiables pour des communications inter-grille et pour l'accès distant à des applications et appliances. VPN peut également fonctionner sans utiliser de tunnels VPN, auquel cas il fonctionne comme une passerelle combinée IN/OUT en texte clair. VPN permet également d'interconnecter des grilles IPv4 et IPv6 CA AppLogic® de façon transparente. VPN est basé sur les packages logiciels Open Source OpenVPN, OpenSSH et Racoon.

VPN compte trois modes de fonctionnement de base : serveur, client, et client-serveur.

VPN prend en charge IPSec, les fichiers secrets, les certificats SSL et les fichiers de clé SSH partagés pour l'authentification et le chiffrement. Un client OpenVPN/OpenSSH standard peut être utilisé sur un poste de travail distant pour se connecter à VPN qui, à son tour, fournit un accès sécurisé aux composants internes d'une application exécutée sur CA AppLogic®. L'appliance VPN prend en charge la génération de fichiers secrets, clés SSH et certificats SSL partagés.

Pour accéder à distance à une application CA AppLogic® via un tunnel VPN sécurisé à l'aide de VPN, le logiciel OpenSSH ou OpenVPN côté client peut être utilisé sur l'ordinateur du client (ou tout autre logiciel compatible).

Ressources

Ressource

Minimum

Maximum

Valeur par défaut

UC

0.1

16

0.2

Mémoire

96 Mo

32 Go

96 Mo

Bande passante

1 Mbit/s

2 Gbits/s

250 Mbits/s

Terminaux

name

dir

protocol

description

clt

in

Indifférent

Entrée commune pour que tout le trafic entrant soit dirigé vers l'interface externe lorsque VPN fonctionne en tant que client. Si VPN est configuré pour établir un tunnel sur l'interface externe, les paquets envoyés à clt sont dirigés vers un tunnel établi, ou abandonnés, si le tunnel n'est pas opérationnel.

srv

sortie

Indifférent

Sortie commune pour tout le trafic sortant reçu via l'interface externe lorsque VPN fonctionne en tant que serveur. Tout le trafic est filtré à l'aide des propriétés tcp_ports, udp_ports, ssh_ports et aux_protocols avant d'être envoyé via srv.

fs

sortie

NFS

Accède à un système de fichiers réseau pour le stockage de fichiers partagés et fournit un accès en lecture/écriture aux fichiers via NFS. Ce volume est monté en tant que /mnt/fs dans le système de fichiers de l'appliance et est utilisé pour le stockage et le chiffrement des clés et des certificats. Le serveur connecté doit avoir un partage lecture/écriture nommé /mnt/date. Ni le volume de données ni le volume monté en NFS n'est requis si VPN fonctionne en mode texte clair. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

log

sortie

CIFS

Accède à un système de fichiers réseau basé sur CIFS pour le stockage des journaux relatifs aux accès et aux erreurs. Le serveur connecté doit autoriser les connexions anonymes et avoir un partage lecture/écriture nommé share. Si ce terminal n'est pas utilisé, il peut rester déconnecté.

MON

sortie

CCE

Permet d'envoyer des statistiques de performances et d'utilisation des ressources. Peut rester déconnecté s'il n'est pas utilisé.

Propriétés

Propriétés générales

Nom de propriété

Type

Description

ip_addr

ip_owned

Définit l'adresse IPv4 de l'interface externe de la passerelle. Cette propriété est obligatoire si VPN fonctionne en mode IPv4 uniquement.

netmask

Adresse IP

Définit le masque de réseau IPv4 de l'interface externe. Cette propriété est obligatoire si VPN fonctionne en mode IPv4 uniquement.

gateway

Adresse IP

Définit la passerelle de réseau IPv4 par défaut (routeur) pour l'interface externe. Si le champ reste vide, seuls les hôtes figurant sur le même sous-réseau que ip_addr/netmask sont accessibles. Valeur par défaut : vide

ipv6_addr

chaîne

Définit l'adresse IPv6 de l'interface externe de la passerelle. L'adresse de IPv6 est spécifiée avec la notation d'adresses standard de huit groupes de quatre chiffres héxadécimaux. Un ou plusieurs nombres de groupes consécutifs de la valeur 0 peuvent être remplacés par deux deux-points (::). Le format est le suivant : adresse/masque de réseau, ex. fc00:1234:5678::12/64. Cette propriété est obligatoire si VPN fonctionne en mode IPv6 uniquement.

ipv6_gateway

chaîne

Définit la passerelle de réseau IPv6 par défaut (routeur) pour l'interface externe. Si le champ est laissé vide, seuls les hôtes figurant sur le même sous-réseau que ipv6_addr sont accessibles. Valeur par défaut : vide

dns1

Adresse IP

Définit le serveur DNS principal sur lequel VPN envoie les requêtes DNS. Si le champ est laissé vide, VPN utilise les serveurs DNS racines. Valeur par défaut : vide

dns2

Adresse IP

Définit le serveur DNS de sauvegarde sur lequel VPN envoie des requêtes DNS en cas d'insdisponibilité du serveur principal. Si le champ est laissé vide, VPN n'utilise pas de serveur DNS de sauvegarde. Valeur par défaut : vide

Important : Vous devez au moins définir une paire d'adresses (IPv4 ou IPv6).

Propriétés VPN

Nom de propriété

Type

Description

mode

Chaîne

Mode de fonctionnement. Les valeurs possibles sont :
server - VPN fonctionne en mode serveur, en acceptant le trafic entrant à partir des tunnels établis sur l'interface externe et en l'envoyant sur le terminal srv.
client - VPN fonctionne en mode client, en acceptant le trafic entrant sur le terminal clt et en l'envoyant dans le tunnel établi sur l'interface externe.
both - VPN fonctionne aussi bien en mode client que serveur.
Valeur par défaut : server.

tunnel

Chaîne

Type du tunnel VPN à établir. Les valeurs possibles sont :
certificate : un tunnel VPN est établi en utilisant des certificats de serveur et de client SSL pour l'authentification et le chiffrement avec OpenVPN. S'il n'est pas présent, le certificat du serveur est généré automatiquement. Le certificat client doit être généré manuellement avec le script /appliance/security.sh localisé sur le serveur VPN et copié dans le sous-répertoire /client/ sur le volume de données ou le volume nfs monté . Ce mode fonctionne avec IPv4 et IPv6.
shared secret : un tunnel VPN est établi à l'aide d'un fichier de secrets partagés avec OpenVPN. S'il n'est pas présent, ce fichier est automatiquement généré sur le serveur VPN. Il est situé dans le sous-répertoire /server/ du volume de données ou sur le volume nfs monté et est nommé secret.key. Ce fichier doit être copié sur l'appliance VPN du client dans le sous-répertoire /client/. Ce mode fonctionne avec IPv4 et IPv6.
SSH key : un tunnel SSH est établi en utilisant des fichiers de clés OpenSSH pour l'authentification. Les fichiers de clés sont générés avec le script /appliance/security.sh côté serveur. Les fichiers de clés clients doivent être copiés dans le sous-répertoire /client/ du volume de données du stockage nfs monté. Ce mode fonctionne avec IPv4 et IPv6.
ipsec shared secret - Un tunnel IPSec est établi entre des instances de VPN. La première ligne du fichier spécifié par la propriété auth_path est utilisée comme clé partagée. Ce mode fonctionne uniquement avec IPv4.
ipsec certificate - Un tunnel IPSec utilisant des certificats est établi entre des instances de VPN. S'il n'est pas présent, le certificat du serveur est généré automatiquement ou peut être généré avec le script /appliance/security.sh. Le certificat client doit être généré manuellement avec le script /appliance/security.sh localisé sur le serveur VPN et copié dans le sous-répertoire /client/ sur le volume de données ou le volume nfs monté . Ce mode fonctionne uniquement avec IPv4. Pour les deux modes de fonctionnement, tous les certificats doivent être générés par la même appliance et distribués avec son propre certificat ca.crt.
cleartext - Aucun tunnel n'est établi. L'appliance VPN fonctionne en tant que passerelle IN/OUT combinée, en acceptant le trafic sur le terminal clt et en le réacheminant vers l'interface externe, ainsi qu'en acceptant le trafic sur l'interface externe et en le réacheminant via le terminal srv. Ce mode fonctionne avec IPv4 et IPv6. Pour le mode IPv6, la propriété remote_host doit contenir l'adresse de l'homologue.
Valeur par défaut : cleartext.

auth_path

Chaîne

Informations d'authentification pour le tunnel. Pour le mode de fonctionnement shared secret, il s'agit d'un chemin d'accès relatif au fichier de secrets partagés sur le volume de données (ex. "secret.key" pour un fichier "client/secret.key"). Pour le mode certificat, il s'agit d'un chemin d'accès relatif, comprenant le nom de fichier sans l'extension vers la paire de fichier certificat/clé. Par exemple, si les fichiers de certificat client1-2009.crt et client1-2009.key sont localisés dans le sous-répertoire /client du volume de données, client1-2009 doit être spécifié ici. Si le tunnel est cleartext, cette propriété est ignorée. Si le tunnel est de type ssh key, cette propriété indique le chemin d'accès, y compris le nom de fichier vers le fichier de clé public ssh (pour le serveur VPN) ou privé (pour le client VPN) (par exemple, /1/ssh.key pour un fichier de clé publique /client/1/ssh.key).
Valeur par défaut : vide

log_level

Chaîne

Niveau de journalisation VPN. Les valeurs possibles sont :
none - Ne journalise aucun élément.
emerg - Journalise uniquement les erreurs détectées par VPN.
warn - Journalise les avertissements et les erreurs.
notice - Journalise les avertissements, les erreurs et les avis.
debug - Consigne des informations de débogage supplémentaires en plus des avertissements, des avis et des erreurs.
Valeur par défaut : none si le terminal de journal n'est pas connecté ; emerg si le terminal de journal est connecté.

Propriétés du serveur

allowed_hosts

Chaîne

Liste des hôtes et/ou des sous-réseaux autorisés à se connecter. Séparez plusieurs entrées à l'aide d'espaces ou de virgules. Exemple de format pris en charge : 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0 fc00:1234::12/64.
Valeur par défaut : 0.0.0.0/0 (tout les formats sont autorisés, aussi bien IPv4 que IPv6)

tcp_ports

Chaîne

Numéros de port ou plages de ports à autoriser sur le terminal srv. Accepte une chaîne de valeurs séparées par des espaces ou des virgules. Les plages de port doivent être spécifiées au format port_inférieur:port_supérieur avec deux-points ou un tiret comme séparateur (par exemple, 80,81,82:85 86-90). Une valeur spéciale de 0 signifie que tous les ports TCP sont acceptés.
Valeur par défaut : vide

udp_ports

Chaîne

Identique à tcp_ports, mais pour le protocole UDP.
Valeur par défaut : vide

aux_protocols

Chaîne

Chaîne de nombres séparés par des espaces ou des virgules contenant les protocoles IP supplémentaires à autoriser (par exemple, 6 pour TCP, 47 pour GRE). Des protocoles distincts peuvent être spécifiés par leurs noms (ex. "gre" au lieu de "47"). Pour plus d'informations sur l'affectation, consultez le site Web http://www.iana.org/assignments/protocol.
Valeur par défaut : vide (désactivé)

Propriétés clientes

remote_host

Chaîne

Définit l'hôte distant vers lequel renvoyer tout le trafic. Il peut s'agir du nom DNS de l'hôte ou de son adresse IPv4 ou IPv6 en notation à points. Cette propriété est obligatoire.
Valeur par défaut : vide

dns_poll

Nombre entier

Intervalle d'interrogation en secondes utilisé par VPN lors de la vérification du mappage du nom DNS de remote_host sur l'adresse IP (utilisée uniquement si remote_host est spécifié en tant que nom DNS). Définissez 0 comme valeur pour désactiver l'interrogation et ne pas tenter de détecter les modifications.
Valeur par défaut : 3600 secondes (1 heure)

ssh_ports

Chaîne

Propriété côté client pour le mode de clé SSH spécifiant quels ports TCP réacheminer vers le serveur VPN. Les plages de port ne sont pas prises en charge. Les numéros de port peuvent être séparés par des espaces ou des virgules.
Valeur par défaut : vide

Volumes

Nom

Description

données

Volume en lecture/écriture (espace réservé) pour les données contenant les fichiers de certificat et de configuration. Ce volume n'est pas requis si le terminal fs est connecté. Si fs est connecté et qu'un volume de données est fourni, VPN ne parvient pas à démarrer et journalise un message d'erreur. Tous les fichiers nécessaires au fonctionnement du serveur VPN sont stockés dans le sous-répertoire /server/ du stockage des données. Tous les fichiers nécessaires au fonctionnement du client VPN sont stockés dans le sous-répertoire /client/.

Compteurs personnalisés

L'appliance VPN signale les compteurs personnalisés suivants via le terminal mon.

Nom du compteur

Description

server_bytes_in

Nombre total d'octets reçus par VPN.

server_bytes_out

Nombre total d'octets envoyés par VPN.

client_bytes_in

Nombre total d'octets reçus des tunnels client.

client_bytes_out

Nombre total d'octets envoyés aux tunnels client.

clients

Nombre de clients connectés à VPN.

Performances

Deux applications de test résidaient sur la même grille CA AppLogic®. La bande passante de 100 mbit a été affectée aux deux appliances VPN (client et serveur) ainsi qu'aux appliances serveur et client. Plusieurs objets, de chacun 1 Mo, ont été extraits, 10 objets en parallèle, pendant 60 secondes.

Mode

Bande passante, en Mbits/seconde

Taille d'objet

Requêtes/seconde

Taux de transfert, Mo/seconde

Certificat

100

1 Mo

12.5667

12.56

Secret partagé

100

1 Mo

12.5166

12.51

Clé SSH

100

1 Mo

12.7667

12.76

Cleartext

100

1 Mo

13.0329

13.03

Messages d'erreur

En cas d'échec de démarrage de l'appliance, les erreurs suivantes peuvent être consignées dans le journal système :

Message d'erreur

Description

Failed to mount the data volume

VPN n'est pas parvenu à monter le volume de données Vérifiez que le volume est formaté et disponible.

Failed to generate server_key

VPN n'est pas parvenu à générer un fichier de secrets partagés. Le volume de données est probablement trop petit ou monté en lecture seule.

Failed to launch OpenVPN server

VPN n'est pas parvenu à lancer le serveur OpenVPN. Contactez le support technique de CA.

Failed to generate certificates.

VPN n'est pas parvenu à créer l'autorité de certification et ni à générer les certificats nécessaires pour le mode de fonctionnement Serveur de certificats. Le volume de données est probablement trop petit ou monté en lecture seule.

Failed to generate DH file.

VPN n'est pas parvenu à générer le fichier de clé Diffie-Hellman. Le volume de données est probablement trop petit ou monté en lecture seule.

Secrets file client_auth does not exist

Le fichier client_auth, indiqué dans la propriété auth n'existe pas. Vérifiez le chemin d'accès et le nom du fichier.

Remote server address is empty for

L'adresse de serveur VPN distant est vide pour le tunnel X.

Failed to launch OpenVPN for clientX tunnel

VPN n'est pas parvenu à lancer le logiciel OpenVPN pour le tunnel client X. Certaines propriétés ou certains fichiers clés ne sont probablement pas valides.

Certificate file client_auth.crt does not exist

VPN n'est pas parvenu à localiser un fichier de certificat. Le chemin d'accès ou le nom de fichier spécifié dans la propriété auth pour le mode de fonctionnement du client de certificat n'est pas valide.

Key file client_auth.key does not exist

VPN n'est pas parvenu à localiser un fichier de clé. Le chemin d'accès ou le nom de fichier spécifié dans la propriété auth pour le mode de fonctionnement du client de certificat n'est pas valide.

Certification Authority certificate ca_cert is missing

VPN n'est pas parvenu à localiser le certificat de l'autorité de certification. Il doit être localisé dans le fichier /CA/ca.crt sur le volume de données.

Types de tunnels

Cleartext

Ce mode prend en charge un scénario "serveur unique - clients multiples" permettant d'accéder au serveur VPN à partir de plusieurs emplacements. Dans ce mode, les tunnels VPN ne sont pas établis et aucun magasin de données n'est requis (ni un volume de données ni une appliance NAS connectée au terminal fs). Ce mode est compatible avec IPv4 et IPv6.

Sur l'appliance VPN du serveur, le trafic reçu sur l'interface externe est 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 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, 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, mode, tunnel, remote_host.

En mode IPv6, La propriété côté serveur remote_host doit être configurée avec l'adresse du client.

Certificat

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 compatible avec IPv4 et IPv6.

Au démarrage, l'appliance de serveur génère les certificats nécessaires et les fichiers clés si ces fichiers ne sont pas déjà présents. Ces fichiers peuvent être regénérés avec le script security.sh, localisé dans le répertoire /appliance/. Avant de pouvoir configurer les clients VPN, vous devez leur générer des certificats. L'utilisateur peut se connecter à l'appliance de serveur VPN en cours d'exécution et générer une paire de clés comme suit pour le client :

grid> comp login VPN-1:main.VPN
CentOS release 5 (Final)

[VPN-1:main.VPN ~]# /appliance/security.sh generate_client
Generated client SSL certificate and key file.
==============================================
Ces fichiers, avec le fichier de certificat de CA, doivent être copiés sur le serveur VPN dans le sous-répertoire 
/client/ sous-répertoire de volume de données ou monté sur un système de fichiers volume.
Le chemin d'accès aux fichiers client (client.829de5afcac564b3) doit être spécifié dans la propriété auth_path.
Emplacement de fichiers :
certificat client : /mnt/fs/server/client.829de5afcac564b3.crt
fichier de clé client : /mnt/fs/server/client.829de5afcac564b3.key
Fichier de certificat CA localisé à l'emplacement /mnt/fs/server/ca.crt

Le certificat client et le fichier clé doivent être copiés dans l'appliance VPN du client dans le sous-répertoire /client/ du magasin de données et dans ce cas, auth_path doit être défini sur la valeur appropriée : client.829de5afcac564b3. Le certificat CA du serveur VPN (/mnt/fs/server/ca.crt) doit être également copié dans le sous-répertoire /client/ sur l'appliance du client et être nommé ca.crt. Chaque appliance VPN du client doit disposer de son propre certificat.

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.

Fichier de secrets partagés

Ce mode prend uniquement en charge le scénario "serveur unique-client unique" en n'autorisant l'accès au serveur VPN qu'à partir d'un seul client à la fois. Un magasin de données est requis (un volume de données ou une appliance NAS connectée au terminal fs). Ce mode est compatible avec IPv4 et IPv6.

Au démarrage, l'appliance de serveur génère un fichier de secrets partagés /server/secret.key, si ce fichier n'est pas encore présent. Ce fichier peut être regénéré avec le script security.sh, localisé dans le répertoire /appliance/. 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/. Pour générer un nouveau fichier de secrets partagés, l'utilisateur peut se connecter à l'appliance de serveur VPN en cours d'exécution et entrer la commande suivante :

[VPN-1:main.VPN server]# /appliance/security.sh generate_secret
Generated OpenVPN shared secrets file.
======================================
Ce fichier doit être copié sur le serveur VPN dans le sous-répertoire /server/ du volume de données ou du volume fs monté ainsi que
sur le client VPN dans le sous-répertoire /client/ du volume de données ou du volume fs monté.
Le chemin d'accès doit être spécifié dans la propriété auth_path du client VPN.
Emplacement du fichier : /mnt/fs/server/secret.key

Un fichier de secrets qui vient d'être généré écrase l'ancien, le cas échéant. Ce fichier de secrets partagés /mnt/fs/server/secret.key doit être copié sur l'appliance VPN du client dans le sous-répertoire /client/ du magasin de données et la propriété auth_path doit être définie sur la valeur correcte (dans ce cas, secret.key). Plusieurs appliances VPN du client peuvent être configurées, mais vous ne pouvez en connecter qu'une seule à la fois.

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.

Clé SSH

Ce mode prend en charge un scénario "serveur unique - clients multiples" permettant d'accéder au serveur VPN à partir de plusieurs emplacements. Un référentiel de données est requis (un volume de données ou une appliance NAS connectée au terminal fs). Seul le trafic tcp peut être acheminé via le tunnel ssh, de sorte que la propriété tcp_ports est la seule utilisée côté serveur. Les plages de ports ne sont pas prises en charge. Chaque port qui doit être transféré doit être explicitement spécifié dans la propriété ssh_ports côté client. Ce mode est compatible avec IPv4 et IPv6.

Le serveur VPN génère la paire de clés ssh par défaut au démarrage. Les clés par défaut sont localisées aux emplacements suivants. Clé serveur (clé publique) : server/ssh-server.pub Clé client (clé privée) : server/ssh-client.key. Des clés supplémentaires peuvent être générées manuellement à l'aide du script security.sh :

[VPN-1:main.VPN ~]# /appliance/security.sh generate_ssh
Generated SSH keypair.
======================
La clé publique doit être copiée sur le serveur VPN dans le sous-répertoire /server/ du volume de données ou du volume fs monté.
La clé privée doit être copiée sur le client VPN dans le sous-répertoire /client/ du volume de données ou du volume fs monté.
Le chemin d'accès aux fichiers de clés doit être spécifié dans la propriété auth_path de VPN tant côté client que serveur.
Emplacement de fichiers :
Clé publique : /mnt/fs/server/ssh.11179ebbfa3f6852.pub
Clé privée : /mnt/fs/server/ssh.11179ebbfa3f6852.key

La clé publique doit être copiée sur le serveur VPN dans le sous-répertoire /server/. La clé privée doit être copiée sur le client dans le sous-répertoire /client/. La propriété auth_path doit être définie tant sur le client que sur le serveur. Si auth_path est vide sur le serveur, la clé SSH par défaut est utilisée.

Sur l'appliance VPN du serveur, le trafic reçu sur l'interface externe est déchiffré, filtré via la propriété ssh_ports, puis renvoyé à l'interface srv. Seul le réacheminement sur le port TCP est pris en charge. La propriété auth_path définit la clé SSH publique à utiliser. Lorsque l'appliance fonctionne aussi bien en mode client que serveur, le nom des clés privée et publique doit être identique et les clés doivent se trouver dans les sous-répertoires /server/ et /client/. La propriété ssh_ports doit être configurée de la même façon sur le serveur et sur le client.

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, auth_path et tcp_ports.

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 et ssh_ports.

Important : Mode serveur-serveur SSH. Les deux appliances VPN les peuvent être configurées dans les deux modes et se connecter l'une à l'autre. Pour utiliser ce mode, les appliances doivent être configurées d'une manière particulière :

Supposez que vous avez 2 appliances nommées VPN1 et VPN2 : 1. Créez 2 ensembles de fichiers de clés publique/privée (1.clé/1.pub, 2.clé/2.pub, à l'aide du script "/appliance/security.sh generate_ssh") 2. Configurez la propriété auth_path sur les deux appliances sur "ssh.key" 3. Copiez 2.pub dans VPN1 :/mnt/data/server/ssh.key (ou dans le fichier ssh.key dans le sous-répertoire /server/ du lecteur NAS) (La clé publique va dans le sous-répertoire /server/.) 4. Copiez 2.clé dans VPN2:/mnt/data/client/ssh.key (La clé privée va dans le sous-répertoire /client/) 5. Copiez 1.pub dans VPN2:/mnt/data/server/ssh.key (La clé publique va dans le sous-répertoire /server/) 6. Copiez 1.clé dans VPN1:/mnt/data/client/ssh.key (La clé privée va dans le sous-répertoire /client/)

Certificat 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 référentiel 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 génère les certificats nécessaires et les fichiers clés si ces fichiers ne sont pas déjà présents. Ces fichiers peuvent être regénérés avec le script security.sh, localisé dans le répertoire /appliance/. Avant de pouvoir configurer les clients VPN, vous devez leur générer des certificats. L'utilisateur peut se connecter à l'appliance de serveur VPN en cours d'exécution et générer une paire de clés comme suit pour le client :

grid> comp login VPN-1:main.VPN
CentOS release 5 (Final)

[VPN-1:main.VPN ~]# /appliance/security.sh generate_client
Generated client SSL cerfiticate and key file.
==============================================
Ces fichiers, avec le fichier de certificat de CA, doivent être copiés sur le serveur VPN dans le sous-répertoire 
/client/ sous-répertoire de volume de données ou monté sur un système de fichiers volume.
Le chemin d'accès aux fichiers client (client.829de5afcac564b3) doit être spécifié dans la propriété auth_path.
Emplacement de fichiers :
certificat client : /mnt/fs/server/client.829de5afcac564b3.crt
fichier de clé client : /mnt/fs/server/client.829de5afcac564b3.key
Fichier de certificat CA localisé à l'emplacement /mnt/fs/server/ca.crt

Le certificat client et le fichier de clé doivent être copiés dans l'appliance VPN du client dans le sous-répertoire /client/ du référentiel de données. Dans ce cas, auth_path doit être défini sur la valeur appropriée : client.829de5afcac564b3. Le certificat CA du serveur VPN (/mnt/fs/server/ca.crt) doit être également copié dans le sous-répertoire /client/ sur l'appliance du client et être nommé ca.crt. Chaque appliance VPN du client doit disposer de son propre certificat.

Important : Une exception est signalée lorsque VPN est utilisé dans les deux modes. Dans ce cas, tous les certificats (client et serveur) doivent être générés par la même instance de VPN et distribués ensemble avec son certificat ca.crt sur d'autres instances.

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.

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 référentiel 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 :

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é

Valeur

Notes

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é

Valeur

Notes

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 :

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é

Valeur

Notes

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é

Valeur

Notes

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 :

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é

Valeur

Notes

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é

Valeur

Notes

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é

Valeur

Notes

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é

Valeur

Notes

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.

Notes

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 LUX6.

Logiciel

Version

Modifié

Licence

Notes

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