OpenVPN : Installer un Serveur VPN sur Raspberry Pi (en 5 min)


OpenVPN est un service permettant d’héberger son propre serveur VPN, en se passant d’un serveur tiers (que ce soit un serveur externe ou via une solution propriétaire).
Pour rappel, un VPN est une connexion sécurisée entre deux réseaux, par exemple en votre téléphone et votre domicile.
Dans ce tutoriel, je vais vous donner une méthode étape par étape pour mettre cela en place très rapidement sur Raspberry Pi.

OpenVPN est disponible dans les dépôts officiels, et peut donc être installé avec apt comme pour tous les packages Linux. Il doit ensuite être configuré correctement, notamment en termes de sécurité, pour s’assurer que les données sont chiffrées entre les deux réseaux.

Il y a quelques années, j’avais réalisé l’installation manuellement de bout en bout, et je l’avoue c’était assez lourd. La configuration était vraiment longue et complexe, trop dure à suivre, notamment quand le but est un simple usage personnel.

C’est pourquoi j’ai cherché récemment une méthode simple pour installer et configurer OpenVPN, et je l’ai trouvée ! Je la partage maintenant avec vous.

Prérequis

Juste avant de passer à l’installation, assurez-vous que tout est prêt (y compris vous !).
Si vous êtes un utilisateur avancé, vous pouvez sans doute passer cette partie, je tiens juste à éclaircir le sujet au maximum avant d’aller plus loin.

Qu’est-ce qu’un VPN ?

VPN est l’abréviation de « Virtual Private Network », soit littéralement « réseau privé virtuel ». L’idée de base est de fusionner deux réseaux distants.
Par exemple, certaines sociétés ont des employés sur plusieurs sites, mais partagent les ressources du siège avec tout le monde (un partage de fichier par exemple).

Dans le cas d’un Raspberry Pi, cela servira généralement à accéder à un réseau distant depuis n’importe où.
Typiquement, cela vous permet d’accéder à vos caméras de sécurité ou à votre système de domotique depuis votre mobile lorsque vous êtes en voyage.

Votre smartphone sera connecté au Raspberry Pi via Internet, et un tunnel sécurisé sera créé entre les deux. Cela permettant un accès complet au service du réseau, de manière bien plus sûre qu’en ouvrant un port sur votre box.

OpenVPN est l’une des solutions pour faire cela, et il est disponible sur tous les systèmes d’exploitation (y compris sur mobile).

Trouver son adresse IP

Afin de mettre en place cela, vous aurez besoin de connaître l’adresse IP publique de votre domicile, et de configurer le client pour y accéder.
Si vous ne savez pas comment l’obtenir, je vais vous expliquer cela tout de suite, ainsi qu’une solution dans les cas ou l’adresse IP est susceptible de changer de temps en temps.

Quelle est mon IP ?

Trouver votre adresse IP publique est assez simple, car il existe de nombreux sites web qui vous donneront l’information.
Le site que j’utilise la plupart du temps est adresseip.com, cliquez sur le lien et notez l’adresse IP affichée :

Vous en aurez besoin à la fin du tutoriel uniquement, afin de configurer le client OpenVPN. En attendant notez la, afin de la retrouver facilement.

Statique vs dynamique

En fonction de votre fournisseur d’accès à Internet, il est possible que cette adresse IP soit statique ou non.
Dans mon cas, je ne suis pas très chanceux, car mon adresse IP est renouvelée tous les jours ou presque.
Si vous êtes dans le même cas, votre client VPN ne fonctionnera plus dès le premier changement d’adresse (ou bien il faudra la mettre à jour à chaque fois).

Pour éviter cela, vous pouvez utiliser un service gratuit comme No-IP, qui fournit un nom de domaine gratuitement (au format votrenom.ddns.net par exemple) qui redirige vers votre adresse IP, même si elle change. De cette manière vous pourrez configurer votre client VPN avec ce nom de domaine au lieu de votre adresse IP.

Il faut juste avoir quelque chose sur votre réseau qui mettra à jour l’adresse IP sur le site NoIP régulièrement et automatiquement.
Personnellement, j’ai une Livebox et il y a une option dessus pour configurer un compte NoIP. Je n’ai plus à m’en soucier une fois configuré.

Même si votre routeur ne propose pas l’option, il est possible d’installer un script sur Raspberry Pi (ou n’importe quel autre appareil) pour faire la même chose. Le tutoriel pour Raspberry Pi est disponible ici si cela vous intéresse (en anglais).

