ZeroShell    Forum
   Feed RSS Feed
EnglishEnglish     ItalianoItaliano     French     Spanish                Facebook      Twitter

Valid HTML 4.01 Transitional


      Qu'est ce que c'est?
      Screenshots
      Licence
      Annonces
      Liste de diffusion
      Forum
      Documentation  
      FAQ
      Hardware
      Download
      On-line Updates
      Kerberos Tutorial  
      Conditions d'utilisation
      Contactez-moi


  Dans plus de détails:
      Performances
      Net Balancer
      UMTS Routeur
      Proxy avec Antivirus
      Point d'accès WiFi
      OpenVPN Client
      OpenVPN Server
      QoS
      OpenDNS
      Kerberos 5
      NIS et LDAP
      Certificats X.509
      RADIUS
      Captive Portal
      VPN
      Firewall


Un routeur VPN Host-to-LAN en utilisant OpenVPN

Le but de ce document est de décrire la façon de configurer une routeur OpenVPN pour le Host-to-LAN Virtual Private Network. Les sections dans lesquelles les how-to est divisé sont les suivants:

Pourquoi utiliser OpenVPN que le VPN Gateway

Zeroshell a pu agir en tant que passerelle VPN pour les connexions Host-to-LAN déjà en commençant par sa première version. Toutefois, seuls les VPN L2TP/IPSec ont été pris en charge. Cette combinaison de tunnels, le premier (IPSec) authentifié par le protocole IKE avec des certificats X.509 et le second (L2TP) authentifié avec les informations d'identification nom d'utilisateur et mot de passe contre les locaux Kerberos 5 KDC, a montré ses limites dès. Bon nombre des questions de L2TP/IPSec, qui ont été résolus en utilisant OpenVPN, sont énumérés ci-dessous:
  • Il n'est pas possible d'éviter le déploiement d'un certificat X.509 et la clé privé relatives à un client VPN. Ce problème peut être résolu de construction d'une infrastructure PKI (Public Key Infrastructure) à signer et à gérer les certificats X.509. Zeroshell a l'autorité de certification X.509 module, mais en tout cas, sa gestion pourrait prendre trop de temps pour certaines organisations
  • Après l'authentification X.509, il n'est pas possible d'éviter la deuxième authentification avec nom d'utilisateur et mot de passe. Cette authentification double, dans certains cas, pourrait être considérée comme une perte de temps, spécialement lorsque le certificat est stocké sur une carte à puce et à déverrouiller la clé privée, le code PIN est déjà nécessaire;
  • Le L2TP/IPSec clients VPN ne sont pas facilement configurable également dans le cas où le système d'exploitation comprend un support natif pour ce type de VPN;
  • Soit le client parvient à Internet via un routeur NAT ou le serveur VPN a une adresse IP privée, le protocole IPSec a des problèmes d'authentification en raison du fait que, la porte d'entrée NAT modifie les en-têtes IP. La solution à ce type de problèmes consiste soit à l'utilisation sur les routeurs NAT de non normalisés VPN pass-through techniques ou dans le NAT-T (NAT Traversal) qui permettent d'encapsuler les paquets IPSec du débit UDP (port 4500). Le NAT-T est un protocole normalisé, mais les clients VPN nécessité de négocier l'utilisation de celui-ci avec la passerelle VPN seulement quand il est en fait un périphérique NAT entre eux.
