Installer un serveur VPN OpenVPN sous GNU/Linux Debian

Sur Internet, vous trouverez facilement des articles expliquant le fonctionnement d’un serveur VPN (Virtual Private Network) mais globalement, il faut comprendre qu’il permet de relier deux réseaux entre eux en créant un tunnel sécurisé (encapsulation et chiffrement de paquets).

Il existe plusieurs solutions techniques pour mettre en place un VPN. Dans cet article, je vais créer une connexion VPN via un certificat SSL. Il existe d’autres solutions techniques comme IPsec et PPTP. Pour moi, un serveur VPN utilisant le protocole PPTP est le plus simple à déployer.

Dans mon cas, j’ai choisi la solution d’un serveur VPN OpenVPN via un certificat SSL + mot de passe. Ce choix s’est naturellement fait car elle utilise le port 443 (habituellement utilisé par le protocole HTTPS). Cela me permettra d’avoir accès à mon VPN depuis n’importe quel réseau et sans être bloqué par un pare-feu. En effet, le protocole PPTP utilise le port 1723 qui est souvent bloqué par les pare-feu des hôtels ou des entreprises.

Dans cet article, je vais donc vous expliquer comment installer votre propre serveur VPN OpenVPN sous GNU/Linux Debian 7. Vous pouvez également suivre ce tutoriel pour d’autre distribution Linux et d’autre version de Debian. Pour connaître la version de votre système d’exploitation, utiliser les commandes : uname -a et/ou cat /etc/debian_version.

 

– Pré-requis :

Avant de commencer, vous devez être connecté sur votre serveur GNU/Linux en root via putty. Vous devez également avoir votre système à jour (apt-get update && apt-get upgrade).

 

– Installer OpenVPN :

apt-get install openvpn

Effectuez une copie des fichiers de configuration et du générateur de clées :

mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

MAJ du 12/2015 : Attention, sur la dernière version d’openvpn, les fichiers d’exemple sont ici : /usr/share/easy-rsa/
 

– Configuration d’OpenVPN :

Éditez le fichier /etc/openvpn/easy-rsa/vars et ajoutez ces lignes à la fin du fichier:

export KEY_COUNTRY="FR"
export KEY_PROVINCE="FR"
export KEY_CITY="FR"
export KEY_ORG="exemple.com"
export KEY_EMAIL="exemple@exemple.com"

Ensuite, exécutez les commandes suivante afin de générer les clés (.key) et les certificats (.crt) :

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
openvpn --genkey --secret keys/ta.key

Copiez ensuite les clés et les certificats dans le répertoire /etc/openvpn/ :

cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /etc/openvpn/

Puis, générez les répertoires /etc/openvpn/jail et /etc/openvpn/clientconf. Le premiers répertoire permet de chrooté le processus OpenVPN (afin de limiter les dégâts en cas de faille dans OpenVPN) puis, le dernier répertoire contiendra la configuration des clients :

mkdir /etc/openvpn/jail && mkdir /etc/openvpn/clientconf

Enfin, créez le fichier de configuration /etc/openvpn/server.conf :

# Serveur TCP/443
mode server
proto tcp
port 443
dev tun

# Clés certificats
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
tls-auth ta.key 1
key-direction 0
cipher AES-256-CBC

# Réseau
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120

# Sécurité
user nobody
group nogroup
chroot /etc/openvpn/jail
persist-key
persist-tun
comp-lzo

# Log
verb 3
mute 20
status openvpn-status.log
log-append /var/log/openvpn.log

Cette configuration permet de créer un serveur VPN SSL routé basé sur le protocole TCP et utilisant le port HTTPS (443). Les clients obtiendront une nouvelle adresse IP dans le range 10.8.0.0/24 et aurons les DNS de Google (8.8.8.8 et 8.8.8.4).

Vous pouvez tester la configuration en saisissant la commande suivante:

cd /etc/openvpn
openvpn server.conf

 

– Démarrage du serveur VPN OpenVPN :

On lance le serveur avec la commande :

/etc/init.d/openvpn start

Vous pouvez observer les logs :

tail -t /var/log/openvpn.log

 

– Configuration du routage :

À ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible d’aller plus loin car ce dernier aura l’adresse 10.8.0.x qui ne sera par routée en dehors de votre serveur. Il faut donc configurer le serveur pour qu’il joue le rôle de routeur entre l’interface VPN (tun0) et l’interface physique (eth0). Après ces opérations, votre serveur NATera les adresses en 10.8.0.x vers son adresse IP réelle.