Maîtrisez Raspberry Pi en 30 jours
Téléchargez le livre numérique.
Découvrez les secrets du Raspberry Pi à travers un challenge de 30 jours.

Installation de Raspberry Pi OS

La dernière étape de préparation est de s’assurer que Raspberry P OS est installé et configuré correctement.
Si vous avez besoin d’aide pour cela, je vous laisse lire mon tutoriel pas à pas ici.

Avant d’aller plus loin, assurez-vous tout de même que :

  • Raspberry Pi OS est installé (la version Lite est suffisante)
  • L’accès au réseau et à Internet fonctionne (de préférence via Ethernet)
  • Votre système est à jour
  • Vous avez suivi mes conseils pour sécuriser votre Raspberry Pi.
    Cela est particulièrement utile pour une machine qui tournera 24/24 avec un port ouvert sur Internet.

Installation du serveur OpenVPN

Une fois que tout est prêt, on peut passer à l’installation du serveur VPN sur le Raspberry Pi.
Cela implique plein de choses en termes de réseau, sécurité, utilisateurs et certificats, mais la bonne nouvelle c’est que le script que je vais vous donner va s’occuper de tout pour vous.

Le script OVPN

Connectez-vous à votre Raspberry Pi en utilisant SSH, et suivez cette procédure :

  • Nous allons utiliser un script provenant du GitHub de angristan.
    Si vous voulez, vous pouvez vérifier le code avant installation en vous rendant sur cette page.
  • Copiez et collez cette commande dans votre terminal pour télécharger le script :
    wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh -O openvpn-install.sh
  • Lancez ensuite le script avec :
    sudo bash openvpn-install.sh
  • Le script vous affichera votre adresse IP locale (elle vous sera nécessaire ensuite), votre adresse IP publique, puis vous posera quelques questions :
  • La plupart du temps, vous pouvez garder les options par défaut.
    Contentez de vous de cliquer sur « Entrée » si vous ne savez pas trop quoi répondre.
    L’installation d’OpenVPN démarre.
  • Quelques secondes plus tard, l’assistant vous demandera de créer votre premier utilisateur.
    Donnez-lui un nom (votre prénom ou le nom de l’appareil qui utilisera ce compte par exemple), et définissez le mot de passe si besoin (cela n’est pas indispensable).

Une fois que c’est fait, le script se termine et vous donner l’emplacement du fichier de configuration :

Voilà, le serveur VPN fonctionne et votre premier client est prêt à être utilisé 🙂

Note : À ce stade, je vous conseille de redémarrer votre Raspberry Pi. Je ne sais pas trop pourquoi, mais dans mon cas cela n’a pas fonctionné avant un redémarrage (même après avoir relancé le service manuellement).

Redirection de port

Avant de passer à la configuration du client, il y a une étape supplémentaire à faire.
La plupart du temps, votre Raspberry Pi n’est pas connecté à Internet directement, mais il est caché derrière votre box Internet.
Il faut donc configurer votre routeur pour rediriger les connexions VPN vers le Raspberry Pi.

La configuration dépendra de votre box, donc je ne peux pas vous donner la procédure exacte, mais votre fournisseur d’accès devrait être en mesure de vous aider.
Par exemple, pour la Livebox 4 le tutoriel est sur cette page.

Mais dans tous les cas il vous faudra configurer :

  • Le port externe : cela peut être 1194 (le port par défaut d’OpenVPN) ou n’importe quoi d’autre
  • L’adresse IP interne : le script vous la donner au début de l’installation, sinon suivez mon tutoriel à ce sujet
  • Le port local : C’est donc 1194 par défaut, ou tout autre valeur que vous avez renseigné dans le script si vous n’avez pas gardé l’option par défaut

Dans mon cas, la configuration ressemble à cela :

J’ai donc ajouté une ligne, qui redirige le port 1194 vers le Raspberry Pi, sur le même port.

Note : cela peut être une bonne idée de fixer l’adresse IP du Raspberry Pi, que ce soit sur votre routeur ou directement dans le système.

Installation du client OpenVPN

Notre serveur VPN est désormais installé et accessible depuis Internet, il ne reste plus qu’à configurer un client pour pouvoir se connecter depuis n’importe où.
OpenVPN est disponible sur PC (Windows, Linux) et smartphone (iPhone et Android).
Je vais vous montrer comment installer et configurer cela.

Récupérer le fichier OVPN

