====== OpenVPN-Bridge ======
Ce menu permet de configurer le serveur OpenVPN. Le nom **Bridge** (ou pont en français) est utilisé pour illustrer le fait que le VPN crée un pont entre l'utilisateur et le réseau de l'entreprise. Une fois connecté au VPN ((**V**irtual **P**rivate **N**etwork, signifiant Réseau privé virtuel, parfois appelé RPV)), l'utilisateur se retrouve connecté à son réseau. Le VPN agit alors comme un câble réseau virtuel.
OpenVPN est un serveur de connexion distantes sécurisées. Ce serveur permet de se connecter au réseau interne depuis l'extérieur, en créant un tunnel chiffré et authentifié.
OpenVPN utilise la couche SSL/TLS ((**S**ecure **S**ocket **L**ayer et **T**ransport **L**ayer **S**ecurity sont des protocoles utilisées pour sécuriser des connexions, voir [[http://fr.wikipedia.org/wiki/Transport_Layer_Security|cette page]] pour plus d'informations)) pour le chiffrement et l'authentification. Cette technique lui apporte des avantages par rapport à d'autres solutions comme Ipsec ou PPTP, par exemple, OpenVPN fonctionne très bien à travers une communication NATée, car il n'utilise qu'un seul port (UDP 1194 par défaut).
===== Configuration du serveur =====
La configuration par défaut assure une sécurité maximale:
* Triple authentification (certificat bi-directionnel, mot de passe et clé statique)
* Possibilité de révoquer un certificat compromis en un clique
* Vérification des certificats par CRL
* Négociation du chiffrement (par défaut, utilise le blowfish CBC 128 bits)
* Re-négociation de la clé de chiffrement toute les heures
* Contrôle du nombre maximum de clients connectés simultanément
* Isolation des clients (les clients ne peuvent pas communiquer directement entre eux)
* Visualisation des clients connectés
* Possibilité de rediriger tout le trafic dans le VPN (protège les clients sur les zones publiques comme les hotspots)
Le serveur VPN est pré-configuré, vous pouvez cependant modifier certains paramètres si vous le désirez
{{ :doc_ipasserelle:install_ip_vpn_bridge_1.png |Accueil VPN}}
La page d'accueil vous permet d'accéder aux différents menus de configuration
* Gestion des règles de configuration: Cette page vous permet de modifier la configuration pour un client spécifique
{{ :doc_ipasserelle:install_ip_vpn_bridge_2.png |Création d'une règle de configuration}}
Voici les champs à saisir lors de la création d'une règle de configuration:
* **Nom Commun**: Le nom exacte du certificat du client
* **Commentaire**: un commentaire, par exemple, le nom de la machine sur laquelle se trouve le certificat, ou le nom de l'utilisateur
* **Adresse IP réservée**: vous pouvez entrer une adresse IP de votre réseau si vous désirez que ce client obtienne toujours la même adresse IP. Si ce champ reste vide, une adresse sera allouée automatiquement
* **Redirection de passerelle**: SI cette option est activée, alors dèq que le client sera connecté, toutes les communications seront redirigées à travers le VPN.
* **Accès**: Permet de bloquer temporairement l'accès. Si le certificat ne doit plus être utilisé, il est conseillé de le révoquer.
* **Afficher un fichier de configuration fonctionnel pour les clients**: Cette page permet d'afficher un exemple de fichier de configuration pour les postes clients.
{{ :doc_ipasserelle:install_ip_vpn_bridge_3.png |Exemple de configuration}}
* **Afficher les clients connectés**: Cette page liste tout les clients actuellement connecté, les adresses IP (réelles et virtuelles), ainsi que les volumes de données transférés depuis le début de la connexion.
{{ :doc_ipasserelle:install_ip_vpn_bridge_4.png |Liste des clients connectés}}
* **Configuration du service**: Cette page vous permet de configurer certains aspects du serveur VPN, notamment:
* **État du service**: vous permet d'activer ou de désactiver le service VPN
* **Mode d'authentification**: Vous permet de choisir comment les clients s'authentifient. Par défaut, l'authentification fonctionne par certificat et nom d'utilisateur/mot de passe. Vous pouvez modifier ce paramètre pour ne pas demander de nom d'utilisateur/mot de passe (utile si vous désirez configurer le client VPN en mode service sur les clients)
* **Adresse de début et Adresse de fin**: permet de définir la plage d'adresses IP pour les clients qui n'ont pas d'adresses réservée par une règle de configuration
{{ :doc_ipasserelle:install_ip_vpn_bridge_5.png |Configuration du service VPN}}
===== Configuration des clients =====
Pour qu'un poste puisse se connecter à distance au réseau de l'entreprise, il faut tout d'abord créer un certificat. Pour cela, vous pouvez utiliser l'interface de gestion des certificats:
{{ :doc_ipasserelle:phpki_accueil.png? |Interface de gestion des certificats}}
Sur cette page, cliquez sur le bouton **Create a New Certificate**
Dans le formulaire suivant, vous devrait remplir les champs suivants:
* **Common Name**: Un nom unique pour ce certificat. Nous recommandons d'utiliser un nom qui puisse facilement être associé à la machine qui utilisera le certificat. Il est également conseillé de n'utiliser que des caractères alphanumériques (évitez les espaces, majuscules et les caractères //exotiques//)
* **E-mail Address**: Ce champs ne sera pas utilisé, mais doit être remplis. Vous pouvez mettre une adresse mail générique (celle du responsable informatique par exemple), ou l'adresse mail de l'utilisateur.
* **Organization**: Le nom de votre société
* **Departement/Unit**: Le département concerné (vous pouvez par exemple mettre VPN)
* **Locality (City/Country)**: Votre ville
* **State/Province**: votre région
* **Country**: Le code à deux lettres de votre pays (FR)
* **Certificate Password**: Vous pouvez laisser ce champ vide. Si vous entrez un mot de passe, il devra être tapé à chaque connexion VPN (en plus du mot de passe utilisateur). L'aventage est qu'il fournit une protection supplémentaire en cas de perte ou de vol du certificat.
* **Certificate Life**: Durée de validité du certificat. Au dela de cette période, le serveur refusera les connexions.
* **Key Size**: Nous recommandons d'utiliser une clef de 2048 bits
* **Certificate Usage**: Vous devez sélectionner ici **VPN Client Only**
Après avoir validé, vous obtiendrez une page de confirmation. Vous n'avez qu'à valider une nouvelle fois pour que le certificat soit généré. Après la génération du certificat, vous reviendrez sur le formulaire de création (utile si vous devez créer plusieurs certificats)
Vous devez maintenant télécharger le certificat nouvellement créé. Pour cela, cliquez à nouveau sur le menu **Gestion des certificats**, puis allez sur le menu **Manage Certificates**
{{ :doc_ipasserelle:phpki_manage.png? |Gestion des certificats}}
Cliquer sur le lien de téléchargement (le lien de téléchargement est entouré en rouge sur la capture d'écran ci-dessus)
{{ :doc_ipasserelle:phpki_dl.png? |Formulaire de téléchargement}}
Dans le menu déroulant de cette page, sélectionnez le format **PKCS#12 Bundle** puis cliquez sur **Download**
Vous devez également télécharger la clef partagée, qui est accessible sur la page d'accueil du gestionnaire de certificats, en cliquant sur l'option **Download the static pre-shared key**
Attention: ces deux fichiers (fichier de certificat et clef partagée) doivent être gardés secret. Il ne faut jamais les transmettre par mail, et les supprimer rapidement des supports USB dès qu'ils ne sont plus nécessaires. La compromission des ces fichiers peut avoir de graves conséquences sur la sécurité de votre réseau.
==== Client sous Microsoft Windows ====
Maintenant que vous avez les fichiers d'authentification, il ne reste plus qu'à préparer le fichier de configuration. Créez un fichier nommé config.ovpn, et coller l'exemple de fichier de configuration disponible dans le menu de configuration du serveur VPN
Le fichier de configuration doit porter l'extension .ovpn et non pas .txt (par défaut, l'extension des fichiers est masquée sur les postes Microsoft Windows)
Dans ce fichier de configuration, modifiez simplement le nom du certificat (dans l'exemple, le certificat se nomme user.p12, remplacez simplement **user** par le nom du fichier .p12 que vous avez téléchargé tout à l'heure).
Maintenant, il faut installer le client OpenVPN. Ce client est accessible en téléchargement sur le site officiel:
http://openvpn.net/index.php/open-source/downloads.html
L'installation doit être faite en tant qu'administrateur.
L'installation crée un dossier C:\Pogram Files\OpenVPN\config dans lequel vous devrait placer:
* Le certificat utilisateur (le fichier .p12)
* La clef partagée (takey.pem)
* Le fichier de configuration (config.ovpn)
Une fois ces 3 fichiers placés dans le répertoire, vous pouvez lancer le client OpenVPN et initier la connexion.
Sous Windows XP, le client VPN peut être exécuté sans les droits d'administrateurs. Il faut tout de même être membre du groupe **Opérateur de configuration réseau**. Sous Windows Vista et 7, l'application doit être lancée en tant qu'administrateur
==== Linux (avec Network-Manager) ====
Le logiciel de gestion des connexions réseaux par défaut sous linux s'appel NetworkManager. Il supporte plusieurs technologies de VPN, dont OpenVPN.
* Installer les logiciels
La première étape est de vérifier si le support d'OpenVPN est déjà présent, sinon, il faut l'installer. Sous debian et ses dérivés (comme ubuntu), le paquet s'appelle network-manager-openvpn-gnome ou network-manager-openvpn-kde (selon votre environnement de bureau). S'il n'est pas déjà installé, c'est le moment de le faire:
sudo apt-get install network-manager-openvpn-gnome
Pour les distribution Fedora et dérivées (RHEL, CentOS, Scientific Linux, ClearOS):
su -c 'yum install NetworkManager-openvpn'
* Créer un répertoire qui contiendra les certificats
Il faut créer un répertoire qui contiendra les certificats. Par exemple, le répertoire ~/vpn. On peut ensuite créer un sous répertoire par VPN configuré (il est possible d'avoir plusieurs connexions VPN):
* Obtenir les certificats
Il faut maintenant récupérer les certificats au format PEM (PCKS12 est aussi supporté avec une version récente de NetworkManager, mais seulement si le certificat est protégé par un mot de passe)
Il vous faudra récupérer:
* le certificat autoritaire (cacert.pem)
On peut afficher ce certificat depuis le lien "Display the root certificate (PEM encoded)" dans PHPki (Gestion des certificats). Il suffit ensuite de copier le contenu dans un fichier texte que l'on sauvegarde en tant que cacert.pem
* le certificat de la machine
Après avoir généré un certificat pour notre machine (de type "VPN Client Only" de préférence), on peut le télécharger depuis le lien de téléchargement correspondant, puis dans le menu déroulant, choisir "PEM certificate"
* La clef secrète associée au certificat, même procédure que le certificat, mais en sélectionnant "PEM Key"
* La clef partagée, peut se télécharger dans le menu principal de PHPki, sur le lien "Download the static pre-shared key"
Une fois que tout ces fichiers sont placés dans le répertoire créé plus haut (~/vpn/), on peut commencer la configuration de NetworkManager
* Création d'un nouveau profil VPN
Cliquer sur l'icône de NetworkManager, puis, sous menu VPN, et Configurer le VPN.
{{:doc_ipasserelle:nm_conf_vpn.png|}}
Dans le fenêtre ouverte, choisir "ajouter"
{{:doc_ipasserelle:nm_add_vpn.png|}}
Dans le menu déroulant, sélectionner OpenVPN
{{:doc_ipasserelle:nm_ovpn.png|}}
* Paramètres de base
Dans le nouvelle fenêtre, il faut entrer les paramètres de base:
{{:doc_ipasserelle:vpn_param_base.png|}}
* Nom de la connexion (il ne s'agit que d'un nom de profil, aussi, on peut mettre ce que l'on veut)
* Passerelle: Adresse IP ou nom du serveur VPN
* Type: choisir le type d'authentification, doit correspondre à la configuration du serveur, à savoir Mots de passe avec Certificat (TLS) ou Certificat (TLS)
* Le nom d'utilisateur (login) (uniquement si un login et mot de passe est nécessaire)
* Mot de passe: nous recommandons de ne pas remplir ce champs, ainsi, le mot de passe devra être saisi à chaque connexion au VPN
* Certificat de l'utilisateur: sélectionner le certificat récupéré précédemment
* Certificat du CA: sélectionner le fichier cacert.pem
* Clé privée: Sélectionner la clef privée récupérée précédemment
* Mot de passe de la clef privée (uniquement si la clef privée du certificat est protégée par un mot de passe)
Ensuite, cliquer sur le bouton "Avancé..."
Dans l'onglet Général, cocher les cases "Utilisez la compression de données LZO" ainsi que "Utiliser un périphérique TAP"
{{:doc_ipasserelle:vpn_param_adv1.png|}}
Ensuite, sur l'onglet "Authentification TLS", cocher la case "utiliser une authentification TLS supplémentaire", sélectionner le fichier takey.pem récupéré précédemment, et choisir 1 comme direction.
{{:doc_ipasserelle:vpn_param_adv2.png|}}
Il ne reste plus qu'à sauvegarder, et se connecter.
Le site officiel du projet: http://openvpn.net/