Configuration du routage:

sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Afin de rendre cette modification permanente, vous devez éditer le /etc/sysctl.conf :

net.ipv4.ip_forward = 1

Puis configurer la translation d’adresse (NAT) :

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Pour rendre cette règle de NAT persistante, il faut commencer par créer un script de chargement de règles de Firewall (ou utiliser un script existant) :

sh -c "iptables-save > /etc/iptables.rules"

Le serveur est maintenant prêt à accueillir les clients.

 

– Création d’un compte client OpenVPN

Ici, nous allons crée la configuration pour notre client VPN.

cd /etc/openvpn/easy-rsa
source vars
./build-key-pass mon-serveur-vpn

Copiez les fichiers nécessaires sous le répertoire /etc/openvpn/clientconf/ préalablement créé :

mkdir /etc/openvpn/clientconf/mon-serveur-vpn/
cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/mon-serveur-vpn.crt keys/mon-serveur-vpn.key /etc/openvpn/clientconf/mon-serveur-vpn/

On va ensuite dans le répertoire /etc/openvpn/clientconf/mon-serveur-vpn/ :

cd /etc/openvpn/clientconf/mon-serveur-vpn/

Créez le fichier client.conf (remplacez A.B.C.D par l’adresse publique de votre serveur VPN) :

# Client
client
dev tun
proto tcp-client
remote A.B.C.D 443
resolv-retry infinite
cipher AES-256-CBC

# Clé
ca ca.crt
cert mon-serveur-vpn.crt
key mon-serveur-vpn.key
tls-auth ta.key 1
key-direction 1

# Sécurité
nobind
persist-key
persist-tun
comp-lzo
verb 3

Pour assurer la compatibilité avec le client Windows OpenVPN, on fait une copie du fichier client.conf vers client.ovpn:

cp client.conf client.ovpn

 

– Installer et configurer votre client VPN Windows

Téléchargez et installez le client VPN OpenVPN. Vous le trouverez ici. Attention, prenez le client compatible avec l’architecture de votre CPU (64bits ou 32).

Allez sur votre serveur et télécharger le contenue du répertoire /etc/openvpn/clientconf/mon-serveur-vpn. Collez ensuite les fichiers dans le répertoire de votre ordinateur C:\Program Files\OpenVPN\config.

Exécutez votre client VPN OpenVPN en tant qu’administrateur. Dans votre barre des tache, en bas a droite, une nouvelle icône devrais apparaître. Faites un clic droit dessus et cliquez sur ‘Connecter’.

Après quelques secondes vous serez connecté à votre serveur VPN !!
Pour vérifier votre nouvelle IP, allez ici.

 

