Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

PiVPN – Pour transformer un Raspberry Pi en serveur OpenVPN

Si vous voulez vous installer un petit serveur OpenVPN à la maison et utiliser votre connexion perso pour y faire transiter vos paquets en toute sécurité, c’est possible grâce à un Raspberry Pi, une petite carte SD d’au moins 8GB et le script PiVPN.

Pour procéder à l’installation, connectez vous en ssh sur votre Raspberry Pi. Sous Raspbian, il faut faire :

ssh pi@ADRESSE_IP

Et utiliser comme mot de passe : raspberry

Ensuite, lancez la commande suivante qui aura pour effet de télécharger et lancer le script PiVPN.

curl -L https://install.pivpn.io | bash

Ça va faire quelques mises à jour…

Puis ça va vous expliquer ce qui se passe et vous poser quelques questions.

PiVPN vous indique que ça va utiliser l’adresse IP attribuée via DHCP par votre routeur ou votre box.

Puis on vous demandera de choisir un utilisateur local qui gérera toutes les configs OpenVPN. Ici, je n’en ai qu’un et c’est le user « pi ».

Et puis on enchaine sur une mise à jour de patchs de sécurité.

Optez ensuite pour l’UDP concernant le protocole :

Vous pouvez changer le port du serveur OpenVPN mais par défaut c’est 1194. Pensez aussi à l’ouvrir sur votre box ou routeur si cela est filtré.

Et là, il faut choisir le niveau de chiffrement utilisé par OpenVPN… Plus le chiffre est élevé, plus le chiffrement sera dur à casser.

Le script PiVPN va alors générer les certificats de chiffrement…

Concernant la génération des paramètres Diffie Hellman, cela peut prendre beaucoup de temps à faire sur le Raspberry Pi. On parle de plusieurs heures. Évidemment, si vous n’êtes pas pressé, c’est ce que je vous recommande (choisir « No »). Mais si vous voulez aller plus vite, PiVPN vous propose de récupérer des paramètres générés aléatoirement sur un serveur public (choisir « Yes »). À vous de voir…

Une fois que c’est fait, on vous demandera si les clients vont se connecter en utilisant l’adresse IP publique de votre Raspberry Pi ou un nom de domaine (référencé sur DNS public)

Puis vous devrez choisir vos serveurs DNS… Ceux de Google, d’OpenDNS, de Level3…etc. Ou choisissez Custom pour mettre les vôtres. Par facilité pour ce tuto, j’ai choisi OpenDNS.

Voilà, la config est terminée. À ce moment, le script PiVPN nous indique une commande pour créer des profils pour pouvoir se connecter. On va donc s’en servir…

…mais avant, on a besoin de redémarrer le Raspberry Pi !

Une fois que c’est redémarré, reconnectez-vous via SSH à votre Rpi. Vous pouvez pour plus de sécurité changer aussi le mot de passe par défaut avec la command « passwd ».   

Lancez ensuite la commande

pivpn add

Pour créer un nouveau profil de connexion à votre serveur OpenVPN. Donnez-lui un nom d’utilisateur, un mot de passe et paf, une clé sera générée et un fichier USERNAME.ovpn sera placé dans le dossier /home/pi/ovpns

Ce fichier *.ovpn est très important, car il contient les clés nécessaires à un client OpenVPN pour se connecter à votre serveur. Vous devez donc le copier et le transmettre aux appareils qui ont besoin de se connecter à votre serveur OpenVPN.

Par exemple, sous Android, vous pouvez télécharger et installer le client suivant et y importer ce fichier .ovpn. Il ne vous sera alors demandé uniquement votre mot de passe et la connexion s’établira.

Ensuite pour la gestion, vous pouvez utiliser les commandes suivantes :

pivpn clients (pour afficher les clients connectés)

pivpn list (pour afficher les certificat valides et révoqués)

pivpn revoke (pour révoquer un certificat précis)

et

pivpn uninstall (pour désinstaller pivpn)

Et voilà ! Trop facile !



Réponses notables

  1. gbs says:

    Attention, openvpn ne tourne que sur un coeur… Donc niveau perf, c’est très mauvais sur rpi !

  2. seb says:

    Question con: Une fois qu’on a généré le fichier *.ovpn sur le RaspberryPi, comment on fait pour le récupérer pour le copier sur son PC ou téléphone?

  3. Est-on limité en nombre d’utilisateurs connectés ? Je me rappelle (mais ça date…) que la version gratuite du serveur OpenVPN est limitée (1 ou 2 utilisateurs, qqchose comme ça). Je parle bien du serveur hein, pas le logiciel client.

  4. gbs says:

    OpenVPN est une solution entièrement libre, et il n’y a pas de limite d’utilisateur, enfin je ne la connais pas, mais elle doit être très haute, et seulement technique

  5. La question est :
    Est-ce que cela fonctionnerait bien avec le Dernier Raspberry Pi Zero W sortie le mois dernier ?

    Merci

  6. gbs says:

    Bien ? non. Tu seras limité à 200 ou 300ko/s au mieux, même si tu as 100Meg de bande passante…

  7. Diki says:

    De mémoire OpenVPN est limité à 2 utilisateurs simultanés, au-delà c’est payant normal… Autant donc prendre une solution CLient/Server OpenVPN payante. Maintenant tout dépend du besoin originel, à titre d’exemple si c’est pour monter un lab complet à partir d’une machine hôte et 2 VMs (client Raspberry/server OpenVPN sur machine Host ou inversement) pour ensuite pouvoir jongler entre des switchs virtuels (routages VMs) à travers 2 Box différentes (Ethernet/Wi-Fi) alors 2 profils users sont largement suffisants. Il faudrait vérifier si le nombre d’utilisateurs est toujours limité à 2 en version gratuite…:wink:

  8. seb says:

    C’est rassurant, au vu des réponses, je ne suis pas le seul à ne pas savoir comment faire. ^^

  9. gbs says:

    Faut arrêter avec votre limitation à deux users, la version communautaire est complètement libre…

    “the community version is completely free and unrestricted; you can connect as many clients as you like and set up as many servers as you like.”

  10. Ça s’appelle du spam. Signalé à la modération perso.

  11. Si tu es sur une distribution unix - linux, tu peux le récupérer avec SCP à partir de la machine client.
    Si on reste dans l’exemple du site avec ton raspberry ça devrait ressembler à ça.
    cmd => scp pi@adresse_ip /home/pi/ovpns/nom.ovpn ./

Continuer la discussion sur Korben Communauté

7 commentaires supplémentaires dans les réponses

Participants