Difference between revisions of "OpenVPN Bridge/fr"

From SME Server
Jump to navigationJump to search
 
(56 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{Languages|OpenVPN_Bridge}}
 
{{Languages|OpenVPN_Bridge}}
{{usefulnote}}
+
{{usefulnote/fr}}
 
<blockquote style="float: right;">[[File:openvpn.png|250px]]</blockquote><br>
 
<blockquote style="float: right;">[[File:openvpn.png|250px]]</blockquote><br>
 
===Mainteneur===
 
===Mainteneur===
[mailto:daniel@firewall-services.com[[User:VIP-ire|Daniel B.]]] from [http://www.firewall-services.com Firewall Services]
+
[mailto:daniel@firewall-services.com][[User:VIP-ire|Daniel B.]] from [http://www.firewall-services.com Firewall Services]
  
 
=== Version ===
 
=== Version ===
  
{{ #smeversion: smeserver-openvpn-bridge }}
+
{{#smeversion: smeserver-openvpn-bridge }}
  
{{ #smeversion: smeserver-bridge-interface}}
+
{{#smeversion: smeserver-bridge-interface}}
 
=== Description ===
 
=== Description ===
Le Serveur KOOZALI versions 7.4 (obsolète), 8 (obsolète) et 9 disposent d’une contribution de Firewall Services permettant d’obtenir un serveur [http://openvpn.net OpenVPN] utilisable facilement, avec une page d'administration dans le gestionnaire du serveur.
+
Le Serveur KOOZALI versions 7.4 (obsolète), 8 (obsolète), 9 (obsolète) et 10 disposent d’une contribution de Firewall Services permettant d’obtenir un serveur [http://openvpn.net OpenVPN] utilisable facilement, avec une page d'administration dans le gestionnaire du serveur.
 +
{{Note box|type=Note :|cette page ne comporte pas la traduction de la totalité de la page en anglais. Par contre, il y a des paragraphes qui ne figurent pas dans la version anglaise.}}
 +
OpenVPN est une solution VPN SSL open source complète qui s'adapte à un large éventail de configurations, y compris l'accès à distance, les VPN de site à site, la sécurité Wi-Fi et les solutions d'accès à distance à l'échelle de l'entreprise avec équilibrage de charge, basculement, et des contrôles d'accès précis. Partant du principe fondamental que la complexité est l'ennemi de la sécurité, OpenVPN offre une alternative économique et légère aux autres technologies VPN qui est bien ciblée pour les marchés des PME et des entreprises.
  
=== Installation ===
+
Cette contribution vous aidera à configurer OpenVPN en mode bridge. Avec ce mode, les clients se connectant au VPN depuis l'extérieur obtiendront une adresse IP dans le sous-réseau local, le VPN et l'interface interne sont pontés. Il n'y a pas de problème de routage, pas de règles supplémentaires de pare-feu. L'inconvénient est que vous ne pouvez pas limiter les services auxquels les clients VPN ont accès, ils sont simplement traités comme des ordinateurs connectés localement.
 +
 
 +
=== Conditions requises ===
 +
*Vous devez installer et activer la contribution [[BridgeInterface/fr|bridge-interface]].
 +
*Vous pouvez installer [[PHPki/fr]] pour gérer facilement vos certificats.
  
 
Pour résumer la problématique, il y a 3 paquets à installer.
 
Pour résumer la problématique, il y a 3 paquets à installer.
  
     * [[BridgeInterface|bridge-interface]] : le paquet qui crée un pont entre l'interface interne et une interface TAP.
+
     * [[BridgeInterface/fr|bridge-interface]] : le paquet qui crée un pont entre l'interface interne et une interface TAP.
     * [[PHPki|PHPki]] : le paquet qui servira à gérer vos certificats.
+
     * [[PHPki/fr|PHPki]] : le paquet qui servira à gérer vos certificats, si vous souhaitez les gérer avec cette contribution.
     * [[OpenVPN Bridge|smeserver-openvpn-bridge]] : le paquet qui installe le serveur OpenVPN.
+
     * [[OpenVPN_Bridge/fr|smeserver-openvpn-bridge]] : le paquet qui installe le serveur OpenVPN.
  
Le serveur OpenVPN attribuera des IP de votre réseau local aux clients VPN, ils auront ainsi accès à toutes les ressources accessibles depuis votre réseau local (partages de fichier, intranet, services de mail interne, etc). C’est donc un service de type « site to client » qui ne vous permet pas de relier deux SME Server ensemble (mais l’auteur de cette contribs géniale en a une autre dans ses cartons pour faire cela.)
+
Le serveur OpenVPN attribuera des IP de votre réseau local aux clients VPN, ils auront ainsi accès à toutes les ressources accessibles depuis votre réseau local (partages de fichier, intranet, services de courrier interne, etc.). C’est donc un service de type « site to client » qui ne vous permet pas de relier deux serveurs SME KOOZALI ensembles (mais l’auteur de cette contribution géniale en a une autre dans ses cartons pour faire cela.)
  
 
On y va pour l’installer, ce n’est pas bien compliqué, un grand merci à [[User:VIP-ire|Daniel]] (de Firewall Services).…spéciale dédicace.
 
On y va pour l’installer, ce n’est pas bien compliqué, un grand merci à [[User:VIP-ire|Daniel]] (de Firewall Services).…spéciale dédicace.
  
==== bridge-interface ====
+
=== Installation ===
 +
<tabs container><tab name="Pour SME 10">
 +
/!\ Nouveau cipher par défaut : AES-128-CBC  et HMAC  SHA256 ; si vous avez des problèmes, vérifier les options de configuration.
 +
yum --enablerepo=smecontribs install smeserver-openvpn-bridge
  
On installe le paquet qui va créer l'interface TAP (interface réseau virtuelle).
+
</tab>
 +
<tab name="Pour SME 9">
 +
Vous devez activer le dépôt '''[[epel]]'''.
 +
yum --enablerepo=smecontribs,epel install smeserver-openvpn-bridge
  
  yum --enablerepo=smecontribs install smeserver-bridge-interface
+
</tab>
 +
<tab name="Pour SME 8">
 +
  yum --enablerepo=smecontribs install smeserver-openvpn-bridge
 +
</tab>
 +
</tabs>
  
 
Pour la plupart des installations les paramètres par défaut suffiront, mais vous pouvez quand même les vérifier.
 
Pour la plupart des installations les paramètres par défaut suffiront, mais vous pouvez quand même les vérifier.
Line 40: Line 56:
 
     tapInterface=tap0
 
     tapInterface=tap0
  
Au besoin vous avez [[BridgeInterface|la page de l’auteur]] pour modifier cela, je dois reconnaître que je n’en ai pas eu besoin.
+
Au besoin vous avez [[BridgeInterface/fr| la page de l’auteur]] pour modifier cela, je dois reconnaître que je n’en ai pas eu besoin.
 +
 
 +
 
 +
Si vous souhaitez utiliser PHPki pour gérer vos certificats, vous devez l'installer :
 +
yum --enablerepo=smecontribs install smeserver-phpki-ng
 +
 
 +
Vous trouverez plus d'information sur [[PHPki/fr| cette page.]] Vous devez alors créer vos certificats '''avant''' de les configurer dans OpenVPNBridge (paragraphe suivant).
 +
 
 +
====Configurer les certificats====
 +
{{Note box|type=Note : |si vous utilisez [[PHPki]] pour gérer les certificats, vous pouvez aller [[OpenVPN_Bridge/fr#Cr.C3.A9ation_des_certificats|ici]] pour plus de détails.
 +
Si vous mettez à jour une installation précédente, vous pouvez aller [[OpenVPN_Bridge#Migrate_previous.2Fexisting_OpenVPN_Server_certificates|ici]].}}
 +
 
 +
Vous pouvez maintenant aller dans le gestionnaire du serveur, vous trouverez un nouveau menu « OpenVPN-Bridge » dans la rubrique « Configuration ». Là, en bas de page, vous devrez d'abord cliquer sur le lien « Configuration des certificats » et vous devrez saisir diverses informations obligatoires :
 +
 
 +
{{Note box|type=Note : |tous les certificats doivent être encodés [http://en.wikipedia.org/wiki/Privacy_Enhanced_Mail PEM].}}
 +
 
 +
*une URL où OpenVPN peut mettre à jour la CRL ; si vous utilisez PHPki sur le même serveur, vous pouvez laisser la valeur par défaut ;
 +
{{Note box|type=Note : |si aucun fichier CRL valide (au format PEM) n'est trouvé à cette URL, vous recevrez un courriel toutes les heures dans la boîte aux lettres de l'administrateur.}}
 +
 
 +
*un certificat principal (utilisé pour vérifier les certificats des clients) ;
 +
*le certificat du serveur (utilisé par les clients pour vérifier le serveur) ;
 +
*la clé privée du serveur associée au certificat ;
 +
*les paramètres Diffie-Helman (utilisés pour échanger la clé de session) ;
 +
*une clé facultative générée par OpenVPN pour ajouter l'authentification TLS.
 +
{{Note box|type=Note : |vous pouvez laisser ce champ vide si vous ne souhaitez pas utiliser l'authentification TLS supplémentaire.}}
 +
 
 +
Vous pouvez utiliser la contribution [[PHPki]] pour gérer cela facilement. [[PHPki]] n'a pas besoin d'être installé sur le même serveur. Vous pouvez également gérer votre PKI manuellement, ou avec votre propre outil PKI si vous en utilisez déjà un (par exemple, [http://tinyca.sm-zone.net/tinyCA]).
 +
 
 +
Une fois que vous avez entré toutes les informations requises, il vous suffit de soumettre le formulaire.
 +
 
 +
Vous devriez alors voir le message :
 +
 
 +
Statut des certificats Les certificats sont prêts
 +
 
 +
Avec « Les certificats sont prêts » en vert. Si ce n'est pas le cas, vous avez un problème avec la configuration des certificats.
  
 
==== PHPki ====
 
==== PHPki ====
Line 56: Line 106:
 
  sv u /service/httpd-pki
 
  sv u /service/httpd-pki
  
==== smeserver-openvpn-bridge ====
 
 
Et enfin on installe le serveur VPN :
 
 
yum --enablerepo=smecontribs install smeserver-openvpn-bridge
 
  
 
==== Commande et monitoring d'openvpn ====
 
==== Commande et monitoring d'openvpn ====
Line 179: Line 224:
 
Une fois validé, votre certificat est créé, et vous pouvez en disposer dans le menu « manage certificates » de phpki.
 
Une fois validé, votre certificat est créé, et vous pouvez en disposer dans le menu « manage certificates » de phpki.
  
=== Client Linux Debian Gnome===
+
=== Client Linux Debian XFCE===
  
 
Texte copié à partir de la page de Stephdl [http://geekeries.de-labrusse.fr/?p=235] sur la configuration de network-manager, avec son aimable autorisation.
 
Texte copié à partir de la page de Stephdl [http://geekeries.de-labrusse.fr/?p=235] sur la configuration de network-manager, avec son aimable autorisation.
Line 205: Line 250:
 
     la clef privée de l’utilisateur, en général user-key.pem
 
     la clef privée de l’utilisateur, en général user-key.pem
 
     une clef statique prépartagée, en général takey.pem
 
     une clef statique prépartagée, en général takey.pem
 +
 +
Pour ce faire, toujours dans le gestionnaire du serveur, dans Sécurité / Gestion des certificats, dans le Menu de gestion des certificats, cliquer sur la ligne « Manage certificate ».
 +
 +
Une nouvelle page s'ouvre avec un tableau de tous les certificats. Repérer le certificat et cliquer en bout de ligne sur l'icône de téléchargement.
 +
 +
Une nouvelle page s'ouvre avec, à gauche une liste déroulante des différents fichiers du certificat :
 +
# PKCS12 Bundle ;
 +
# PEM certificate              qui correspond au certificat en lui-même (environ 1,9 kio en 2048 bits) ;
 +
# PEM key                      qui est la clé privé du certificat      (environ 1,7 kio en 2048 bits) ;
 +
# PEM Bundle
 +
# PEM Bundle w/Root            qui est le certificat racine ou CA      (environ 5,4 kio en 2048 bits).
 +
 +
Attention, quand vous allez demander le téléchargement des fichiers 2, 3 et 5, les fichiers 2 et 5 vont être téléchargés sous le même nom avec l'extension .pem. Renommer rapidement le n°2 en *-cert.pem et le n°5 en *-CA.pem pour éviter toute confusion.
 +
 +
La clé statique pré-partagée est à télécharger en revenant au tableau PHPki : « Menu de gestion des certificats », dans l'avant-dernière ligne.
 +
 +
  
 
Mettre ces 4 certificats sur une clé USB, par exemple, pour pouvoir les installer sur la machine cliente.
 
Mettre ces 4 certificats sur une clé USB, par exemple, pour pouvoir les installer sur la machine cliente.
  
 
La suite en image…
 
La suite en image…
====Debian Stretch (v.9) Gnome Classic====
+
====Debian Buster (v.10) XFCE====
 +
Le paquet Network Manager (network-manager) doit être installé.
 +
Cliquer droit sur l'icône de la connexion en cours. Cela ouvre une fenêtre dont la 4e ligne s’appelle « Modifier les connexions ». Cliquer droit sur cette ligne : la fenêtre suivante s'ouvre.
 +
 
 +
[[File:Connexion_reseau_v10.png]]
 +
 
 +
Activer la ligne VPN en la sélectionnant et cliquer sur le signe + en bas à gauche de la fenêtre. Une nouvelle fenêtre s'ouvre :
 +
 
 +
[[File:Selectionner_type_v10.png]]
 +
 
 +
La fenêtre déroulante du milieu est généralement indiquée Ethernet par défaut. Descendre dans la liste pour chercher les connexions VPN et choisir OpenVPN, puis cliquer sur le bouton « Créer... ».
 +
1. La nouvelle fenêtre suivante s'ouvre :
 +
 
 +
[[File:Modif_connex_VPN1_v10.png]]
 +
 
 +
- Donner un nom à votre connexion VPN dans le champ « Nom de la connexion » ;
 +
 
 +
- champ « Passerelle », mettre l'adresse IP de votre serveur (ou son nom : mon_serveur.com) ;
 +
 
 +
- choisir le type d'authentification à « Mot de passe avec certificats (TLS) » ;
 +
 
 +
- entrer votre nom d'utilisateur et le mot de passe associé ;
 +
 
 +
- en bout de cette ligne, cliquer sur la petite icône pour faire le choix approprié : en géréral « sauvegarder le mot de passe pour cet utilisateur » mais en cas d'utilisation d'une authentificaton au serveur au moyen de LDAP/SSSL, il faut choisir « Enregistrer le mot de passe pour tous les utilisateurs » de l'ordinateur portable ;
 +
 
 +
- télécharger les certificats :
 +
 
 +
-- le certificat de l'utilisateur est de type : « utilisateur.pem » ;
 +
 
 +
-- le certificat du CA est du type : « utilisateur-root.pem » ;
 +
 
 +
-- la clé privée est du type : « utilisateur-key.pem ».
 +
 
 +
Même si on n'utilise pas de «'''mot de passe pour la clé privée»''', il faut cliquer sur la petite icône à droite du champ pour sélectionner l'option « Le mot de passe n'est pas nécessaire » sinon, il n'est pas possible de sauvegarder la configuration, ce qu'il faut faire avant de passer à la phase suivante en cliquant sur le bouton « Enregistrer ».
 +
 
 +
Voir ci-dessous, un exemple de ce que cela doit donner :
 +
 
 +
[[File:Modif_connex_VPN1_VPN_v10.png]]
 +
 
 +
2. Puis cliquer sur l'onglet « Général » et cocher la case « Tous les utilisateurs peuvent se connecter à ce réseau » comme sur l'image ci-dessous :
 +
 
 +
[[File:Modif_connex_VPN1_General_v10.png]]
 +
 
 +
3. Si tout semble correct, appuyer sur le bouton « Enregistrer » en bas à droite pour enregistrer la configuration, puis retourner sur l'onglet VPN pour cliquer sur le bouton « Advanced ». Une fenêtre s'ouvre avec 4 onglets. Cliquer sur l'onglet « Général » et le configurer comme indiqué dans l'image ci-dessous :
 +
 
 +
[[File:Modif_connex_VPN1_advanced_general_v10.png]]
 +
 
 +
Puis cliquer sur l'onglet « Authentification TLS » et le configurer comme indiqué dans l'image ci-dessous, notamment, il faut installer la clé « takey.pem »
 +
 +
[[File:Modif_connex_VPN1_advanced_Auth_v10.png]]
 +
 
 +
Cliquer sur « Valider » pour enregistrer les configurations et fermer cette fenêtre.
 +
 
 +
4. On est revenu sur cette fenêtre ci-dessous sur laquelle on sélectionne l'onglet « Paramètres IPV4 » :
 +
[[File:Modif_connex_VPN1_IPV4_v10.png]]
 +
 
 +
5. Puis on clique sur le bouton « Routes ». Une nouvelle fenêtre s'ouvre :
 +
[[File:Modif_connex_VPN1_IPV4_routes_v10.png]]
 +
 
 +
Cocher la case « Utiliser cette connexion uniquement pour les ressources de son réseau ».
 +
Valider. Le fenêtre se ferme.
 +
On revient à la fenêtre précédente. Enregistrer. C’EST FINI !
 +
 
 +
====Debian Stretch (v.9) Gnome Classic ou XFCE====
 +
 
 +
 
 
1. Aller dans Applications/Outils système/Outils réseau
 
1. Aller dans Applications/Outils système/Outils réseau
 +
Si vous avez déjà un réseau de configuré, vous pouvez arriver à cette fenêtre :
  
 
[[File:Reseau.png|600px]]
 
[[File:Reseau.png|600px]]
Line 230: Line 358:
 
- mettre l'adresse IP de votre serveur suivie de «:1194» dans le champ «Passerelle» ;
 
- mettre l'adresse IP de votre serveur suivie de «:1194» dans le champ «Passerelle» ;
  
- choisir le type d'authentification à «Certificats (TLS) ;
+
- choisir le type d'authentification à «Mot de passe avec certificats (TLS)» ;
 +
 
 +
- entrer votre nom d'utilisateur et le mot de passe associé ;
  
 
- télécharger les certificats :
 
- télécharger les certificats :
Line 240: Line 370:
 
-- la clé privée est du type : «utilisateur-key.pem».
 
-- la clé privée est du type : «utilisateur-key.pem».
  
Même si on n'utilise pas de mot de passe pour la clé privé, il faut cliquer sur la petite icône à droite du champ pour sélectionner l'option «The password is not required» sinon, il n'est pas possible de sauvegarder la configuration, ce qu'il faut faire avant de passer à la phase suivant en cliquant sur le bouton «Ajouter» ou Appliquer».
+
Même si on n'utilise pas de «'''mot de passe pour la clé privée»''', il faut cliquer sur la petite icône à droite du champ pour sélectionner l'option « The password is not required » sinon, il n'est pas possible de sauvegarder la configuration, ce qu'il faut faire avant de passer à la phase suivant en cliquant sur le bouton «Ajouter» ou Appliquer».
 +
 
 +
Voir ci-dessous, un exemple de ce que cela doit donner :
 +
 
 +
[[File:VPN_config_1.png|600px]]
 +
 
 +
4. Si tout semble correct, appuyer sur le bouton «Appliquer» en bas à droite pour enregistrer la configuration, puis sur le bouton « Advanced ». Une fenêtre s'ouvre avec 4 onglets. Cliquer sur l'onglet « Général » et le configurer comme indiqué dans l’image ci-dessous :
 +
 
 +
[[File:OpenVPN_9_Options_avancees_general.png]]
 +
 
 +
Puis cliquer sur l'onglet « Authentification TLS »
 +
 
 +
[[File:VPN_authentif_TLS.png|600]]
 +
 
 +
Cocher les 2 cases comme sur la photo puis cliquer sur la fenêtre déroulante « Fichier de clé » pour aller chercher le fichier takey.pem.
 +
Même manipulation sur la ligne du dessous pour choisir la direction de la clé à 1.
 +
 
 +
Puis cliquer sur « Valider » pour enregistrer les configurations et on revient à la fenêtre :
 +
 
 +
[[File:VPN_config_1.png|600px]]
 +
 
 +
4. Sur cette fenêtre ci-dessus, on sélectionne l'onglet « Paramètres IPV4 » :
 +
 
 +
[[File:OpenVPN_9_para_IPV4.png]]
 +
 
 +
5. Puis on clique sur le bouton « Routes ». Une nouvelle fenêtre s'ouvre :
  
 +
[[File:OpenVPN_9_routes_IPV4.png]]
  
 +
Cocher la case « Utiliser cette connexion uniquement pour les ressources de son réseau ». Valider. Le fenêtre se ferme. On revient à la fenêtre précédente. Enregistrer.
  
4. Si vous avez déjà un réseau de configuré, vous pouvez arriver à cette fenêtre :
+
C’EST FINI !
  
 +
==== Debian Jessie (v.8) XFCE ====
 +
Aller dans «Menu des applications/Paramètres/Connexions réseau». Cette fenêtre s'ouvre :
  
Image Périphériques Outils réseau
+
[[File:Jessie connexions reseau.png]]
  
5. Dans ce cas, appuyer sur le bouton «Configurer» et cela ouvre la fenêtre suivante :
+
Cliquer sur «+Ajouter». Une nouvelle fenêtre s'ouvre et cliquez sur la fenêtre déroulante pour valider le choix «OpenVPN» :
  
 +
[[File:Jessie_choix_VPN.png]]
  
Image Connexions réseau
+
Puis cliquer sur le bouton «Créer...».
  
6. Appuyer sur «Add». Une nouvelle fenêtre s'ouvre avec un menu déroulant
+
La suite de la procédure est identique à la procédure pour Wheezy ci-dessous.
  
====Wheezy (v.7) ====
+
====Debian Wheezy (v.7) Gnome Classic ====
  
 
Faites un clic gauche sur N-M, et sélectionner connexions VPN, puis configurez le VPN… Ensuite ajouter
 
Faites un clic gauche sur N-M, et sélectionner connexions VPN, puis configurez le VPN… Ensuite ajouter
Line 318: Line 478:
 
Sur Windows, le répertoire de configuration pour OpenVPN est C:\Program Files\OpenVPN\config. Vous pouvez déposer là tous les fichiers nécessaires, ou créer des sous-répertoires si vous voulez configurer plusieurs connexions. Vous pouvez aussi déposer vos fichiers dans les répertoires %utilisateur\OpenVPN\config.
 
Sur Windows, le répertoire de configuration pour OpenVPN est C:\Program Files\OpenVPN\config. Vous pouvez déposer là tous les fichiers nécessaires, ou créer des sous-répertoires si vous voulez configurer plusieurs connexions. Vous pouvez aussi déposer vos fichiers dans les répertoires %utilisateur\OpenVPN\config.
  
Put here (either in the config directory or in a sub folder) the PKCS#12 file you have downloaded earlier, and the shared secret key if you used one on the server. Now create a text file, and change the extension to be .ovpn (the name isn't important). Edit it with your favorite text editor. Now, go in the panel of OpenVPN-Bridge and click on the link "Display a functional client configuration file". Copy and past this in your config file (.ovpn), and just change the pkcs12 directive to match your certificate name. Save this file. Now your client should be able to connect with the OpenVPN GUI.  
+
Déposer, soit dans le répertoire de configuration, soit dans un sous-répertoire, le fichier PKCS#12 que vous avez téléchargé précédemment, et la clé secrète partagée (takey, je suppose, ndt) si vous en utilisez une sur le serveur. Puis, créer un fichier texte et changer l'extension en .ovpn (le nom n'est pas important). L'éditer avec votre éditeur de texte favori. Aller maintenant dans le panneau d'OpenVPN-Bridge et cliquer sur le lien « Afficher un fichier de configuration client fonctionnel ». Copier et coller-le dans votre fichier de configuration (.ovpn), et changer uniquement la directive pkcs12 pour qu'elle corresponde à votre nom de certificat. Sauvegarder ce fichier. Maintenant votre client devrait pouvoir se connecter avec l'interface graphique utilisateur OpenVPN.
 +
===Client Apple Mac===
 +
Installer tunnelblick
 +
 
 +
Cocher la case « tout le trafic IPv4 à travers le VPN ».
 +
 
 +
* Si cette option est cochée, Tunnelblick demandera à OpenVPN de router tout le trafic IPv4 à travers le serveur VPN.
 +
* Si cette option n'est pas cochée, par défaut OpenVPN utilisera le VPN uniquement pour le trafic qui est destiné au réseau du VPN. Tout le reste du trafic utilisera la connexion internet normale sans passer par le VPN. Le comportement par défaut de OpenVPN peut être modifié dans la configuration OpenVPN ou dans le serveur VPN et peut faire que tout le trafic IPv4 soit routé vers le serveurVPN comme si cette option était cochée.
 +
 
 +
Fichier de configuration
 +
 
 +
Voici un fichier de configuration qui fonctionne mais dont la sécurité/sûreté n'a pas été testée.
 +
client
 +
dev tap
 +
proto udp
 +
remote MonServeur.com 1194
 +
resolv-retry infinite
 +
nobind
 +
auth-user-pass
 +
persist-key
 +
persist-tun
 +
pkcs12 MaCle.p12
 +
tls-client
 +
ns-cert-type server
 +
tls-auth takey.pem 1
 +
verb 3
 +
 
 +
=== Client Android ===
 +
 
 +
Vous ne pouvez pas utiliser le mode TAP, et donc openvpn-bridge, avec Android.
 +
 
 +
S'il vous plaît, lire ceci pour plus d'information :
 +
 
 +
https://openvpn.net/faq/why-does-the-app-not-support-tap-style-tunnels/
 +
 
 +
Vous pouvez utiliser openvpn-routed :
 +
 
 +
https://wiki.contribs.org/OpenVPN_Routed
 +
== Advanced configuration ==
 +
 
 +
Some advanced options are not presented in the panel. The goal was to keep the panel as simple as possible as most installations won't need to change advanced settings. But advanced options are still available with some DB keys:
 +
 
 +
*'''ConfigRequired''': (enabled|disabled). If set to enable, clients will be rejected unless a configuration rule match the common name of their certificate. This can be useful if you use just one CA to sign a lot of different certificates, but only want a limited number of certificates to connect to the VPN
 +
 
 +
*'''UDPPort''': (number) Change the port the server listen to when running in UDP mode
 +
 
 +
*'''TCPPort''': (number) Change the port the server listen to when running in TCP mode
 +
 
 +
*'''access''': (private|public) you should let this to public as running a VPN server just for the local network make no sens
 +
 
 +
*'''cipher''': (valid cipher name) You can force the cipher to use. Starting SME 10, default is AES-128-CBC . If you put auto ( or delete this key, for SME9 and before ) the default will be the current of openvpn wich is as per 2.4 :BF-CBC. Also when both client and server are at least version 2.4, they will negotiate the stronger cipher both side support. SME10 enforce the following authorized ciphers: --ncp-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC . To have the list of the supported cipher, issue the command :
 +
 
 +
openvpn --show-ciphers
 +
 
 +
*'''clientToClient''': (enabled|disabled) If you want to prevent two clients to communicate, you should enable this option
 +
 
 +
*'''duplicateCN''': (enabled|disabled) If you want to allow several clients to connect simultaneously using the same certificate, you need to enable this option (default is disabled)
 +
 
 +
*'''compLzo''': (enabled|disabled) This option control the usage of real time LZO compression. Enabling it usually improve the performance at no cost. It uses an adaptive algorithm, if data sent over the tunnel are uncompress-able, the compression will automatically be disabled. You may want to disable it on small hardware.
 +
 
 +
*'''management''': (<ip to bind to>:<port>:<password>) this key control the management interface of OpenVPN. The default is to listen only on the loopback interface. It's used to display connected clients. You can allow the access on the local network to get some more statistics using for example: http://www.mertech.com.au/mertech-products-openvpnusermanager.aspx
 +
 
 +
*'''maxClients''': (number) maximum number of clients connected at a time
 +
 
 +
*'''mtuTest''': (enabled|disabled) When using UDP as transport protocol, mtu-test will measure the best MTU for the virtual interface. You should let it enabled unless you know what you're doing
 +
 
 +
*'''protocol''': (udp|tcp) The transport protocol to use. UDP is recommended for both security and performance, but there are situations where you'll need to use TCP. If you use TCP, you should set TCPPort directive to set the port the daemon will listen on (instead of UDPPort)
 +
 
 +
*'''redirectGW''': (perClient|always) The default is to enable the gateway redirection on a per client basis. But if you want the redirection to be always enabled, you can set this key to "always". This way, you won't have to create a new rule for each client.
 +
 
 +
*'''tapIf''': (tap interface) use this tap interface. You should use a free tap interface enslaved in the bridge interface (configured with the [http://wiki.contribs.org/BridgeInterface#Installation bridge-interface] contrib). Do not change this setting unless you know what you're doing
 +
 
 +
Also you can also set the property PushRoute "disabled"  to any network in networks db to avoid the contrib to push the network to the client.
 +
 
 +
Once you have configured the service like you want, just run the command
 +
signal-event openvpn-bridge-update
 +
 
 +
== Désinstallation ==
 +
Pour enlever la contribution, lancer seulement :
 +
yum remove smeserver-openvpn-bridge
 +
 
 +
Vous pouvez également vouloir retirer les autres dépendances si vous ne les utilisez plus :
 +
yum remove smeserver-phpki phpki smeserver-bridge-interface perl-Net-OpenVPN-Manage perl-Net-Telnet
 +
 
 +
==Notes ==
 +
=== OpenVPN and SME installed in virtual machine - VMWare promiscuous mode ===
 +
By default for all version of ESX(i) starting from 3.5 to 7.0 (current in february 2020) VMWare rejects packets in promiscuous mode on the vSwitch, which will cause trouble with OpenVPN in bridge mode. The main symptom is that after successful authentication from your remote client you can ping/reach only the OpenVPN server while any other ip address on the LAN can't be pinged/reached. To correct this in VMWare set:
 +
  Configuration > Networking > your vSwitch: Properties > Ports-tab > vSwitch > Edit > Security-tab > Promiscuous mode: accept
 +
For ESXI hypervisor still working with vSphere client:
 +
 
 +
[[File:Promiscuous_mode_-_Esxi.jpg|786x786px]]
 +
 
 +
For  ESXI greater than 6.5 using webui client:
 +
 
 +
[[File:Promiscuous mode - Webui.jpg|border|frameless|784x784px]]
 +
 
 +
=== OpenVPN and SME installed in virtual machine - Virtualbox promiscuous mode ===
 +
 
 +
There is the same thing in virtualbox, you need to give the argument "allow all" in the network tab configuration.
 +
 
 +
virtual machine > configuration > network > adapter 1
 +
 
 +
choose adapter type "intel pro 1000....."
 +
 
 +
then put attached to on "bridged adapter" on your default NIC
 +
 
 +
click on advanced
 +
 
 +
then put promiscuous mode on "allow all"
 +
 
 +
[[Image:virtualbox-Sme8-Settings.png]]<br />
 +
 
 +
=== OpenVPN and SME installed in virtual machine - Other hypervisors ===
 +
It's documented that you can experience such problems in other hypervisors like OVirt, Proxmox, XEN or others. Keep in mind to search for equivalent settings concerning "promiscuous mode" of vSwitch.
 +
 
 +
=== Transparent proxy settings ===
 +
{{Note box|Keep in mind you need to disabled your transparent proxy else your host can no longer browse the http protocol.}}
 +
 
 +
go to the server-manager>Proxy services and disabled http and smtp proxy
 +
 
 +
 
 +
[[Image:proxy-setting.png|width|800px]]<br />
 +
 
 +
== Solutions de contournement et problèmes connus ==
 +
Si vous migrez de SME 8 à SME 9 et que vous ne parvenez pas à vous connecter après avoir correctement migré vos certificats, cela peut être lié à un algorithme insuffisamment sécurisé. Les notes de publication de CentOS 6.9 indiquent que "La prise en charge des protocoles et algorithmes cryptographiques non sécurisés a été abandonnée. Cela affecte l'utilisation des paramètres MD5, SHAO, RC4 et DH de moins de 1024 bits". Bien sûr, la vraie solution serait de migrer tous vos certificats vers un meilleur algorithme.
 +
 
 +
== Bogues ==
 +
Ouvrir, svp, des bogues dans la section SME-Contribs dans [http://bugs.contribs.org/enter_bug.cgi bugzilla]
 +
et sélectionner le composant smeserver-openvpn-bridge ou utiliser {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-openvpn-bridge|title=ce lien.}}
 +
 
 +
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-openvpn-bridge|noresultsmessage="No open bugs found."}}
 +
 
 +
=== Journal des modifications ===
 +
Seules les versions publiées dans smecontribs sont répertoriées ici.
 +
 
 +
{{ #smechangelog: smeserver-openvpn-bridge}}
 +
 
 +
==Autres articles dans cette catégorie==
 +
{{#ask: [[Category:VPN]]}}
 +
 
 +
----
 +
[[Category:Administration:VPN]]
 +
[[Category:VPN]]
 +
 
 
----
 
----
 
[[Category: Contrib/fr]]
 
[[Category: Contrib/fr]]

Latest revision as of 10:15, 31 August 2022


Est-ce que cet article vous a été utile ?
Svp, envisagez de faire un don ou du volontariat.
Merci !

Openvpn.png


Mainteneur

[1]Daniel B. from Firewall Services

Version

Devel 10:
Contrib 10:
Contrib 9:
smeserver-openvpn-bridge
The latest version of smeserver-openvpn-bridge is available in the SME repository, click on the version number(s) for more information.


Contrib 10:
Contrib 9:
smeserver-bridge-interface
The latest version of smeserver-bridge-interface is available in the SME repository, click on the version number(s) for more information.


Description

Le Serveur KOOZALI versions 7.4 (obsolète), 8 (obsolète), 9 (obsolète) et 10 disposent d’une contribution de Firewall Services permettant d’obtenir un serveur OpenVPN utilisable facilement, avec une page d'administration dans le gestionnaire du serveur.

Important.png Note :
cette page ne comporte pas la traduction de la totalité de la page en anglais. Par contre, il y a des paragraphes qui ne figurent pas dans la version anglaise.


OpenVPN est une solution VPN SSL open source complète qui s'adapte à un large éventail de configurations, y compris l'accès à distance, les VPN de site à site, la sécurité Wi-Fi et les solutions d'accès à distance à l'échelle de l'entreprise avec équilibrage de charge, basculement, et des contrôles d'accès précis. Partant du principe fondamental que la complexité est l'ennemi de la sécurité, OpenVPN offre une alternative économique et légère aux autres technologies VPN qui est bien ciblée pour les marchés des PME et des entreprises.

Cette contribution vous aidera à configurer OpenVPN en mode bridge. Avec ce mode, les clients se connectant au VPN depuis l'extérieur obtiendront une adresse IP dans le sous-réseau local, le VPN et l'interface interne sont pontés. Il n'y a pas de problème de routage, pas de règles supplémentaires de pare-feu. L'inconvénient est que vous ne pouvez pas limiter les services auxquels les clients VPN ont accès, ils sont simplement traités comme des ordinateurs connectés localement.

Conditions requises

  • Vous devez installer et activer la contribution bridge-interface.
  • Vous pouvez installer PHPki/fr pour gérer facilement vos certificats.

Pour résumer la problématique, il y a 3 paquets à installer.

   * bridge-interface : le paquet qui crée un pont entre l'interface interne et une interface TAP.
   * PHPki : le paquet qui servira à gérer vos certificats, si vous souhaitez les gérer avec cette contribution.
   * smeserver-openvpn-bridge : le paquet qui installe le serveur OpenVPN.

Le serveur OpenVPN attribuera des IP de votre réseau local aux clients VPN, ils auront ainsi accès à toutes les ressources accessibles depuis votre réseau local (partages de fichier, intranet, services de courrier interne, etc.). C’est donc un service de type « site to client » qui ne vous permet pas de relier deux serveurs SME KOOZALI ensembles (mais l’auteur de cette contribution géniale en a une autre dans ses cartons pour faire cela.)

On y va pour l’installer, ce n’est pas bien compliqué, un grand merci à Daniel (de Firewall Services).…spéciale dédicace.

Installation

/!\ Nouveau cipher par défaut : AES-128-CBC et HMAC SHA256 ; si vous avez des problèmes, vérifier les options de configuration.

yum --enablerepo=smecontribs install smeserver-openvpn-bridge

Vous devez activer le dépôt epel.

yum --enablerepo=smecontribs,epel install smeserver-openvpn-bridge
yum --enablerepo=smecontribs install smeserver-openvpn-bridge

Pour la plupart des installations les paramètres par défaut suffiront, mais vous pouvez quand même les vérifier.

db configuration show bridge
bridge=service
   bridgeInterface=br0
   ethernetInterface=eth0
   status=enabled
   tapInterface=tap0

Au besoin vous avez la page de l’auteur pour modifier cela, je dois reconnaître que je n’en ai pas eu besoin.


Si vous souhaitez utiliser PHPki pour gérer vos certificats, vous devez l'installer :

yum --enablerepo=smecontribs install smeserver-phpki-ng

Vous trouverez plus d'information sur cette page. Vous devez alors créer vos certificats avant de les configurer dans OpenVPNBridge (paragraphe suivant).

Configurer les certificats

Important.png Note :
si vous utilisez PHPki pour gérer les certificats, vous pouvez aller ici pour plus de détails.

Si vous mettez à jour une installation précédente, vous pouvez aller ici.


Vous pouvez maintenant aller dans le gestionnaire du serveur, vous trouverez un nouveau menu « OpenVPN-Bridge » dans la rubrique « Configuration ». Là, en bas de page, vous devrez d'abord cliquer sur le lien « Configuration des certificats » et vous devrez saisir diverses informations obligatoires :


Important.png Note :
tous les certificats doivent être encodés PEM.


  • une URL où OpenVPN peut mettre à jour la CRL ; si vous utilisez PHPki sur le même serveur, vous pouvez laisser la valeur par défaut ;
Important.png Note :
si aucun fichier CRL valide (au format PEM) n'est trouvé à cette URL, vous recevrez un courriel toutes les heures dans la boîte aux lettres de l'administrateur.


  • un certificat principal (utilisé pour vérifier les certificats des clients) ;
  • le certificat du serveur (utilisé par les clients pour vérifier le serveur) ;
  • la clé privée du serveur associée au certificat ;
  • les paramètres Diffie-Helman (utilisés pour échanger la clé de session) ;
  • une clé facultative générée par OpenVPN pour ajouter l'authentification TLS.
Important.png Note :
vous pouvez laisser ce champ vide si vous ne souhaitez pas utiliser l'authentification TLS supplémentaire.


Vous pouvez utiliser la contribution PHPki pour gérer cela facilement. PHPki n'a pas besoin d'être installé sur le même serveur. Vous pouvez également gérer votre PKI manuellement, ou avec votre propre outil PKI si vous en utilisez déjà un (par exemple, [2]).

Une fois que vous avez entré toutes les informations requises, il vous suffit de soumettre le formulaire.

Vous devriez alors voir le message :

Statut des certificats Les certificats sont prêts

Avec « Les certificats sont prêts » en vert. Si ce n'est pas le cas, vous avez un problème avec la configuration des certificats.

PHPki

On va installer maintenant l’interface de gestion des certificats.

yum --enablerepo=smecontribs install smeserver-phpki


puis on lance les services :

expand-template /etc/httpd/conf/httpd.conf
expand-template /etc/httpd/pki-conf/httpd.conf
sv t /service/httpd-e-smith
sv u /service/httpd-pki


Commande et monitoring d'openvpn

Maintenant que le serveur est installé, il nous faut discuter un peu des moyens de le contrôler en ligne de commande cela peut toujours servir…

start

sv u /service/openvpn-bridge

stop

sv d /service/openvpn-bridge

restart

sv t /service/openvpn-bridge

monitorer le serveur OPENVPN en temps réel

tailf /var/log/openvpn-bridge/current

Création des certificats

Il va nous falloir créer le certificat racine qui va permettre de signer tous les autres certificats, aussi pour cela nous utiliserons le menu que vous pouvez voir dans le menu du SME Server (https://[IP-DU-SERVEUR]/server-manager) « Gestion des certificats ».

Ce menu servira donc pour manager, révoquer et toutes les autres opérations qui concerneront des certificats (pas seulement pour OpenVPN…). On vous propose deux formats de certificats.

   * PKCS12 (c’est un bundle qui englobe le certificat utilisateur, sa clef privée, et le certificat racine)
   * PEM (qui peuvent être utilisés par Network-manager)

Certificat racine

À la première sélection du menu, on vous propose de vous occuper du certificat racine. C'est lui qui attestera en tant qu'autorité de certification, la validité de tous les autres certificats.

First part of the initiale configuration page

La deuxième partie est la suivante :

Second part of the initiale configuration page

vous pouvez laisser les paramètres par défaut, sauf « Help Document Contact Info » que vous pouvez modifier si vous le souhaitez. Après avoir cliqué sur le bouton « Submit » et avoir patienté quelques instants, vous aurez ceci…

Second part of the initiale configuration page

Maintenant, vous êtes en mesure d’utiliser PHPki. L’interface d’administration est disponible sur le gestionnaire du serveur ou directement https://[IP-DU-SERVEUR]/phpki/ca.

Il y a aussi une interface publique, disponible uniquement à partir des réseaux locaux, mais sans mot de passe à l’adresse https://[IP-DU-SERVEUR]/phpki

Ici, les utilisateurs peuvent télécharger le certificat maître CA, ou faire des recherches pour les certificats d’autres utilisateurs (partie publique uniquement bien sûr).

Certificat du serveur

Maintenant, vous devez créer un certificat pour OpenVPN sur le serveur. Pour cela, dans le gestionnaire du serveur, section « Sécurité », le menu « Gestion des certificats » permet d'accéder à l’interface PHPki en anglais. (A vérifier)

Choisir « Create a new certificate ». Ici, vous devrez entrer quelques informations sur le certificat :

  • Common Name: c’est le nom du certificat. Vous pouvez entrer ce que vous voulez, par exemple « openvpn-bridge »
  • Email address: l’adresse e-mail du contact technique (ce champ n’est pas utilisé, vous pouvez entrer ce que vous voulez tant qu’il s’agit d’une adresse e-mail valide), par exemple admin@domain.tld
  • Organization, Department, Locality, State and Country: les champs devraient avoir les valeurs que vous avez entrées lorsque vous avez créé votre PKI. Vous pouvez laisser ces valeurs.
  • Password: Ce champ doit être vide. Rappelez-vous que le démon OpenVPN démarre sans intervention humaine lors du démarrage du serveur, donc il faut avoir accès à la clé du certificat sans être invité à entrer un mot de passe.
  • Certificate life: Entrez ce que vous voulez, mais rappelez-vous, lorsque le certificat expire, vous devrez en créer un autre, et le mettre à jour dans le menu OpenVPN Bridge de la SME.
  • Key size: vous pouvez entrer ce que vous voulez (j’utilise 2048 en général). Le plus grand utilisera un peu plus de puissance processeur lorsque la clé de session sera négociée (à la connexion, et une fois par heure).
  • Certificate Use: vous devez utiliser « VPN server only». Ce point est important. Si vous ne choisissez pas ce type de certificats, les clients peuvent être incapables de se connecter.

Voici un exemple de configuration :

Création d'un nouveau certificat du serveur.

Valider en cliquant sur le bouton " Submit request ".

Vous pouvez confirmer votre certificat :

Confirmer la création du nouveau certificat.

Configuration du serveur OpenVPN

Pour cela, dans le gestionnaire du serveur, section "Configuration", dans le menu OpenVPN-Bridge, cliquer sur le bouton "Configuration des certificats".

Vous avez quelques champs à renseigner :

  • URL de mise à jour de la CRL: vous devriez laisser la valeur par défaut : à moins http://localhost:940/phpki/index.php?stage=dl_crl_pem PHPki soit installé sur un autre serveur (ou si vous utilisez un autre outil PKI).
  • Certificat d'autorité : vous pouvez mettre ici le certificat racine au format PEM. Vous pouvez l’obtenir dans PHPki, en cliquant sur le lien « Afficher le certificat racine (PEM) » (faites un copier/coller).
  • Certificat serveur : vous pouvez mettre ici le certificat du serveur. Vous pouvez l’obtenir dans PHPki, gérer les certificats, cliquez sur le lien de téléchargement correspondant au certificat que vous avez créé pour le serveur (« openvpn-bridge » dans l’exemple), choisissez certificat PEM dans le menu déroulant, le télécharger. Vous pouvez ouvrir ce fichier avec un éditeur de texte.
  • Clé privée du serveur : il s’agit de la clé privée associée au certificat du serveur. Pour l’obtenir, suivez les mêmes étapes que ci-dessus, mais choisir « PEM key » dans le menu déroulant au lieu de « PEM Certificate ».
  • Paramètres DH : pour obtenir les paramètres DH, cliquez sur « Display the Diffie-Hellman parameters » dans PHPki.
  • Clé statique : cette option est facultative. Vous pouvez l’obtenir en utilisant l’option « Display the static pre-shared key » dans PHPki. Notez que si vous entrez cette clé sur le serveur, vous aurez à la déployer sur chaque poste client. (pour ma part, je l’ai fait, no problemo, faite-le).


Important.png Note :
vous pouvez maintenant soumettre la demande : « Les certificats sont prêts » doit s'afficher.


Un exemple de ce que cela doit rendre :

Copy the certificates and keys in OpenVPN Bridge panel

Une fois les certificats paramétrés, vous devez aller dans le menu server-manager->OpenVPN-Bridge->configuration du service

Dans ce menu vous avez la possibilité :

  • de contrôler le serveur VPN (start/stop) ;
  • de choisir le mode d’authentification (certificat ou certificat+mot de passe) ;
  • de fixer la plage d’IP que le serveur attribuera aux PC qui se connecteront (elles doivent faire partie de votre réseau et ne pas appartenir a la plage attribuée au DHCP).

Configuration du client

Certificat Client

Dans PHPki l’interface d’administration, cliquez sur le lien « Create a new certificate ». Vous allez devoir y remplir certaines informations, qui vous sont propres.

Create a new certificate for the client

Le mieux étant de choisir un type de certificat en "VPN client Only", car les autres certificats nécessitent un mot de passe qui vous sera demandé obligatoirement à chaque connexion (en plus du mot de passe du compte utilisateur de la SME si il est paramétré).

Vous pouvez jouer sur la durée de vie du certificat pour autoriser l’accès pendant un temps donné, une fois cette période passée, le certificat devra être régénéré.

Une fois validé, votre certificat est créé, et vous pouvez en disposer dans le menu « manage certificates » de phpki.

Client Linux Debian XFCE

Texte copié à partir de la page de Stephdl [3] sur la configuration de network-manager, avec son aimable autorisation.

Les écrans sont issus du Gnome Classic.

Network-Manager (N-M) est un GUI (Graphical User Interface) originellement développé par Red Hat Entreprise Linux, pour gérer les interfaces réseaux sous Linux… Cela va de votre carte filaire à celle de votre wifi, en passant par les réseaux 3G et bien sûr la gestion des VPN (et pas seulement OPENVPN).

Bien évidemment, ce post pourra resservir pour tous les autres qui ne connaissent pas la SME, les pauvres… :) bon c’est quand même du Linux.

Voici le fichier de configuration que nous pouvons télécharger depuis le gestionnaire du serveur Koozali-SME (dans le menu Configuration/OpenVPN-Bridge/Afficher_un_fichier_de_configuration_fonctionnel_pour_les_clients), pour une authentification avec échange de certificats et de mots de passe. Il est à noter que vous pouvez dire à la SME de n’utiliser que les certificats…

Ovpn.png

en rouge et bleu les paramètres que vous devez renseigner dans N-M.

Il va nous falloir installer les paquets qui permettent à N-M de gérer l’openvpn, vous pouvez faire une recherche graphique, sinon, il vous faudra installer ces paquets pour Gnome :

apt-get install network-manager-openvpn network-manager-openvpn-gnome

Pour aller plus en avant, il nous faut obtenir les 4 certificats que la Sme vous a fournis dans la gestion intégrée des certificats (PHPki) :

   le certificat Racine ou ca, en général nommé ca.pem
   le certificat de l’utilisateur, en général user.pem
   la clef privée de l’utilisateur, en général user-key.pem
   une clef statique prépartagée, en général takey.pem

Pour ce faire, toujours dans le gestionnaire du serveur, dans Sécurité / Gestion des certificats, dans le Menu de gestion des certificats, cliquer sur la ligne « Manage certificate ».

Une nouvelle page s'ouvre avec un tableau de tous les certificats. Repérer le certificat et cliquer en bout de ligne sur l'icône de téléchargement.

Une nouvelle page s'ouvre avec, à gauche une liste déroulante des différents fichiers du certificat :

  1. PKCS12 Bundle ;
  2. PEM certificate qui correspond au certificat en lui-même (environ 1,9 kio en 2048 bits) ;
  3. PEM key qui est la clé privé du certificat (environ 1,7 kio en 2048 bits) ;
  4. PEM Bundle
  5. PEM Bundle w/Root qui est le certificat racine ou CA (environ 5,4 kio en 2048 bits).

Attention, quand vous allez demander le téléchargement des fichiers 2, 3 et 5, les fichiers 2 et 5 vont être téléchargés sous le même nom avec l'extension .pem. Renommer rapidement le n°2 en *-cert.pem et le n°5 en *-CA.pem pour éviter toute confusion.

La clé statique pré-partagée est à télécharger en revenant au tableau PHPki : « Menu de gestion des certificats », dans l'avant-dernière ligne.


Mettre ces 4 certificats sur une clé USB, par exemple, pour pouvoir les installer sur la machine cliente.

La suite en image…

Debian Buster (v.10) XFCE

Le paquet Network Manager (network-manager) doit être installé. Cliquer droit sur l'icône de la connexion en cours. Cela ouvre une fenêtre dont la 4e ligne s’appelle « Modifier les connexions ». Cliquer droit sur cette ligne : la fenêtre suivante s'ouvre.

Connexion reseau v10.png

Activer la ligne VPN en la sélectionnant et cliquer sur le signe + en bas à gauche de la fenêtre. Une nouvelle fenêtre s'ouvre :

Selectionner type v10.png

La fenêtre déroulante du milieu est généralement indiquée Ethernet par défaut. Descendre dans la liste pour chercher les connexions VPN et choisir OpenVPN, puis cliquer sur le bouton « Créer... ». 1. La nouvelle fenêtre suivante s'ouvre :

Modif connex VPN1 v10.png

- Donner un nom à votre connexion VPN dans le champ « Nom de la connexion » ;

- champ « Passerelle », mettre l'adresse IP de votre serveur (ou son nom : mon_serveur.com) ;

- choisir le type d'authentification à « Mot de passe avec certificats (TLS) » ;

- entrer votre nom d'utilisateur et le mot de passe associé ;

- en bout de cette ligne, cliquer sur la petite icône pour faire le choix approprié : en géréral « sauvegarder le mot de passe pour cet utilisateur » mais en cas d'utilisation d'une authentificaton au serveur au moyen de LDAP/SSSL, il faut choisir « Enregistrer le mot de passe pour tous les utilisateurs » de l'ordinateur portable ;

- télécharger les certificats :

-- le certificat de l'utilisateur est de type : « utilisateur.pem » ;

-- le certificat du CA est du type : « utilisateur-root.pem » ;

-- la clé privée est du type : « utilisateur-key.pem ».

Même si on n'utilise pas de «mot de passe pour la clé privée», il faut cliquer sur la petite icône à droite du champ pour sélectionner l'option « Le mot de passe n'est pas nécessaire » sinon, il n'est pas possible de sauvegarder la configuration, ce qu'il faut faire avant de passer à la phase suivante en cliquant sur le bouton « Enregistrer ».

Voir ci-dessous, un exemple de ce que cela doit donner :

Modif connex VPN1 VPN v10.png

2. Puis cliquer sur l'onglet « Général » et cocher la case « Tous les utilisateurs peuvent se connecter à ce réseau » comme sur l'image ci-dessous :

Modif connex VPN1 General v10.png

3. Si tout semble correct, appuyer sur le bouton « Enregistrer » en bas à droite pour enregistrer la configuration, puis retourner sur l'onglet VPN pour cliquer sur le bouton « Advanced ». Une fenêtre s'ouvre avec 4 onglets. Cliquer sur l'onglet « Général » et le configurer comme indiqué dans l'image ci-dessous :

Modif connex VPN1 advanced general v10.png

Puis cliquer sur l'onglet « Authentification TLS » et le configurer comme indiqué dans l'image ci-dessous, notamment, il faut installer la clé « takey.pem »

Modif connex VPN1 advanced Auth v10.png

Cliquer sur « Valider » pour enregistrer les configurations et fermer cette fenêtre.

4. On est revenu sur cette fenêtre ci-dessous sur laquelle on sélectionne l'onglet « Paramètres IPV4 » : Modif connex VPN1 IPV4 v10.png

5. Puis on clique sur le bouton « Routes ». Une nouvelle fenêtre s'ouvre : Modif connex VPN1 IPV4 routes v10.png

Cocher la case « Utiliser cette connexion uniquement pour les ressources de son réseau ». Valider. Le fenêtre se ferme. On revient à la fenêtre précédente. Enregistrer. C’EST FINI !

Debian Stretch (v.9) Gnome Classic ou XFCE

1. Aller dans Applications/Outils système/Outils réseau Si vous avez déjà un réseau de configuré, vous pouvez arriver à cette fenêtre :

Reseau.png

2. Cliquer sur le bouton « + » en bas à gauche.


Ajouter.png

3. Choisir OpenVPN, ce qui ouvre la fenêtre suivante.


Config VPN 1.png

- Donner un nom à votre connexion VPN dans le champ «Nom» ;

- indiquer si vous souhaitez mettre la connexion à disposition des autres utilisateurs en cochant la case ;

- mettre l'adresse IP de votre serveur suivie de «:1194» dans le champ «Passerelle» ;

- choisir le type d'authentification à «Mot de passe avec certificats (TLS)» ;

- entrer votre nom d'utilisateur et le mot de passe associé ;

- télécharger les certificats :

-- le certificat de l'utilisateur est de type : «utilisateur.pem» ;

-- le certificat du CA est du type : «utilisateur-bundle-root.pem» ;

-- la clé privée est du type : «utilisateur-key.pem».

Même si on n'utilise pas de «mot de passe pour la clé privée», il faut cliquer sur la petite icône à droite du champ pour sélectionner l'option « The password is not required » sinon, il n'est pas possible de sauvegarder la configuration, ce qu'il faut faire avant de passer à la phase suivant en cliquant sur le bouton «Ajouter» ou Appliquer».

Voir ci-dessous, un exemple de ce que cela doit donner :

VPN config 1.png

4. Si tout semble correct, appuyer sur le bouton «Appliquer» en bas à droite pour enregistrer la configuration, puis sur le bouton « Advanced ». Une fenêtre s'ouvre avec 4 onglets. Cliquer sur l'onglet « Général » et le configurer comme indiqué dans l’image ci-dessous :

OpenVPN 9 Options avancees general.png

Puis cliquer sur l'onglet « Authentification TLS »

600

Cocher les 2 cases comme sur la photo puis cliquer sur la fenêtre déroulante « Fichier de clé » pour aller chercher le fichier takey.pem. Même manipulation sur la ligne du dessous pour choisir la direction de la clé à 1.

Puis cliquer sur « Valider » pour enregistrer les configurations et on revient à la fenêtre :

VPN config 1.png

4. Sur cette fenêtre ci-dessus, on sélectionne l'onglet « Paramètres IPV4 » :

OpenVPN 9 para IPV4.png

5. Puis on clique sur le bouton « Routes ». Une nouvelle fenêtre s'ouvre :

OpenVPN 9 routes IPV4.png

Cocher la case « Utiliser cette connexion uniquement pour les ressources de son réseau ». Valider. Le fenêtre se ferme. On revient à la fenêtre précédente. Enregistrer.

C’EST FINI !

Debian Jessie (v.8) XFCE

Aller dans «Menu des applications/Paramètres/Connexions réseau». Cette fenêtre s'ouvre :

Jessie connexions reseau.png

Cliquer sur «+Ajouter». Une nouvelle fenêtre s'ouvre et cliquez sur la fenêtre déroulante pour valider le choix «OpenVPN» :

Jessie choix VPN.png

Puis cliquer sur le bouton «Créer...».

La suite de la procédure est identique à la procédure pour Wheezy ci-dessous.

Debian Wheezy (v.7) Gnome Classic

Faites un clic gauche sur N-M, et sélectionner connexions VPN, puis configurez le VPN… Ensuite ajouter

Connexion ajouter.png


Il vous faut choisir quel type de VPN vous voulez paramétrer

Type VPN.png


et renseigner toutes les variables soulignées en rouge dans le fichier de configuration. Sélectionner les 3 certificats. Ne rien mettre dans la ligne Mot de passe de la clé privée puisqu'il n'y en a pas eu de créé lors de la génération de la clé. Ensuite cliquer sur Avancé...

Modification connexion VPN1.png


Renseigner comme ci-dessous, puis aller sur authentification TLS

Authentification TLS.png


on renseigne la takey.pem, avec le sens de la clef (très important), et on valide

Takey-pem.png


puis on va vers IPV4

IPV4.png


on sélectionne Routes

Routes.png


et on coche la croix au bon endroit… En fait cela va dire au client openVPN, de ne pas diriger toutes les requêtes vers le serveur VPN distant, autrement dit, vous allez pouvoir avoir un accès internet (mail, web, etc…etc) en même temps que la connexion VPN.

Croix.png


That’s all folks, vous validez c’est fini.

Folks.png


Il ne vous reste plus qu’à faire un clic gauche sur N-M, puis connexions VPN, et utiliser le VPN que vous venez de créer.

Un des intérêts de l’open-vpn en mod Tap, est que vous avez une adresse IP du réseau sur lequel vous vous connectez, autrement dit vous faites partie du Groupe de travail Samba ou du domaine windows. Cependant il peut arriver que, lorsque vous demandez à browser le réseau pour parcourir les ordinateurs, et surtout les dossiers partagés, eh bien, que ce soit le vide absolu, vous êtes tout seul :)

La solution…..relancer samba pour analyser les ordinateurs présents : en root /etc/init.d/samba restart ou service samba restart

Client Windows 10

Pour les systèmes Windows, vous devrez télécharger l'exécutable OpenVPN à l'adresse https://openvpn.net/index.php/download/community-downloads.html. OpenVPN contient un GUI Windows dans l'installeur. Au 1er octobre 2017, la version stable est 2.2.4.

Sur Windows, le répertoire de configuration pour OpenVPN est C:\Program Files\OpenVPN\config. Vous pouvez déposer là tous les fichiers nécessaires, ou créer des sous-répertoires si vous voulez configurer plusieurs connexions. Vous pouvez aussi déposer vos fichiers dans les répertoires %utilisateur\OpenVPN\config.

Déposer, soit dans le répertoire de configuration, soit dans un sous-répertoire, le fichier PKCS#12 que vous avez téléchargé précédemment, et la clé secrète partagée (takey, je suppose, ndt) si vous en utilisez une sur le serveur. Puis, créer un fichier texte et changer l'extension en .ovpn (le nom n'est pas important). L'éditer avec votre éditeur de texte favori. Aller maintenant dans le panneau d'OpenVPN-Bridge et cliquer sur le lien « Afficher un fichier de configuration client fonctionnel ». Copier et coller-le dans votre fichier de configuration (.ovpn), et changer uniquement la directive pkcs12 pour qu'elle corresponde à votre nom de certificat. Sauvegarder ce fichier. Maintenant votre client devrait pouvoir se connecter avec l'interface graphique utilisateur OpenVPN.

Client Apple Mac

Installer tunnelblick

Cocher la case « tout le trafic IPv4 à travers le VPN ».

  • Si cette option est cochée, Tunnelblick demandera à OpenVPN de router tout le trafic IPv4 à travers le serveur VPN.
  • Si cette option n'est pas cochée, par défaut OpenVPN utilisera le VPN uniquement pour le trafic qui est destiné au réseau du VPN. Tout le reste du trafic utilisera la connexion internet normale sans passer par le VPN. Le comportement par défaut de OpenVPN peut être modifié dans la configuration OpenVPN ou dans le serveur VPN et peut faire que tout le trafic IPv4 soit routé vers le serveurVPN comme si cette option était cochée.

Fichier de configuration

Voici un fichier de configuration qui fonctionne mais dont la sécurité/sûreté n'a pas été testée.

client
dev tap
proto udp
remote MonServeur.com 1194
resolv-retry infinite
nobind
auth-user-pass
persist-key
persist-tun
pkcs12 MaCle.p12
tls-client
ns-cert-type server
tls-auth takey.pem 1
verb 3

Client Android

Vous ne pouvez pas utiliser le mode TAP, et donc openvpn-bridge, avec Android.

S'il vous plaît, lire ceci pour plus d'information :

https://openvpn.net/faq/why-does-the-app-not-support-tap-style-tunnels/

Vous pouvez utiliser openvpn-routed :

https://wiki.contribs.org/OpenVPN_Routed

Advanced configuration

Some advanced options are not presented in the panel. The goal was to keep the panel as simple as possible as most installations won't need to change advanced settings. But advanced options are still available with some DB keys:

  • ConfigRequired: (enabled|disabled). If set to enable, clients will be rejected unless a configuration rule match the common name of their certificate. This can be useful if you use just one CA to sign a lot of different certificates, but only want a limited number of certificates to connect to the VPN
  • UDPPort: (number) Change the port the server listen to when running in UDP mode
  • TCPPort: (number) Change the port the server listen to when running in TCP mode
  • access: (private|public) you should let this to public as running a VPN server just for the local network make no sens
  • cipher: (valid cipher name) You can force the cipher to use. Starting SME 10, default is AES-128-CBC . If you put auto ( or delete this key, for SME9 and before ) the default will be the current of openvpn wich is as per 2.4 :BF-CBC. Also when both client and server are at least version 2.4, they will negotiate the stronger cipher both side support. SME10 enforce the following authorized ciphers: --ncp-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC . To have the list of the supported cipher, issue the command :
openvpn --show-ciphers
  • clientToClient: (enabled|disabled) If you want to prevent two clients to communicate, you should enable this option
  • duplicateCN: (enabled|disabled) If you want to allow several clients to connect simultaneously using the same certificate, you need to enable this option (default is disabled)
  • compLzo: (enabled|disabled) This option control the usage of real time LZO compression. Enabling it usually improve the performance at no cost. It uses an adaptive algorithm, if data sent over the tunnel are uncompress-able, the compression will automatically be disabled. You may want to disable it on small hardware.
  • management: (<ip to bind to>:<port>:<password>) this key control the management interface of OpenVPN. The default is to listen only on the loopback interface. It's used to display connected clients. You can allow the access on the local network to get some more statistics using for example: http://www.mertech.com.au/mertech-products-openvpnusermanager.aspx
  • maxClients: (number) maximum number of clients connected at a time
  • mtuTest: (enabled|disabled) When using UDP as transport protocol, mtu-test will measure the best MTU for the virtual interface. You should let it enabled unless you know what you're doing
  • protocol: (udp|tcp) The transport protocol to use. UDP is recommended for both security and performance, but there are situations where you'll need to use TCP. If you use TCP, you should set TCPPort directive to set the port the daemon will listen on (instead of UDPPort)
  • redirectGW: (perClient|always) The default is to enable the gateway redirection on a per client basis. But if you want the redirection to be always enabled, you can set this key to "always". This way, you won't have to create a new rule for each client.
  • tapIf: (tap interface) use this tap interface. You should use a free tap interface enslaved in the bridge interface (configured with the bridge-interface contrib). Do not change this setting unless you know what you're doing

Also you can also set the property PushRoute "disabled" to any network in networks db to avoid the contrib to push the network to the client.

Once you have configured the service like you want, just run the command

signal-event openvpn-bridge-update

Désinstallation

Pour enlever la contribution, lancer seulement :

yum remove smeserver-openvpn-bridge

Vous pouvez également vouloir retirer les autres dépendances si vous ne les utilisez plus :

yum remove smeserver-phpki phpki smeserver-bridge-interface perl-Net-OpenVPN-Manage perl-Net-Telnet

Notes

OpenVPN and SME installed in virtual machine - VMWare promiscuous mode

By default for all version of ESX(i) starting from 3.5 to 7.0 (current in february 2020) VMWare rejects packets in promiscuous mode on the vSwitch, which will cause trouble with OpenVPN in bridge mode. The main symptom is that after successful authentication from your remote client you can ping/reach only the OpenVPN server while any other ip address on the LAN can't be pinged/reached. To correct this in VMWare set:

 Configuration > Networking > your vSwitch: Properties > Ports-tab > vSwitch > Edit > Security-tab > Promiscuous mode: accept

For ESXI hypervisor still working with vSphere client:

Promiscuous mode - Esxi.jpg

For ESXI greater than 6.5 using webui client:

Promiscuous mode - Webui.jpg

OpenVPN and SME installed in virtual machine - Virtualbox promiscuous mode

There is the same thing in virtualbox, you need to give the argument "allow all" in the network tab configuration.

virtual machine > configuration > network > adapter 1

choose adapter type "intel pro 1000....."

then put attached to on "bridged adapter" on your default NIC

click on advanced

then put promiscuous mode on "allow all"

Virtualbox-Sme8-Settings.png

OpenVPN and SME installed in virtual machine - Other hypervisors

It's documented that you can experience such problems in other hypervisors like OVirt, Proxmox, XEN or others. Keep in mind to search for equivalent settings concerning "promiscuous mode" of vSwitch.

Transparent proxy settings

Important.png Note:
Keep in mind you need to disabled your transparent proxy else your host can no longer browse the http protocol.


go to the server-manager>Proxy services and disabled http and smtp proxy


width

Solutions de contournement et problèmes connus

Si vous migrez de SME 8 à SME 9 et que vous ne parvenez pas à vous connecter après avoir correctement migré vos certificats, cela peut être lié à un algorithme insuffisamment sécurisé. Les notes de publication de CentOS 6.9 indiquent que "La prise en charge des protocoles et algorithmes cryptographiques non sécurisés a été abandonnée. Cela affecte l'utilisation des paramètres MD5, SHAO, RC4 et DH de moins de 1024 bits". Bien sûr, la vraie solution serait de migrer tous vos certificats vers un meilleur algorithme.

Bogues

Ouvrir, svp, des bogues dans la section SME-Contribs dans bugzilla et sélectionner le composant smeserver-openvpn-bridge ou utiliser ce lien.


IDProductVersionStatusSummary (6 tasks)
12500SME Contribs10.0CONFIRMEDupdate default config file
12437SME Contribs10.0CONFIRMEDinitial install unable to connect after configuration
12435SME Contribs10.0CONFIRMEDfailure to download crl
10914SME Contribs9.2UNCONFIRMEDOpenVPN kicking connections generate an error and does not disconnect
10913SME Contribs9.2UNCONFIRMEDOpenVPN connections status showing time in non-human readable format
6914SME Contribs8.0UNCONFIRMEDCan not access internet after switch serveronly to servergateway and back again

Journal des modifications

Seules les versions publiées dans smecontribs sont répertoriées ici.

smeserver-openvpn-bridge Changelog: SME 10 (smecontribs)

2022/11/23 Jean-Philippe Pialasse 2.1-22.sme
- log to dedicated file [SME: 12242]

- use locale timezone for logging [SME: 6155]
2022/11/11 Jean-Philippe Pialasse 2.1-19.sme
- apply locale 2022-11-1 patch
2022/07/30 Jean-Philippe Pialasse 2.1-18.sme
- add Provides perl(esmith::FormMagick::Panel::openvpnbridge)
2022/07/30 Brian Read 2.1-17.sme
- Re-build and link to latest devtools [SME: 11997]
2022/07/23 Jean-Philippe Pialasse 2.1-16.sme
- add to core backup [SME: 12018]


Autres articles dans cette catégorie

Ipsec, Libreswan, Libreswan-xl2tpd, OpenVPN, OpenVPN Bridge, OpenVPN Bridge/fr, OpenVPN Routed, OpenVPN SiteToSite, SME Server wishlist, SoftEther VPN, Softethervpn-server, VPN, Wireguard