Source et Image.

  • Matthias

    « Pour rendre cette règle de NAT persistante, il faut commencer par créer un script de chargement de règles de Firewall (ou utiliser un script existant) :

    sh -c « iptables-save > /etc/iptables.rules »

    Le serveur est maintenant prêt à accueillir les clients. »

    La commande crée le script, ou pas du tout? ( Noob here)

    • pazpop

      Lut!

      Oui, cette commande créer le
      script 🙂

      Le ‘>’ permet de créer le fichier s’il n’existe pas
      🙂 Sinon, si le script existe, un ‘>>’ aurais simplement
      rajouter ta règle iptables 🙂

      ++

    • pazpop

      Cet article wiki pourra aussi te donner d’autres infos complémentaires 🙂
      http://wiki.korben.info/vpn

  • Matthias

    J’ai une deuxième « question » :
    J’ai suivi le tuto à la lettre, et mon client windows n’arrive pas à se connecter à mon serveur debian.
    J’ai :
    _mis un nom de domaine plutôt qu’une adresse ip dans le fichier de config : client.conf
    _les fichiers ta.key et matthias.key ( matthias est le nom de mon client de test) ne se copient pas sur mon pc ( je n’ai pas les droits de lecture sur les fichiers)

    Question bonus : quels sont les fichiers à laisser sur le serveur ( clef privé serveur, certificat), et les fichiers à donner au client ( certificat serveur, clef publique serveur, clef privé client, fichier config client, etc…),
    et quels sont leurs nom dans ce tuto? (parce que j’ai l’impression que toute la partie « mon-serveur-vpn » concerne ce que l’on doit donner au client, donc je suis un peu perdu :p)

    • pazpop

      Ton client Windows est bien OpenVPN
      client ?

      Tu dois copier tous les fichiers qui
      sont dans le répertoire /etc/openvpn/clientconf/mon-serveur-vpn dans
      le dossier de conf du client OpenVPN sur ta machine Windows
      C:Program FilesOpenVPNconfig.

      As tu bien lancé ton client OpenVPN en
      tant qu’administrateur ?

      Si tu rencontre toujours des problèmes,
      regarde les logs de ton client Windows. Ils pourront de donner plus
      d’indications sur l’erreur qui t’empêche de te connecter à ton
      serveur VPN.

      Si tu as toujours des problèmes pour
      te connecter, on peut se rejoindre sur un serveur TeamSpeak pour
      essayer de trouver une solution ?

      Pour ta question bonus, tu peux
      laisser tt les fichiers sur ton serveur. Les certificats ‘senssible’
      ne sont pas dans le répertoire
      /etc/openvpn/clientconf/mon-serveur-vpn.

  • pazpop

    Je viens de mettre à jour le tuto (correction de fautes et bug dans les caractères).

  • Paul

    Merci ! Enfin un tûto qui ma enfin permit de réussir à réaliser un VPN fonctionnel^^ 😉

  • SmEn nEmS

    Excellent tuto. Merci bien. Ça marche nickel.
    J’ai une question cependant. Si je configure avec le port 443, le processus OpenVPN ne se lance pas. Sûrement parce que j’utilise le https pour naviguer sur mes sites. Je trouve bizarre qu’il y ait conflit. C’est pas possible de faire fonctionner les 2 ? Du coup j’ai changé de port mais ça n’as plus trop d’intêret, si ?
    Merci d’avance.

    • SmEn nEmS

      J’ai utilisé SSLH pour router mes ports et pouvoir me connecter via le port 443 en SSH, SSL et OpenVPN.

      • pazpop

        Bonjour,

        De rien, je suis content de voir que mes articles servent à quelques choses 🙂

        En effet, il est impossible d’utiliser deux applications serveur qui écoute sur le même port. Dans ton cas, apache écoute sur le 443 pour le https et ton serveur vpn écoute également sur le port 443. Il y a donc un conflit donc une des deux applis ne marchera pas 🙂

        Dans mon cas, j’utilise un vpn pour ne pas être bridé/bloqué par la
        politique de sécurité de mon entreprise qui a tendance à bloquer énormément de site web… J’ai donc choisie d’utiliser le port 443 de mon serveur pour faire un VPN car le https n’est ‘jamais’ bloqué par les firewalls et proxy des sociétés.

        Mais en effet, tu peux très utiliser un autre port 🙂 le fonctionnement sera le même 😀

        Merci pour les informations complémentaire 🙂

        Bonne soirée.

  • Antonin Senay

    Bonjour, j’ai respecté le tutoriel de AàZ, cependant, la connexion via Windows ne se fait pas…

    Voici un screen des logs OpenVPN sous Windows: http://puu.sh/bs9pK/a2cfbf7784.png

    J’espère recevoir de l’aide, merci d’avance !

    • pazpop

      Bonjour,

      D’après tes logs, il y aurait un problème avec ton certificat.
      Cf. 2, 3 et 4ème lignes dans le screenshot :
      No server certificate verification method has been enabled

      Les logs du serveur VPN te remonte quoi ?

      Es-tu sur que ton fichier server.conf est correct ?

    • pazpop

      Bonjour,

      Je vois bien que ton client n’arrive pas à joindre ton serveur…. mais avec ces informations je ne peux pas t’en dire plus.

      Essaye de voir dans les logs du serveur VPN. Il me semble qu’ils arrivent dans le /var/log/messages.

      Question idiote mais arrive tu as joindre ton serveur VPN depuis ton PC via l’IP (ping) et par le port (telnet) ?

      Si ton serveur VPN est derrière un routeur, as tu redirigé les ports via une règle NAT/PAT ?

      As tu bien lancé le serveur VPN ?

      Ton port VPN est-il en écoute depuis le serveur (netstats -a) ?

  • Airilde

    Bonjour,
    J’ai suivi votre tuto et créé mon serveur VPN.
    Cependant une fois connecté sur Windows au serveur vpn, je ne peux naviguer sur aucun site internet..
    Pourtant j’ai utilisé les commande pour foward.. je ne comprends pas.
    Merci d’avance!

    • pazpop

      Bonjour Airilde,

      Je m’excuse pour le temps de ma réponse…

      Rencontres-tu toujours ce problème ?
      Si j’ai bien compris, ton serveur ne forward par ton traffic WEB depuis ton client VPN.

      Si oui, exécute de nouveau la commande :
      sh -c ‘echo 1 > /proc/sys/net/ipv4/ip_forward’
      Attention, si tu redémarre ton serveur debian, la commande ci-dessus n’aura plus d’effet. Pense a également modifier le fichier /etc/sysctl.conf et mettre le paramètre net.ipv4.ip_forward à 1.

      Sinon, vérifie le paramétrage IP que ton serveur VPN attribue à ton client VPN (Cf. /etc/openvpn/server.conf). Regarde surtout les paramètres du bloque # Réseau.

      Ensuite, re-fait un test.

      Si tu as toujours un problème, redémarre ton serveur VPN (service openvpn-server restart) et reconnecte toi avec ton client VPN.

      Reviens vers-moi si tu rencontres encore ce problème.

      Bonne journée.
      ++

      • Simon

        Merci pour ce tuto.
        Je viens de louer un VPS chez OVH, ou j’ai instal la distrib debian 7 (wheezy 64bit) la manipulation donné fonctionnera aussi ?

        • pazpop

          Bonjour Simon,

          Oui, j’ai écrit ce tutoriel pour Debian 7 et je l’ai suivie pour mon Raspberry Pi 😉

          Have Fun ! 🙂

          • Simon

            oki oki merci vais reprendre ça à 0, j’ai du foirée quelque part !

            apparement mon probleme viens au moment ou je fais la commande source vars, j’ai comme message  » No /etc/openvpn/easy-rsa/openssl.cnf file could be found
            Further invocations will fail
             »

          • Simon

            Tout fonctionne parfaitement 🙂 (je te remercie) par contre quand j’essaye de me connecter du boulot, pas moyen (en 3g aucun soucis) mais sur le réseaux ent pas possible… es il possible que le port 443 soit bloqué par le firewall aussi ?
            Si oui quelle autre port pourrais-je tester

          • pazpop

            Pas de soucis 🙂

            C’est peu probable que le port 443 soit bloqué par ton entreprise. Mais tu peux le savoir facilement. Il te suffit d’aller sur un site web utilisant le HTTPS et si la page s’affiche, c’est que ça passe 🙂 Par exemple : https://www.microsoft.com:443/

            Tu te connecte à ton serveur VPN comment ? Tu utilises l’adresse IP ou le nom public (vpn.domaine.tld) ?

            Si tu as un message d’erreur, n’hésite pas à me le partager, je pourrai peut être t’aider.

          • Simon

            Re coucou, le port 443 est bien bloqué, je passe donc par le port 22 et là miracle sa fonctionne !
            sinon j’utilise l’adress ip pour me connecter.

            En tout cas tuto magnifiquement bien fait, je te remercie !!! (j’en avais déja test 2-3 avant mais jamais aussi bien expliqué que le tient) simple et efficace!

          • pazpop

            Yeah ! Je suis content de voir qui tu as réussi 🙂

            Merci pour ton feedback 🙂 ça me fait chaud au coeur.

            Bonne continuation 🙂

          • Simon

            c’est moi qui te remercie 🙂 manque plus que un petit tuto pour sécurisé son serveur ! :p

          • pazpop

            J’ai écrit quelques articles sur ce sujet :
            http://pazpop.fr/surveiller-son-serveur-simplement-sous-gnulinux-debian/
            http://pazpop.fr/securiser-son-site-web-avec-ssl-et-https/

            Sinon, il y a quelques options à activer dans le fichier /etc/sysctl.conf 🙂 Regarde les lignes pour protéger ton serveur des attaques DDOS ou ‘man to the middle’ (dsl, je ne me souviens plus des lignes exacte et je n’ai pas de serveur GNU/Linux Debian sous la main).

            De plus, tu devrais installer fail2ban (outil pour lutter contre les DDOS ou les attaque force-brute) et iptables 🙂 Pour info, il me semble qu’il existe une surcouche d’iptables qui permet une gestion simplifier des règles…
            Par contre, je n’ai pas encore écrits d’article sur ces sujets mais ça ne saurais tarder 🙂

            Bonne journée.

          • pazpop

            IPtable est LE pare-feu sous GNU/Linux 🙂

            Merci en tout cas 🙂 Ça me fait plaisir de voir que tu aimes mon travail 🙂 ça me motiv’ pour continuer 😛

          • pazpop

            J’oubliais, si tu modifie le
            /etc/sysctl.conf, tu dois redémarrer ton serveur pour que ça soit pris en
            compte.

          • Simon

            je te remercie je vais regarder a tout cela, j’ai vais install fail2ban car j’avais déja des tentative de connexion à répétition, par contre, j’ai eu un soucis aprés un bug avec open vpn moi même je ne pouvais plus me co sur mon serveur j’ai du le passer en mode rescue et sup les log fail2ban… bizar :p mais je vais regarde a çela 🙂 (a quand un forum live sur le site? )

          • pazpop

            bizarre pour ton bug… content de voir que tu ai pu te débloquer 🙂

            Merci pour tes suggestions. Je vais réfléchir pour mettre un Forum.

            Bonne continuation.

  • falimero

    super tuto ca marche du premier coup. j’ai juste une question : je suis sur mon pc fixe et je sais que personne ne pourra y accéder. j’aimerais pouvoir me connecter sans rentrer a chaque fois mon mot de passe. est-ce possible facilement ?

    • pazpop

      Bonjour falimero.

      Oui, cela est certainement possible mais dans l’immédiat, je ne serais te dire qu’elle est la procédure à suivre. Si j’ai le temps, je regarderai comment faire sinon, tu peux toujours chercher dans la doc d’openvpn.

      Bonne journée.

      • falimero

        je m’auto réponds, j’ai trouvé la réponse. Il suffit de rajouter dans la config la ligne suivante : askpass tunnel.pass et de créer un fichier tunnel.pass avec le mot de passe dedans.

        Source : https://forums.openvpn.net/topic11342-15.html#p46053

        • pazpop

          Parfait 🙂 Merci pour ta contribution !

  • Landrio

    J’ai suivi tout le tutoriel à la lettre mais au moment de lancer OpenVPN GUI en tant qu’administrateur je n’ai pas de  » connecter  » quand je fais un clic droit sur le logo dans la barre de tâches, savez-vous pourquoi ?

    • pazpop

      Salut Landrio,

      Désolé pour mon temps de réponse… je suis
      pas mal occupé en ce moment.

      Heu, dans le tuto je conseille d’utiliser
      OpenVPN client et non OpenVPN GUI….

      Je t’invite à télécharger OpenVPN « Installer,
      Windows XP and later » ici :
      http://openvpn.net/index.php/open-source/downloads.html

      Bonne soirée,

      ++

      • Landrio

        Pas de problème c’est bon tout fonctionne le VPN se connecte bien mais problème impossible d’accéder à Internet :/

        • pazpop

          As tu pensé à activer le mode routage ?

          Pour cela, exécute la commande :
          sh -c ‘echo 1 > /proc/sys/net/ipv4/ip_forward’
          Attention, si tu redémarre ton serveur debian, la commande ci-dessus n’aura plus d’effet. Pense a également modifier le fichier /etc/sysctl.conf et mettre le paramètre ipv4.ip_forward à 1.

          Si tu as un autre problème n’hésite pas à partager un fichier de log ou tes test car c’est compliquer d’aider quelqu’un sans savoir ce qui ne va pas exactement 😉

          Sinon, vérifie la résolution DNS…

          A bientot.

  • Nicolas Hahn

    Très bon tuto. Enfin un qui fonctionne du premier coup.

    Si vous êtes sur un vps ovh, l’interface résau n’est pas eth0 mais venet0. Il faut donc remplacer la règle NAT par :iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE

    • pazpop

      Content de voir que mon tuto a fonctionné chez toi 🙂

      Merci d’avoir partagé ton tips 🙂 ça devrais en aider plus d’un.

  • Allae

    Bonjours et merci pour le tuto

    ça marche à la perfection cependant j’ai rencontrer un petit problème j’ai essayer plusieurs PC avec les même fichier du client et du coup ça me donne une même ip et donc un conflit.

    est-ce que je dois crée pour chaque pc un compte client et est ce que les client sont relier entre eux ?

    merci beaucoup.

    • pazpop

      Bonjour Allae,

      Désolé pour avoir mis autant de temps pour te répondre.

      En effet, mon tutoriel ne permet pas d’utiliser le même compte pour se connecter depuis plusieurs clients.
      Soit, tu créais un nouveau compte et cette solution devrais fonctionner ou sinon, tu dois modifier certainement la configuration de ton serveur openvpn.
      N’hésite pas à aller voir la documentation d’openvpn.

      Sur le site de Korben.info, un article a été rédigé il y a quelques jours. Je t’invite à le lire car il est vraiment bien : http://korben.info/installer-openvpn.html

      J’espère avoir pu répondre à tes questions.

      Cordialement,
      pazpop.

  • Lokros

    Bonjour !
    Tout d’abord merci pour ton tutoriel !
    Tout est bien fonctionnel cependant j’ai un petit souci, après me connecter au VPN, donc connexion réussie, mon IP attribuée est l’adresse publique de mon VPS. Ce qui est dérageant car il est facilement bloquable du coup !

    Je n’ai pas d’IP 10.x.x.x, saurais-tu d’où ça vient ?

    J’ai un VPS chez OVH.

    • pazpop

      Bonjour Lokros,

      L’adresse IP en 10.x.x.x est celle que tu as en local sur ton serveur et non pas sur Internet. Théoriquement, L’adresse IP public de ton VPS ne peut se changer 😉

      En gros, tu dois considérer ton IP en 10.x.x.x comme une adresse IP local. Pour te donner un exemple, c’est comme ton adresse IP de ton PC perso qui est souvent en 192.168.x.x.

      Bonne journée.

  • Saltitou

    Bonjour,

    Super tutoriel, vraiment!!

    Un seul soucis pour ma part lors de la phase de connection au VPN par OpenVpn, celui ci me demande un mot de passe…

    La connexion du vpn s’arrète à:

    WARNING: No server certificate verification method has been enabled.

    Une petite idée? car pour ma part je ne me souviens pas avoir mis un mot de passe…si ce n’est à l’étape « build-key-pass »..mais celui ci ne fais aucuns effet et la connection tourne en boucle sans jamais se faire…

    Merci de ton super boulot!!

    • pazpop

      Bonjour Saltitou,

      Désolé pour mon temps de réponse. J’espère que tu as pu trouver la solution à ton problème, sinon, la voici :

      En effet, lors de la connexion à ton serveur VPN, tu dois taper le mot de passe que tu as renseigné lors de la génération du certificat.
      Si celui-ci ne fonctionne pas, c’est que tu as du faire une erreur. Alors, je te conseil de générer un nouveau certificat 🙂

      Bonne journée.

  • Mohamed Rachid

    Salut, je me suis heurté à ce souci sur un VPS OVH car openssl n’y est pas installé par défaut.
    Solution : apt-get install openssl

    root@xxx:/etc/openvpn/easy-rsa# source vars
    /etc/openvpn/easy-rsa/whichopensslcnf: 6: /etc/openvpn/easy-rsa/whichopensslcnf: openssl: not found
    /etc/openvpn/easy-rsa/whichopensslcnf: 8: /etc/openvpn/easy-rsa/whichopensslcnf: openssl: not found
    /etc/openvpn/easy-rsa/whichopensslcnf: 10: /etc/openvpn/easy-rsa/whichopensslcnf: openssl: not found
    **************************************************************
    No /etc/openvpn/easy-rsa/openssl.cnf file could be found
    Further invocations will fail
    **************************************************************
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

    • pazpop

      Merci pour avoir partagé ton astuce 🙂

  • F0cks

    Aucune réclamation, juste un ENORME merci pour ton travail et ce tuto simple clair et précis qui a fonctionné du premier coup.
    Merci beaucoup pour ce partage de qualité!

    • pazpop

      Merci 🙂

  • Max

    Salut, tres sympa ce tuto. Petite question, comment fait on s’il on veut créer plusieurs clients ayant des clés différentes
    merci 😉

    • pazpop

      Merci.
      Je ne sais pas 🙁 Je pense que cela doit être possible en modifiant certain paramètre… ^^

      Si j’ai le temps, je vais me renseigner sur la question 🙂

      Sinon, il y a une solution clé en main qui te permets d’avoir plusieurs comptes utilisateur : http://korben.info/installer-openvpn.html
      « Openvpn AS n’accepte que 2 connexions user en simultannée. Au delà faut payer une licence. »

  • Tetmd

    Merci pour le tuto. Server VPN actif en moins de 15 minutes. Encore Merci.

    • pazpop

      Merci pour ton retour 🙂

  • wilfried

    Salut, j’ai fais ce tuto à la lettres juste en changent le port 443 part 8080 car mon cfa bloque le port 443, j’ai essayer de l’installer sur mon rasbperry pi avec pour système raspbian. Tout ce passe bien jusqu’au moment ou je veux me connecter depuis mon ordi portable. Ce message tourne en boucle. Sur ma box j’ai rediriger le port 8080 TC vert mon rasp y a t il autre chose à faire?Je me demande si je ne devrais pas installer debian ce qui pourrais peut être fonctionner. J’espère que quelqu’un pourra m’aider. Merci

    Fri Oct 16 19:28:58 2015 MANAGEMENT: CMD ‘proxy HTTP 192.168.0.13 8080’

    Fri Oct 16 19:28:59 2015 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.

    Fri Oct 16 19:28:59 2015 Socket Buffers: R=[65536->65536] S=[65536->65536]

    Fri Oct 16 19:28:59 2015 Attempting to establish TCP connection with [AF_INET]192.168.0.13:8080 [nonblock]

    Fri Oct 16 19:28:59 2015 MANAGEMENT: >STATE:1445016539,TCP_CONNECT,,,

    Fri Oct 16 19:29:00 2015 TCP connection established with [AF_INET]192.168.0.13:8080

    Fri Oct 16 19:29:00 2015 Send to HTTP proxy: ‘CONNECT xxx.xxx.xxx.xxx:8080 HTTP/1.0’

    Fri Oct 16 19:29:00 2015 recv_line: TCP port read failed on recv()

    Fri Oct 16 19:29:00 2015 SIGUSR1[soft,init_instance] received, process restarting

    Fri Oct 16 19:29:00 2015 MANAGEMENT: >STATE:1445016540,RECONNECTING,init_instance,,

    Fri Oct 16 19:29:00 2015 Restart pause, 5 second(s)

  • Kraggi

    Salut ! Merci pour ce tuto tous fonctionne a la perfection je voulais juste savoir avec le fichier de config qu’on place dans le dossier on peut utilisé le vpn sur plusieurs machine en même temps ?

    Merci d’avance :!

    • pazpop

      Salut Kraggi, merci pour ton retour et je suis content de voir que mon tutoriel a pu te rendre service 🙂

      En effet, je pense que cela est possible 🙂 en revanche, je n’en suis pas sure à 100%. Si cela ne fonctionne pas, n’hésite pas à créer un nouvel utilisateur.

      Bonne soirée et à bientôt.

  • Sébastien Pillien

    Article intéressant et bien construit. Il faudrait juste l’actualiser car la commande:

    cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

    n’est plus à jour avec la version actuelle d’OpenVPN.

    Cordialement

    • pazpop

      Bonjour,

      Merci pour ton retour. En effet, mon article commence à dater un peu.

      Bonne journée,
      ++

      • TheProphet22

        Bonjour, quelle est la commande de ce fait s’il vous plaît ?

        • pazpop

          Après quelques minutes de recherche sur google…
          les fichiers d’exemple de « easy-rsa » ne sont plus dans
          /usr/share/doc/openvpn/examples/easy-rsa/2.0/ mais dans
          /usr/share/easy-rsa/

  • alex

    Bonjour, tout d’abbord merci pour ce tutoriel, je le trouve très utile. Cependant, je rencontre un probleme lors de la conexion au vpn. Si je me connecte sur le vpn avec un pc qui est sur la meme conexion que le vpn, cela marche. Parcontre, si je me connecte sur le serveur depuis un ordinateur qui est situé ailleur, cela ne fonctionne plus. Est-ce possible de vous joindre par ts ou skype ?

    • pazpop

      Salut,

      Merci pour ton commentaire, cela me fait plaisir de le lire.

      En ce qui concerne ton problème, il met possible de te donner un coup de main. En revanche, avec les fêtes de fin d’années je risque d’être relativement occupé. Mais vers le 11 janvier, nous devrions pouvoir nous parler sur TeamSpeak (ts.demineurs.fr).

      Envoie moi un e-mail via le formulaire de contact histoire que l’on puisse se recontacter facilement 😉

      Bonne fin de journée,
      ++

      • alex

        juste une dernière question : comment connaitre l’adresse ip qu’il faut mettre dans le client.conf. Il faut mettre quelle adresse ip, l’adresse que l’on obtient sur les sites type mon-adresse-ip ou autre ?

        • pazpop

          Il s’agit de l’adresse publique de ton serveur VPN.

          En ligne de commande, depuis ton serveur VPN, tu peux faire :
          wget http://checkip.dyndns.org/

          Et après, tu affiche le contenue du fichier (via un cat) et tu devrais avoir une ligne du genre :
          Current IP Address: A.B.C.D

          Il faut comprendre que A.B.C.D est égale à ton adresse publique de ton serveur VPN.

          • pazpop

            Si cela ne marche pas, tu peux aussi faire :
            curl -s http://curlmyip.com

            Je n’ai pas de serveur sous la main, donc mes commandes que je donnes ne son pas testé 😉

          • alex

            je te remercie pour tes réponses très rapides !! j’ai fais exactement ce que tu m’as dit, j’ai donc compris quelle ip mettre. Avant j’en mettait une autre et ça marchait. Maintenant , j’ai un message d’erreur : connect to [AF_INET]78.225.75.9:443 failed, will try again in 5 seconds: Le système a tenté de joindre un lecteur à un répertoire stocké sur un lecteur joint.
            Excuse moi de te déranger ^^.

          • alex

            Après avoir testé quelques trucs, j’ai finalement compris que mon vpn ne se lance pas. Je ne comprends pas pourquoi. J’ai refais tout depuis le début et ça ne marche toujours pas.

          • pazpop

            Salut,

            Qu’elle est l’erreur que tu obtiens ? As tu as message d’erreur à me partager ? Si tu ne me donne pas plus d’information, il m’est impossible de te donner un
            coup de main.

            Je te conseil de reprendre tout depuis le début en désinstallant complètement openvpn et de recommencer le tutoriel. Pour info, la commande suivante permet de désinstaller un package et ces fichiers de configuration : apt-get purge openvpn

            Bonne journée,
            ++

      • alex

        Initialization Sequence Completed With Errors ( see http://openvpn.net/faq.html#dhcpclientserv ) voici l’erreur que j’aie a la fin de ma conexion au vpn

  • alex

    Bonjour, j’ai compris pourquoi cela ne marchait pas. Mon serveur vpn ne se lance pas. Quand je le lance aucun message n’apparait.

  • alex

    Apres avoir effectué plusieurs tests , j ai enfin reussis a faire fonctionner mon vpn . Parcontre je voulais savoir si c etait normal d’avoir plus de 150 de ping quand je me connecte dessus alors que j en ai 30 normalement

    • pazpop

      Je suis content de voir que tu es réussi.

      Il y a différentes explication pour ton ping élevé, mais en générale, cela peut s’expliquer du faîte que tu héberge ton serveur VPN chez toi et que tu n’as pas une grosse connexion (la fibre par exemple).
      Sinon, si tu héberges ton serveur VPN chez toi, vérifie qu’il y a bien des règles NAT qui sont ouverte d’Internet vers ton serveur (port TCP 443).

      Sinon, il est normale d’avoir un ping un peu plus élever mais bon… dans ton cas… la différence est énorme 🙁

      Sinon, tu peux utiliser l’UDP plutôt que le TCP. Tu gagnerais en performance et donc en ping.

      Bonne journée,
      ++

  • Thomas D.

    Salut, Merci pour le tuto cependant j’ai un problème … Voici un screen des logs du client. Si quelqu’un peux m’aider. Merci http://puu.sh/mg0Ld/fcce5b5180.jpg

    • pazpop

      Salut,

      D’après tes logs, tu aurais une taille de MTU trop élevé entre le serveur et le client VPN. Très curieux comme message d’erreur.

      Dans la configuration du serveur et du client, as tu bien le TCP d’activé ?
      – Client : proto tcp-client
      – Serveur : proto tcp

      Bonne journée,
      ++

  • Julien

    cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /etc/openvpn/

    Depuis la mise à jour 12/2015 je cinstate que le fichier dhXXXX.pem est devenu dh2048.pem

    A vérifier en cas de soucis 😉

    • pazpop

      Merci pour ton feedback 🙂

  • Cédric

    Bonjour, j’ai effectué ce tuto, ça fonctionne correctement, mise à par qu’il m’a fallu créer un dossier tmp (suite à la lecture du log).
    J’ai quand même une question, mon but est d’accéder à mon réseau local domicile depuis l’extérieur, et je ne veux pas faire passer tout le trafic internet par le vpn, quelle modification faut-il que j’effectue ?