Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
openvpn [Le 30/01/2018, 10:07]
bcag2 positionnement du logo
openvpn [Le 28/07/2023, 19:53] (Version actuelle)
169.159.221.120 [Par paquet]
Ligne 1: Ligne 1:
-{{tag>​administration réseau sécurité vpn vétuste}}+{{tag>brouillon ​administration réseau sécurité vpn vétuste}}
  
 ---- ----
Ligne 7: Ligne 7:
 ====== OpenVPN ====== ====== OpenVPN ======
  
-**OpenVPN** est un logiciel libre permettant de créer un réseau privé virtuel ​(VPN).  +**OpenVPN** est un logiciel libre permettant de créer un réseau privé virtuel ​[[:vpn|VPN]]\\ 
-Utiliser ​un VPN est entre autre une excellente solution ​pour contourner les restrictions de certains réseaux (universités,​ certains pays, etc...).+[[:​vpn#​differentes_utilisations_de_vpn|Différents usages nécessitent l'​utilisation d'un VPN]]\\ 
 +Il peut être utilisé ​pour simplement accéder à un serveur VPN existant ou pour mettre en place un serveur… et y accéder. 
 + 
 +Que ce soit en configuration client ou serveur, il est possible de tout configurer en [[:​commande_shell|CLI]] ou par interface graphique.
  
-<note help>Si vous désirez vous connecter à un serveur openvpn, installez le [[client OpenVPN]] en **[[apt>​network-manager-openvpn|cliquant ici]]**, et configurez votre accès : 
-    * Menu Système -> Préférences -> Connexions réseau ->  
-    * Onglet VPN -> Importez la configuration si vous l'avez reçu, ou cliquez sur ajouter et configurez pour vous connecter. 
-</​note>​ 
 ===== Installation ===== ===== Installation =====
 +
 +Il faut aussi installer le support pour gnome :
 +<​code>​sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome</​code>​
 +
 +Dans le cas contraire, cela affiche une erreur dans la gestion de l'​identité :
 +"​impossible de charger l'​éditeur de connexions VPN"
  
 ==== Par paquet ==== ==== Par paquet ====
Ligne 33: Ligne 38:
   * 1194 UDP   * 1194 UDP
 </​note>​ </​note>​
 +
 ==== Webmin : Interface d'​administration web ==== ==== Webmin : Interface d'​administration web ====
  
-Un module [[:Webmin]] est disponible pour faciliter le paramétrage d'[[http://​www.webmin.com/​cgi-bin/​search_third.cgi?​search=openvpn|OpenVPN]].+Un module [[:Webmin]] est disponible pour faciliter le paramétrage d'[[https://​www.webmin.com/​cgi-bin/​search_third.cgi?​search=openvpn|OpenVPN]].
  
 +<note tips>
 +Bien sur, l'​usage de webmin n'est pas nécessaire.
  
 +Certains diraient même que c'est a déconseiller.
 +</​note>​
 ===== Configuration des VPN ===== ===== Configuration des VPN =====
 +
 +==== Cas d'un fournisseur de VPN ====
 +
 +Vous avez un accès VPN de type OpenVPN et vous souhaitez configurer cet accès ? Voici la procédure.
 +
 +  - Téléchargez le fichier de configuration de votre fournisseur VPN.
 +  - Faites un clic droit sur l’icône réseau et choisis de modifier les connexions.
 +  - Ajoutez une nouvelle connexion.
 +  - Sélectionnez **Importer une configuration VPN enregistrée**.
 +  - Sélectionnez votre fichier ***.ovpn**
 +  - Vérifiez ou indiquez l’adresse du serveur VPN, choisissez le type **Mot de passe**, tapez le login du VPN et son mot de passe.
 +  - Enregistrez,​ quittez et connectez votre VPN.
 +
 +Retrouvez ces étapes en images ci-dessous (cliquez pour agrandir), issu d'un fournisseur de VPN (ce n'est pas de la pub mais un exemple) :
 +
 +{{::​openvpn-ubuntu-12.jpg?​200|}}
 +{{::​openvpn-ubuntu-13.jpg?​200|}}
 +{{::​openvpn-ubuntu-14.jpg?​200|}}
 +{{::​openvpn-ubuntu-16.jpg?​200|}}
 +{{::​openvpn-ubuntu-17.jpg?​200|}}
 +{{::​openvpn-ubuntu-18.jpg?​200|}}
 +{{::​openvpn-ubuntu-18-new.jpg?​200|}}
  
 ==== Certificats de sécurité ==== ==== Certificats de sécurité ====
Ligne 54: Ligne 86:
  
   * Le serveur n'a besoin que de ses propres certificats/​clés,​ il n'a pas besoin de connaître chacune des clés des clients qui peuvent s'y connecter.   * Le serveur n'a besoin que de ses propres certificats/​clés,​ il n'a pas besoin de connaître chacune des clés des clients qui peuvent s'y connecter.
-  * Le serveur n'​acceptera les clients que lorsque le certificat sera signé par l'​Autorité de Certification maître (qui l'aura généré avant). Et comme le serveur peut vérifier cette signature sans avoir besoin d'​accéder à la clé privée de l'​Autorité de Certification elle-même, il est possible pour la clé de l'​Autorité de Certification (clé la plus sensible dans toute l'​Infrastructure de Clés Publiques) de résider sur une toute autre machine, même une sans connexion réseau. ​+  * Le serveur n'​acceptera les clients que lorsque le certificat sera signé par l'​Autorité de Certification maître (qui l'aura généré avant). Et comme le serveur peut vérifier cette signature sans avoir besoin d'​accéder à la clé privée de l'​Autorité de Certification elle-même, il est possible pour la clé de l'​Autorité de Certification (clé la plus sensible dans toute l'​Infrastructure de Clés Publiques) de résider sur une toute autre machine, même une sans connexion réseau.
   * Si une clé privée est compromise, il est possible de la désactiver en ajoutant son certificat à une Liste de Révocation de Certificat (LRC ou CRL en anglais). La LRC permet aux certificats compromis d'​être rejetés sélectivement sans nécessiter une entière refonte de l'​Infrastructure de Clé Publiques.   * Si une clé privée est compromise, il est possible de la désactiver en ajoutant son certificat à une Liste de Révocation de Certificat (LRC ou CRL en anglais). La LRC permet aux certificats compromis d'​être rejetés sélectivement sans nécessiter une entière refonte de l'​Infrastructure de Clé Publiques.
  
Ligne 64: Ligne 96:
  
  
-Il faut tout d'​abord ouvrir un terminal et effectuer une copie dans son dossier /home des scripts de génération de clés : +Il faut tout d'​abord ouvrir un terminal et effectuer une copie dans son dossier /home des scripts de génération de clés :
  
 <​code>​cp /​usr/​share/​doc/​openvpn/​examples/​easy-rsa ~/openvpn/ -R</​code>​ <​code>​cp /​usr/​share/​doc/​openvpn/​examples/​easy-rsa ~/openvpn/ -R</​code>​
Ligne 73: Ligne 105:
 cd my_ca/</​code>​ cd my_ca/</​code>​
 </​note>​ </​note>​
- 
-L'​ensemble des commandes se feront dans le répertoire déplacé : 
-  
-<note important>​Sous Natty : <​code>​cd ~/​openvpn/​easy-rsa/​2.0 </​code></​note>​ 
-<note important>​Sous Lucid : <​code>​cd ~/​openvpn/​2.0 ​ </​code></​note>​ 
- 
  
 Se connecter en root : Se connecter en root :
  
-  sudo -s+  sudo -i
  
 Maintenant [[:​tutoriel:​comment_editer_un_fichier|éditez le fichier]] **vars** et initialiser les variables **KEY_COUNTRY,​ KEY_PROVINCE,​ KEY_CITY, KEY_ORG, and KEY_EMAIL**. Maintenant [[:​tutoriel:​comment_editer_un_fichier|éditez le fichier]] **vars** et initialiser les variables **KEY_COUNTRY,​ KEY_PROVINCE,​ KEY_CITY, KEY_ORG, and KEY_EMAIL**.
-Ne laisser surtout pas un seul champ vide. +Ne laisser surtout pas un seul champ vide.
  
 Il faut modifier les dernières lignes à sa convenance. Dans notre cas : Il faut modifier les dernières lignes à sa convenance. Dans notre cas :
Ligne 97: Ligne 123:
 </​file>​ </​file>​
  
-<note important>​Sous Ubuntu 12.04 LTS (« The Precise Pangolin ») : le fichier openssl.cnf n'​existe ​pas. Il s’appelle openssl-1.0.0.cnf ; Il faut donc le renommer ​+<note important>​Depuis ​Ubuntu 12.04 LTS (« The Precise Pangolin ») : le fichier openssl.cnf n'​existe ​plus. Il s’appelle openssl-1.0.0.cnf ; Il faut donc le lier 
-<​code>​mv openssl-1.0.0.cnf openssl.cnf</​code></​note> ​+<​code>​ln -s openssl-1.0.0.cnf openssl.cnf</​code></​note> ​
  
-On initialise les variables ​(le point/espace/point n'est pas une erreur de frappe) : +On initialise les variables ​
- +<note important>​ Sur la 19.10 easyrsa est en version 3 pour générer ​le PKI il faut utiliser: 
-<​code>​./​vars</​code>​+<​code>​./easyrsa init-pki 
 + ./easyrsa build-ca 
 + ./easyrsa gen-req hakase-server nopass 
 + ./easyrsa sign-req server hakase-server 
 +  openssl dhparam -out dh2048.pem 2048</code></​note>​ 
 +   
 +<​code>​source ​./​vars</​code>​
  
  
Ligne 122: Ligne 154:
 ''​...........++++++''​ ''​...........++++++''​
  
-''​writing new private key to '​ca.key'''''​-----''​+''​writing new private key to 'ca.key'''''​-----''​
  
 ''​You are about to be asked to enter information that will be incorporated into your certificate request.''​ ''​You are about to be asked to enter information that will be incorporated into your certificate request.''​
Ligne 134: Ligne 166:
 ''​If you enter '​.',​ the field will be left blank.''​ ''​If you enter '​.',​ the field will be left blank.''​
  
-''​-----''​+''​-----''​
  
 ''​Country Name (2 letter code) [FR]:''​ ''​Country Name (2 letter code) [FR]:''​
Ligne 167: Ligne 199:
  
  
-Quand le **Common Name** est demandé, il faut entrer « server » comme le dernier paramètre entré dans la commande précédente. Puis il faut mettre un mot de passe et un nom d'​entreprise (facultatif). ​+Quand le **Common Name** est demandé, il faut entrer « server » comme le dernier paramètre entré dans la commande précédente. Puis il faut mettre un mot de passe et un nom d'​entreprise (facultatif).
  
 Suivent deux dernières questions qui requièrent des réponses positives : Suivent deux dernières questions qui requièrent des réponses positives :
Ligne 181: Ligne 213:
 === Générer les certificats et les clés pour 3 clients === === Générer les certificats et les clés pour 3 clients ===
  
-Générer des certificats et des clés pour les clients est une étape similaire à l'​étape précédente. ​+Générer des certificats et des clés pour les clients est une étape similaire à l'​étape précédente.
  
 <note important>​ <note important>​
Ligne 189: Ligne 221:
  
 </​note>​ </​note>​
 +<note important>​Depuis la 19.10 easyrsa 3 pour générer et signer vos clées: 
 +<​code>​./​easyrsa gen-req client01 nopass 
 +./easyrsa sign-req client client01 
 +</​code>​ 
 +</​note>​
 Exemple avec un client nommé **client1** : Exemple avec un client nommé **client1** :
  
Ligne 211: Ligne 247:
  
 Les paramètres Diffie Hellman doivent être générés pour le serveur OpenVPN : Les paramètres Diffie Hellman doivent être générés pour le serveur OpenVPN :
 +
 +<note important>​ Sur la 19.10 easyrsa est en version 3 pour générer le Diffie Hellman il faut utiliser:
 +<​code>​./​easyrsa gen-dh
 +./easyrsa gen-crl</​code></​note>​
  
 <​code>​./​build-dh</​code>​ <​code>​./​build-dh</​code>​
Ligne 248: Ligne 288:
 Au lieu de générer les certificats et les clés clients sur le serveur, le client aurait pu générer sa propre clé privée localement, et ensuite, soumettre un CSR (Certificat Signing Request ou Demande de Signature de Certificat) à la machine qui signe les clés. A son tour, la machine signant les clés peut procéder au CSR et retourner un certificat signé au client. Tout ceci peut se faire sans avoir besoin qu'un fichier secret ''​.key''​ quitte le disque dur de la machine qui l'a généré. Au lieu de générer les certificats et les clés clients sur le serveur, le client aurait pu générer sa propre clé privée localement, et ensuite, soumettre un CSR (Certificat Signing Request ou Demande de Signature de Certificat) à la machine qui signe les clés. A son tour, la machine signant les clés peut procéder au CSR et retourner un certificat signé au client. Tout ceci peut se faire sans avoir besoin qu'un fichier secret ''​.key''​ quitte le disque dur de la machine qui l'a généré.
  
-Copie des fichiers serveur :<​code>​cp keys/​dh*.pem keys/ca.crt keys/​server.crt keys/​server.key /​etc/​openvpn/</​code>​+Copie des fichiers serveur : 
 +<note important>​ Sur la 19.10 easyrsa est en version 3 pour copier les clées il faut utiliser: 
 +<​code>​cp pki/ca.crt /​etc/​openvpn/​server/​ 
 +cp pki/​issued/​hakase-server.crt /​etc/​openvpn/​server/​ 
 +cp pki/​private/​hakase-server.key /​etc/​openvpn/​server/​ 
 +cp pki/dh.pem /​etc/​openvpn/​server/​ 
 +cp pki/crl.pem /​etc/​openvpn/​server/</​code></​note>​ 
 +<​code>​cp keys/​dh*.pem keys/ca.crt keys/​server.crt keys/​server.key /​etc/​openvpn/</​code>​
  
  
Ligne 285: Ligne 332:
  
 === Configuration du client === === Configuration du client ===
 +<note important>​Depuis la 19.10 easyrsa 3 pour copier vos clées: 
 +<​code>​cp pki/ca.crt /​etc/​openvpn/​client/​ 
 +cp pki/​issued/​client01.crt /​etc/​openvpn/​client/​ 
 +cp pki/​private/​client01.key /​etc/​openvpn/​client/​ 
 +</​code>​ 
 +</​note>​
 Le fichier d'​exemple de configuration du client **client.conf** reflète les directives mises dans le fichier **server.conf**. Le fichier d'​exemple de configuration du client **client.conf** reflète les directives mises dans le fichier **server.conf**.
  
Ligne 303: Ligne 355:
 ===== Démarrage automatique d'​OpenVPN au lancement du système ===== ===== Démarrage automatique d'​OpenVPN au lancement du système =====
  
-Pour qu'​OpenVPN se lance au démarrage du serveur ou du client, il faut placer le fichier de configuration au bon endroit. ​+Pour qu'​OpenVPN se lance au démarrage du serveur ou du client, il faut placer le fichier de configuration au bon endroit.
  
   * Pour le serveur, copiez le fichier **server.conf** dans le répertoire **/​etc/​openvpn**   * Pour le serveur, copiez le fichier **server.conf** dans le répertoire **/​etc/​openvpn**
Ligne 316: Ligne 368:
     * dh1024.pem     * dh1024.pem
  
-  * Pour le client : +  * Pour le client :
     * ca.crt     * ca.crt
     * client.crt     * client.crt
Ligne 375: Ligne 427:
 ==== Test ==== ==== Test ====
  
-Maintenant, essayons de pinguer à travers le VPN depuis le client. ​+Maintenant, essayons de pinguer à travers le VPN depuis le client.
  
 Dans une configuration bridgée (c'​est-à-dire qu'il y a ''​dev tap''​ et non ''​dev''​ ''​tun''​ dans ''​server.conf''​),​ on peut essayer de pinguer le serveur (adresse par défaut 10.8.0.1 si vous n'avez pas changé le sous-réseau attribué) : Dans une configuration bridgée (c'​est-à-dire qu'il y a ''​dev tap''​ et non ''​dev''​ ''​tun''​ dans ''​server.conf''​),​ on peut essayer de pinguer le serveur (adresse par défaut 10.8.0.1 si vous n'avez pas changé le sous-réseau attribué) :
Ligne 394: Ligne 446:
 </​note>​ </​note>​
  
-puis exécuter une fenetre MS-DOS en "​administrateur"​ et exécuter la commande suivante : +puis exécuter une fenetre MS-DOS en "​administrateur"​ et exécuter la commande suivante :
  
 <​code>​netsh firewall set icmpsetting 8 enable</​code>​ <​code>​netsh firewall set icmpsetting 8 enable</​code>​
Ligne 402: Ligne 454:
 <​code>​netsh advfirewall firewall add rule name="​All ICMP V4" protocol=icmpv4:​any,​any dir=in action=allow</​code>​ <​code>​netsh advfirewall firewall add rule name="​All ICMP V4" protocol=icmpv4:​any,​any dir=in action=allow</​code>​
  
-cette commande permet d'​activer le ping des interfaces réseaux. ​+cette commande permet d'​activer le ping des interfaces réseaux.
  
-pour désactiver le ping ensuite, il faut exécuter cette commande : +pour désactiver le ping ensuite, il faut exécuter cette commande :
  
 <​code>​netsh firewall set icmpsetting 8 disable</​code>​ <​code>​netsh firewall set icmpsetting 8 disable</​code>​
Ligne 474: Ligne 526:
 Vous pouvez à présent vous connecter à l'aide du [[client OpenVPN]] (network-manager-openvpn). Il gère automatiquement les règles de routage en local pour avoir un accès complet à internet. Sinon, vous devrez le faire à la main. Vous pouvez à présent vous connecter à l'aide du [[client OpenVPN]] (network-manager-openvpn). Il gère automatiquement les règles de routage en local pour avoir un accès complet à internet. Sinon, vous devrez le faire à la main.
  
-Problèmes connus : +Problèmes connus :
   * Par défaut le serveur utilise la compression LZO, il faut donc l'​activer également dans les paramètres avancés du manager gnome.   * Par défaut le serveur utilise la compression LZO, il faut donc l'​activer également dans les paramètres avancés du manager gnome.
   * Selon ce que vous avez fait précédemment,​ vous pouvez avoir plusieurs instances du client en cours. Vérifier que vous n'avez qu'une seule interface tun0 en local avec la commande ifconfig.   * Selon ce que vous avez fait précédemment,​ vous pouvez avoir plusieurs instances du client en cours. Vérifier que vous n'avez qu'une seule interface tun0 en local avec la commande ifconfig.
Ligne 485: Ligne 537:
 [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​openvpn/​server.conf**. [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​openvpn/​server.conf**.
  
-et ajoutez-y : +et ajoutez-y :
 <​file>​ <​file>​
 management localhost <un numéro de port> management localhost <un numéro de port>
Ligne 601: Ligne 653:
 push "route 192.168.4.0 255.255.255.0"</​file>​ push "route 192.168.4.0 255.255.255.0"</​file>​
  
-Ceci permet au serveur OpenVPN d'​indiquer aux autres clients que le réseau du client2 existe. ​+Ceci permet au serveur OpenVPN d'​indiquer aux autres clients que le réseau du client2 existe.
  
-La dernière étape, celle qui est souvent oubliée, est d'​ajouter une route sur la passerelle du réseau côté serveur qui redirigera le trafic allant vers 192.168.4.0/​24 vers le serveur OpenVPN (inutile si la passerelle est le serveur OpenVPN). ​+La dernière étape, celle qui est souvent oubliée, est d'​ajouter une route sur la passerelle du réseau côté serveur qui redirigera le trafic allant vers 192.168.4.0/​24 vers le serveur OpenVPN (inutile si la passerelle est le serveur OpenVPN).
  
 Pour ceci, il faut voir la documentation de votre passerelle et lui indiquer que tout le trafic allant vers 192.168.4.0/​24 doit être redirigé sur le serveur OpenVPN (''​adresseIP:​port''​). Pour ceci, il faut voir la documentation de votre passerelle et lui indiquer que tout le trafic allant vers 192.168.4.0/​24 doit être redirigé sur le serveur OpenVPN (''​adresseIP:​port''​).
Ligne 629: Ligne 681:
  
 <​file>​ <​file>​
-push "​dhcp-option DNS 192.168.1.4" ​+push "​dhcp-option DNS 192.168.1.4"​
 push "​dhcp-option DNS 192.168.1.5"​ push "​dhcp-option DNS 192.168.1.5"​
 push "​dhcp-option WINS 192.168.1.8"​ push "​dhcp-option WINS 192.168.1.8"​
Ligne 651: Ligne 703:
  
   * Le [[http://​openvpn.net|site officiel d'​OpenVPN]]   * Le [[http://​openvpn.net|site officiel d'​OpenVPN]]
-  * Un [[http://​howto.landure.fr/​lone-wolf-scripts/​gnu-linux/​debian-4-0-etch/​installer-et-configurer-openvpn-sur-debian-4-0-etch|HOWTO sur l'​installation/​configuration d'​OpenVPN sous Debian Etch]] (que vous pouvez suivre en lançant en premier lieu un shell super utilisateur avec la commande « sudo -s ») 
-  * Un [[http://​15minutesoffame.be/​nico/​blog2/?​article16/​creer-un-serveur-openvpn|autre tuto testé avec 11.04]] 
   * [[wpfr>​OpenVPN|Article sur Wikipédia]]   * [[wpfr>​OpenVPN|Article sur Wikipédia]]
-  * [[http://​www.system-linux.eu/​index.php?​category/​VPN|Tutoriels et documentations complémentaire sur OpenVPN]] +  * [[https://​www.system-linux.eu/​index.php?​category/​VPN|Tutoriels et documentations complémentaire sur OpenVPN]] 
-  * [[http://​www.opendoc.net/​solutions/​comment-installer-configurer-serveur-vpn-openvpn|Comment installer/​configurer un serveur VPN avec OpenVPN ?]] +  * [[https://​www.system-linux.eu/​index.php?​post/​2010/​05/​24/​Installation-ipsec-Host-to-Host-et-Network-to-Network|Pour ceux qui prefereraient IPSEC]] 
-  * [[http://​www.system-linux.eu/​index.php?​post/​2010/​05/​24/​Installation-ipsec-Host-to-Host-et-Network-to-Network|Pour ceux qui prefereraient IPSEC]] +  * [[https://​www.webmin.com/​cgi-bin/​search_third.cgi?​search=openvpn|Modules OpenVPN pour Webmin]] 
-  * [[http://​www.webmin.com/​cgi-bin/​search_third.cgi?​search=openvpn|Modules OpenVPN pour Webmin]]+  * [[https://​fr.linux-console.net/?​p=1562#​gsc.tab=0|Installation complète d'​OpenVPN avec un script]]
  
  
Ligne 669: Ligne 719:
 Pour plus d'​informations,​ n'​hésitez pas à contacter [[utilisateurs:​pezzos]]. Pour plus d'​informations,​ n'​hésitez pas à contacter [[utilisateurs:​pezzos]].
  
-//​Contributeurs : [[:​utilisateurs:​pezzos]],​ [[:​utilisateurs:​krop]] (élagage, nettoyage, corrections),​ [[:​utilisateurs:​zedtux]],​ [[:​utilisateurs:​nicoxinchao]] (ajout de la partie "​Accédez à Internet).//​+//​Contributeurs : [[:​utilisateurs:​pezzos]],​ [[:​utilisateurs:​krop]] (élagage, nettoyage, corrections),​ [[:​utilisateurs:​zedtux]],​ [[:​utilisateurs:​nicoxinchao]] (ajout de la partie "​Accédez à Internet), LukePerp (ajout config cas d'un fournisseur vpn).//
  • openvpn.1517303225.txt.gz
  • Dernière modification: Le 30/01/2018, 10:07
  • par bcag2