La première chose à faire, quel que soit le système pour l’installation, est de récupérer le fichier généré sur le Raspberry Pi par l’assistant OpenVPN.
Vous vous rappelez ? Pour moi c’était dans /home/pi/android.ovpn.

Vous devez donc le récupérer et le mettre sur le client où vous souhaitez installer OpenVPN.
La manière la plus simple si vous êtes sur Raspberry Pi OS Lite et que SSH est activé est de se connecter au Raspberry Pi avec FileZilla ou WinSCP, et de transférer le fichier sur votre ordinateur.
Ensuite vous pourrez l’envoyer ou vous voulez.

Sur FileZilla, créez un nouveau site, et utilisez SFTP pour vous connecter au Raspberry Pi.
Indiquez l’adresse IP, l’identifiant et le mot de passe :

Une fois connecté, vous pouvez télécharger le fichier qui doit se trouver dans /home/pi, et l’envoyer sur l’appareil sur lequel sera installé le client VPN.
Pour un PC vous pouvez passer par une clé USB, ou alors l’envoyer par email (je vais souvent ça pour les appareils mobiles, ça reste le plus simple).

Optionnel : Utiliser votre nom de domaine No-IP

Si vous avez une adresse IP publique dynamique, et que vous utilisez un service comme No-IP, n’oubliez pas de modifier le fichier de configuration :

  • Ouvrez le fichier .ovpn
  • Trouvez la ligne suivante :
    remote <adresseip> 1194
  • Remplacez-la par :
    remote <nomdedomaine> 1194
  • Enregistrez et fermez le fichier

Voilà, vous pouvez maintenant l’envoyer sur n’importe quel appareil.

Installation sur Windows

  • Téléchargez OpenVPN depuis le site officiel
  • Installez-le (vous pouvez garder les options par défaut)
  • Une fois que c’est fait, une icône OpenVPN devrait apparaître dans la zone de notification, à côté de l’heure.
    Si ce n’est pas le cas, lancez l’application depuis le menu démarrer.
  • Faites un clic droit sur l’icône et choisissez « Importer un fichier… »
  • Choisissez le fichier généré sur le Raspberry Pi et confirmez
  • Faites un clic droit à nouveau, et cliquez cette fois sur « Connexion ».
    Cela ne fonctionnera que si vous n’êtes pas sur le réseau de votre domicile, je vous conseille donc de tester en partage de connexion sur votre téléphone par exemple.
  • Tapez votre mot de passe (celui indiqué lors de la configuration sur le Raspberry Pi)

Et voilà, vous êtes maintenant connecté à votre serveur VPN 🙂

Installation sur iPhone / Android

OpenVPN est également disponible pour votre téléphone !
L’application s’appelle « OpenVPN Connect » et est disponible sur l’App Store et sur Google Play Store.

  • Installez l’application sur votre mobile
  • Transférez le fichier .ovpn sur le téléphone.
    Comme indiqué précédemment, le plus simple est de vous envoyer un mail, de l’ouvrir sur le tel et de télécharger la pièce jointe.
  • Ouvrez l’application OpenVPN Connect
  • Allez dans Import Profile > File, et choisissez le fichier .ovpn depuis votre dossier de téléchargement
  • Cliquez sur « Import » puis « Add »
  • Un nouveau profil sera ajouté, et vous pourrez vous connecter en cliquant dessus :

    N’oubliez pas de déconnecter votre Wi-Fi si vous êtes connecté au même réseau que le Raspberry Pi.
  • Voilà, vous devriez maintenant être connecté à votre VPN :

Conclusion

Félicitations, vous savez maintenant comment installer facilement OpenVPN sur votre Raspberry Pi, et vous connecter au réseau de chez vous depuis n’importe où sur la planète.

Si c’est la première fois que vous entendez parler de VPN ou de redirection de port, cela peut sembler un peu compliqué, mais l’installation en elle-même du serveur OpenVPN est plutôt simple.

Restez connectés!

Tenez vous informés des dernières nouveautés en vous inscrivant ici. Pas de panique, il s'agit seulement d'un mail par mois histoire de rester à jour :)


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

Patrick Fromaget

Je suis l'auteur principal et le créateur de RaspberryTips. Mon but est de vous aider sur tous vos problèmes qui concernent Raspberry Pi en publiant des guides détaillés et des tutoriels rapides. Dans la vraie vie, je suis administrateur système (Linux principalement) avec une solide expérience dans le développement web.

Recent Posts

Maîtrisez Raspberry PiTéléchargez le livre numérique

Découvrez les secrets du Raspberry Pi dans un défi de 30 jours