Pour éviter les problèmes liés à l'utilisation de L2TP/IPSec, en commençant par la libération de 1.0.beta7 Zeroshell, il est possible de configurer l'utilisation OpenVPN pour agir comme passerelle VPN pour les connexions de Roadwarrior. Notez que, Zeroshell utilisait déjà OpenVPN pour permettre de site à site VPN soit en mode routé ou bridge et avec la possibilité de transporter les VLAN 802.1q à travers Internet. La stabilité et la flexibilité démontrée dans le LAN-to-LAN VPN a poussé dans le sens de l'utilisation de ce logiciel aussi pour les Host-to-LAN.
Les avantages de l'utilisation d'OpenVPN en Roadwarrior VPN sont:
  • Le service OpenVPN est tout à fait et facilement configurable via l'interface web (regardez l'image);
  • En plus de l'authentification du client X.509 qui exige que tout utilisateur dispose d'un certificat personnel et la clé privée liée, en utilisant OpenVPN, il est possible d'être authentifié par nom d'utilisateur et mot de passe soit sur un serveur RADIUS externe ou contre un externe et le local Kerberos 5 KDC (voir la note*). La dernière capacité permet l'authentification des utilisateurs d'un domaine Microsoft Active Directory.
  • Comme vous pouvez le voir dans le document Configuration client OpenVPN pour Windows, Linux, Mac OS X et Windows Mobile pour Pocket PC, une interface OpenVPN est installable sur les systèmes d'exploitation les plus utilisés;
  • Lorsque OpenVPN est configuré pour utiliser les dispositifs TAP (qui sont des logiciels d'interface Ethernet), il encapsule des trames Ethernet dans le tunnel SSL chiffré. L'avantage de l'utilisation d'un VPN Ethernet est que, en plus du mode routé dans lequel la passerelle VPN agit comme une couche de 3 routeur, il est possible de combler les interfaces Ethernet physique avec les VPN. De cette manière, non seulement le protocole IP peuvent être envoyées à travers le VPN, mais aussi la couche 3 autres protocoles tels que IPX/SPX NetWare, AppleTalk et NetBEUI.
    Parce que en mode bridge, la diffusion Ethernet est également transmise à travers le VPN, il est possible d'utiliser, pour les clients VPN à distance, le même serveur DHCP utilisé pour ensuite LAN.
  • En dernière analyse, l'approche de OpenVPN semble solide, parce que non seulement le plus fort utilise des algorithmes cryptographiques disponibles dans les bibliothèques OpenSSL, mais aussi les développeurs font attention à la qualité du code. Cela rend OpenVPN un logiciel sûr et stable en réduisant la présence de trous de sécurité.
OpenVPN web interface​​
Interface web OpenVPN. Cliquez sur l'image pour l'agrandir.

Configuration par défaut pour les VPN Host-to-LAN avec OpenVPN

La configuration par défaut VPN Host-to-LAN permet de démarrer le service aussi facile que possible. En fait, dans le but de se connecter à Zeroshell en VPN, cliquez simplement sur le Enabled dans [VPN] ->[Host-to-LAN (OpenVPN)] (voir illustration) pour démarrer le openvpnprocessus qui écoute les connexions entrantes. Pour l'installation rapide à la clientèle, utiliser le zeroshell.ovpn fichier de configuration disponibles dans la section téléchargement. Les paramètres spécifiés dans ce fichier de configuration du client de refléter la configuration VPN passerelle par défaut et que l'adresse IP et nom d'hôte à être connecté au besoin être modifié. Pour plus d'informations sur la configuration du client VPN, voir le suivantes How-To.
Fonctions de configuration par défaut, ainsi que les raisons de ce choix, sont énumérés ci-dessous. Jeter un oeil à l'illustration qui correspond à la configuration initiale OpenVPN peut être utile comme un résumé.
  • OpenVPN permet de sélectionner la ou UDP protocole de transport TCP dans lequel le tunnel SSL chiffré est encapsulé. Zeroshell utilise le protocole TCP par défaut car il renégocie rapidement la connexion si VPN est arrêté pour des problèmes de connectivité. Avec UDP, d'autre part, lorsque le service est en panne, le client et le serveur ne relancez la connexion après un certain nombre de secondes fixé par le--ping-restart nparamètre. Toutefois, il convient de noter que lorsque le protocole TCP est utilisé comme transport tunnel pour les connexions qui, à son tour, peut être TCP ou UDP, il ya une plus grande entendu puis quand UDP est utilisé. La raison de ceci se trouve dans le fait que le protocole TCP, comme un protocole orienté connexion, exécution des contrôles d'intégrité si VPN encapsulation est redondant, car l'intégrité des données a été récemment contrôlé pour les flux qui traversent VPN. Toutefois, il a vu que cette surcharge est la performance et le potentiel négligeable avec TCP est à peu près les mêmes que ceux avec UDP. Un autre facteur déterminant dans l'utilisation du TCP a été la contrepartie du fait que les ports TCP sont devez moins souvent bloqué sur les pare-feu que ceux UDP.
  • Outre le protocole, le port sur lequel les connexions client sont acceptés peuvent également être sélectionnées. Par défaut, Zeroshell utilise 1194 port puisque c'est celui officiellement attribué par l'IANA pour OpenVPN.
  • L'authentification est définie de sorte que seuls les noms d'utilisateur et mots de passe des utilisateurs sont authentifiés Zeroshell locales. Authentification avec les certificats X.509 ou RADIUS distant ou Kerberos 5 serveurs n'est pas intuitif pour être inclus dans la configuration par défaut.
  • Depuis l'authentification du client avec X.509 est désactivé par défaut, le serveur OpenVPN a besoin d'un certificat en vue d'établir un canal crypté avec les clients VPN. Par défaut, ce certificat est générée automatiquement par Zeroshell au premier démarrage.
  • Par défaut, OpenVPN Zeroshell fonctionne en mode de routage avec des adresses IP dans le sous-réseau 192.168.250.0/255.255.255.0, et la passerelle par défaut et DNS 192.168.250.254 (lui-même). En outre, la source NAT est activé par défaut pour éviter d'avoir à définir des itinéraires statiques ou activer RIP version 2 du protocole sur les routeurs d'atteindre les clients connectés en VPN.
  • Enfin, la compression LZO et le chiffrement du trafic sont activés. Toutefois, ces deux fonctions ne peuvent être fixés par l'interface web et, par conséquent, ne peut pas être désactivé.
À ce stade, après avoir pris un coup d'oeil à la configuration initiale VPN Host-to-LAN, nous allons voir maintenant comment ajuster le comportement Zeroshell à nos besoins. Il est immédiatement évident que OpenVPN logiciel dispose d'une configuration extrêmement flexibles grâce à ses nombreux réglages, mais que l'interface web Zeroshell ne permet qu'un nombre limité d'entre eux à être édité. Dans la tentative de contourner le problème, la page de configuration comprend une ligne de commande Paramètressur le terrain où les paramètres peuvent être entrés directement dans le processus deopenvpn.

OpenVPN authentification avec nom d'utilisateur et mot de passe

Utilisation de l'authentification boîte de sélection (voir illustration) la méthode d'authentification peut être sélectionné à l'aide nom d'utilisateur et mot de passe seulement, X.509 certificat ou les deux. Pour l'authentification avec nom d'utilisateur et mot de passe, différentes sources peuvent être utilisées pour vérifier les informations d'identification. Zeroshell sélectionne le fournisseur d'authentification correcte basée sur le domaine indiqué dans le nom d'utilisateur, qui doit être dans le username@domaineformat. Si l'utilisateur n'a pas d'indiquer le domaine, Zeroshell utilise le domaine par défaut dont les paramètres sont décrits plus loin et qui, initialement, correspondent à la base de données d'utilisateurs locaux. sources d'authentification Kerberos 5 peuvent être des serveurs, domaine Kerberos pour l'authentification croisée (relation de confiance) avec les autorités locales ou KDC serveurs RADIUS externes. L'illustration ci-dessous montre comment configurer des domaines d'authentification.

OpenVPN authentification domains
Sources d'authentification pour OpenVPN. Cliquez sur l'image pour l'agrandir.

Cliquez sur le bouton [+] dans le cadre Password Authentication pour ouvrir un formulaire utilisé pour configurer le domaine d'authentification.

Kerberos 5 de domaine

Il s'agit d'un Kerberos 5. Entrez le nom dans le nom de domaine et sélectionnez l'authentification Kerberos externe 5 Realm ou confiance Kerberos 5. Dans le premier cas, les pouvoirs sont tout simplement vérifié tenter d'acquérir un TGT (TGT) pour l'utilisateur. Dans le second cas, en plus de TGT acquisition, l'acquisition d'un ticket de service est valable également tenté d'exploiter la relation de confiance entre les autorités locales Zeroshell REALM et l'externe. Il est évident que ce second cas, offre un meilleur niveau de sécurité lié à la vérification de l'authenticité du serveur Kerberos externe, mais nécessite une configuration plus expert, car la relation de confiance doit être établi sur les deux Zeroshell et l'externe KDC.
Rappelez-vous que dans cette phase, seul le nom de domaine est spécifié mais pas les serveurs autorité Kerberos pour ce domaine. La façon dont Zeroshell sait qui KDC pour contacter afin de vérifier les informations d'identification de l'utilisateur distant qui veut se connecter au VPN se trouve dans la forme activée par [Kerberos 5] ->[Realms]. Ici, le domaine externe avec la liste des serveurs Kerberos pertinentes peuvent être ajoutées ou de découverte automatique qui suppose l'utilisation des enregistrements SRV DNS spécifiques pour Kerberos peut être activé.
Si vous souhaitez autoriser les utilisateurs de Microsoft de domaine Active Directory pour être authentifié sur OpenVPN, il suffit de se rappeler que d'un serveur Kerberos est exécuté sur chaque contrôleur de domaine Windows 2000/2003 en mesure d'authentifier les utilisateurs. Par conséquent, indiquez simplement le nom de domaine Active Directory en tantKerberos externe 5 Realmet ajouter le domaine à la liste des contrôleurs de domaine sous la forme [Kerberos 5] ->[Realms]. Depuis Active Directory DNS de gérer les enregistrements SRV pour Kerberos, la découverte automatique peut être activé au lieu de tout simplement en indiquant les contrôleurs de domaine.
Enfin, dans le cadrePassword Authentication, note que automatiquement autoriser toute confiance Kerberos 5 est marqué. Si elle est activée, tous les utilisateurs dans les domaines qui ont une relation d'authentification croisée peuvent être authentifiés dans VPN sans avoir à ajouter chacun de ces domaines comme décrit ci-dessus.

Domaine RADIUS

Si les utilisateurs doivent être authentifiés par un serveur RADIUS externe, le nom de domaine doit être inscrit et RADIUS Proxy de domaine sélectionné. Depuis OpenVPN utilise le mécanisme de mise en cache de requête FreeRADIUS locales dont les demandes d'authentification sortes à l'autorité RADIUS, vérifiez d'abord qu'il est en marche et ajouter le serveur RADIUS externe à la liste des serveurs proxy dans [RADIUS] ->[Proxy]. Le serveur RADIUS externe secret partagé doit être spécifié dans cette liste.
Rappelez-vous le @domain partie du nom d'utilisateur peut être nécessaire d'éliminer en fonction de la configuration du serveur RADIUS externe lors de la demande d'authentification. Dans ce cas, lors de l'ajout du serveur RADIUS [RADIUS]->[Proxy], désactivez No Strip
Si vous souhaitez déléguer un serveur RADIUS pour répondre directement aux délégué ou un autre serveur pour toute demande d'authentification RADIUS qui n'est pas sous les domaines explicitement défini, ajoutez un serveur RADIUS par défaut en sélectionnant Default dans le Type Realm.
Enfin, comme pour l'authentification Kerberos 5, le Password Authentication cadre comprend un automatiquement autoriser tout Proxy RADIUS de domaine. Lorsque cet indicateur est activé, l'authentification du proxy est tentée, même si le domaine est pas explicitement autorisé.

Ayant vu la configuration côté serveur pour l'authentification avec nom d'utilisateur et mot de passe, il convient de noter que le auth --user-pass option doit être définie dans le fichier de configuration VPN client ou sur le openvpn ligne de commande afin que les pouvoirs demandes des clients VPN.

OpenVPN authentification avec certificats X.509

Authentification avec les certificats X.509, où chaque utilisateur qui veut se connecter en VPN a besoin d'un certificat et pertinents clé privée, peut être demandé avec ou sans authentification avec nom d'utilisateur et mot de passe selon que certificat X.509 Mot de passe ou seulement certificat X.509. Dans le premier cas, si l'authentification X.509 est un succès, une deuxième authentification est exécuté avec Kerberos 5 ou RADIUS comme décrit précédemment. En règle générale, lorsque ce type de double authentification est utilisé, le certificat X.509 n'est pas l'utilisateur, mais un certificat d'hôte associé à la machine. Cette identification de l'utilisateur masques (car plusieurs utilisateurs peuvent se connecter depuis le même système) et donc le nom d'utilisateur et mot de passe sont demandés.
Dans le second cas, les certificats personnels affectés à l'utilisateur sont utilisés lorsque l'utilisateur est identifié par le nom commun du certificat (le subject du CN). Cela fait des demandes d'informations d'identification supplémentaires superflus.
Pour un certificat client (qu'il soit personnel affecté à l'utilisateur ou l'hôte affecté à la machine) pour être reconnu comme valide par la passerelle OpenVPN, deux conditions doivent être remplies: la première est que l'autorité de certification (CA en abrégé) qui a signé le certificat est dans le ZeroshellTrusted CA fichier, le deuxième est que ce CA est habilité à vérifier l'accès au VPN
. Pour répondre à ces deux conditions, voir l'illustration ci-dessouset suivez les étapes suivantes:
OpenVPN et authentication avec certificats X.509
Configuration de l'authentification avec certificats . Cliquez sur l'image pour l'agrandir.

  • Cliquez sur le [Authentification] dans la configuration X.509 cadre. Comme vous pouvez le voir, trois certificats d'autorité de certification sont chargées. Comme tous les certificats signés par ces CA sont considérés comme authentiques, seuls ceux correspondant à la version vérifiée autorité de certification sont autorisés pour la connexion VPN. Dans notre cas, ce sont des certificats émis par l'exemple Zeroshell CA.
  • Cliquez sur le [Trusted CA Manager] et importer le certificat de l'autorité de certification que vous voulez autoriser le formulaire au format PEM (Base-64 cryptage). Si vous avez une liste de révocation de certificats (CRL) pour la publication certificat révoqué, vous pouvez charger il suit la procédure d'importation même CA. Merci à CRL, certificats révoqués n'auront pas accès à la passerelle VPN.
  • Pour revenir à laOpenVPN X.509 authentification par formulaire, vous pouvez voir que le CA nouvellement importée est considérée comme une source fiable de certification. Pour autoriser les connexions VPN pour les clients qui ont un certificat délivré par cet organisme de certification, il suffit de cocher la case de contrôle et cliquez sur [Enregistrer] pour enregistrer.

VPN en route ou en mode bridge

En commençant par Zeroshell 1.0.beta7, vous pouvez voir que l'interface VPN99 virtuel est automatiquement créé et configuré lors du démarrage. Il s'agit d'un dispositif de TAP sens d'une interface Ethernet avec le logiciel OpenVPN qui le raccorder à l'tunnel crypté SSL et permet à la direction du noyau comme s'il s'agissait d'un autre type de carte Ethernet. Cela signifie que cette interface peut être attribué une adresse IP et configurer le routage de façon appropriée ou faire partie d'un bridge avec d'autres interfaces Ethernet. Sur la base si vous optez pour la possibilité premier ou le deuxième (où VPN99 est membre d'un bridge), les connexions VPN sera de routage ou de bridge.
Il est évident que si mode Routeur est sélectionné, l'adresse IP affectée à l'interface VPN99 doit correspondre à la passerelle par défaut attribuées aux clients VPN. Cela ne doit pas être fait manuellement depuis Zeroshell affecte automatiquement l'adresse IP de VPN99 lorsque le service de réseau privé virtuel est configuré.
Enfin, il est important de noter que la façon OpenVPN est configuré sur Zeroshell de clients connectés simultanément en VPN sont isolés les uns des autres et ne peuvent donc pas communiquer à moins via la passerelle. Ce choix a été forcé par les critères de sécurité qui, par exemple, nous voulons empêcher un client VPN de partager son interface virtuelle et sniff de la circulation ne s'adresse pas à lui. Toutefois, si vous croyez que les clients VPN devrait communiquer les uns avec les autres, ajoutez simple --client-client à l'interface WebCommand Line Parameterszone de texte. Ce paramètre permettra de visibilité dans la couche 2 par le openvpn processus et non dans le noyau qui permet aux clients de voir les uns les autres. Depuis le noyau ne gère pas cette communication, il n'ya aucun espoir de la configuration du firewall (Netfilter) pour éviter tout type de trafic entre les clients dans le réseau privé virtuel.

Statistiques VPN et journal messages


OpenVPN statistics
Statistiques VPN. Cliquez sur l'image pour l'agrandir.

OpenVPN logs
Messages journal VPN. Cliquez sur l'image pour l'agrandir.


Notes

(*)La manière dont les utilisateurs sont authentifiés dépendent de la configuration du serveur OpenVPN. Zeroshell soutient un système d'authentification multi-domaine dans lequel vous devez configurer la source d'authentification qui peut être un KDC Kerberos 5 (locaux, externes et de confiance) ou un serveur RADIUS externe. Un de ces domaines d'authentification est défini comme le domaine par défaut. Les utilisateurs du domaine par défaut n'ont pas besoin de spécifier le nom d'utilisateur sous la forme de username@domaine (ex. fulvio@example.com). Notez que le nom de domaine n'est pas sensible à la casse, car si le domaine est configuré pour être un royaume Kerberos V, il est automatiquement converti en majuscules.



    Copyright (C) 2005-2012 by Fulvio Ricciardi