Aller au contenu

[VPS Oracle] Créez votre propre serveur VPN gratuit à vie

·12 mins· 0 · 0 ·
Tuto VPS Oracle Serveur VPN OpenVPN Gratuit à vie
JustinType
Auteur
JustinType
Ingénieur Cybersécurité et Joueur de CTF
Sommaire
VPS Oracle - Cet article fait partie d'une série.
Partie 2: Cet article

Introduction #

Cet article fait partie d’une série consacrée à l’hébergement de services gratuits à vie sur un serveur privé. Dans celui-ci je vous présente comment créer votre propre serveur VPN.

C’est quoi un VPN et comment ça marche ? #

Un VPN (”Virtual Private Network”) est un outil qui permet de créer une connexion sécurisée entre votre appareil (ordinateur, smartphone, …) et Internet.

Un VPN crée un “tunnel” sécurisé entre votre appareil et un serveur distant, ce serveur peut être géré par un fournisseur grand public (comme NordVPN, CyberGhostVPN,…), par votre entreprise ou dans la cadre de cet article par vous-même !

Toutes les données qui passent par ce tunnel sont chiffrées, ce qui signifie qu’elles sont transformées dans un format illisible pour n’importe quelle personne qui essayerait de les intercepter.

L’objectif d’un VPN est simple : créer un lien virtuel, isolé et sécurisé entre deux points.

vpn_scheme_fr

  1. Connexion au VPN : Vous vous connectez à un serveur VPN via une application qu’on appelle le client VPN.
  2. Chiffrement des données : Toutes les données que vous envoyez et recevez sont chiffrées par le client VPN.
  3. Transmission via le serveur VPN : Vos données chiffrées sont envoyées au serveur VPN. Ce serveur agit comme un intermédiaire entre votre appareil et Internet.
  4. Déchiffrement et envoi : Le serveur VPN déchiffre les données et les envoie à leur destination sur Internet (par exemple, un site web).
  5. Retour des données : Les données retournées à votre appareil passent à nouveau par le serveur VPN, où elles sont chiffrées, envoyées à votre appareil et enfin déchiffrées par votre client VPN pour que vous puissiez les lire.

Plus simplement :

vpn_meme

Vous remarquez donc que les données sont accessibles en clair sur le serveur VPN, celui qui gère ce serveur peut donc consulter vos données comme bon lui semble.

Cas d’usage d’un VPN #

Généralement, on utilise un VPN de 2 façons :

  • Dans le cadre professionnel
  • Dans le cadre personnel

Cadre professionnel #

Dans le cadre professionnel, un VPN sert généralement à accéder à des ressources d’entreprise (applications, fichiers, …) de façon sécurisée même si l’on se trouve physiquement à l’extérieur de l’entreprise.

Par exemple, pour permettre à ses salariés de faire du télétravail ou à des prestataires d’accéder à certaines ressources, une entreprise mettra en place un VPN client-to-site :

client_to_site

On peut aussi avoir l’exemple d’une très grosse entreprise avec des filiales à l’étranger. Si des salariés à Paris ont besoin d’accéder à des ressources qui se trouvent à New York ou inversement, ceux-ci utiliseront très certainement un VPN site-to-site :

site_to_site

Dans les 2 cas, les serveurs VPN sont gérés par votre entreprise. Celle-ci peut consulter les données qui transitent via ces serveurs, ce qui est tout à fait normal et légal.

Cadre personnel #

Dans le cadre personnel, on utilise généralement un VPN grand public pour être anonyme ou pour accéder à des ressources géo-restreintes. Lorsque l’on souscrit à un abonnement, on peut donc accéder à des serveurs localisés dans plusieurs pays différents en fonction du fournisseur :

grand_public

Pour en apprendre plus sur les différents types de VPN : IT-Connect

Pourquoi utiliser son propre serveur ? #

Comme on l’a vu précédemment celui qui gère le serveur peut consulter les données qui transitent par celui-ci à tout moment, c’est donc le cas pour les gérants de VPN grand public.

Evidemment ceux-ci vous diront le contraire et en feront même un argument commercial, certains le respecte peut-être, mais n’oubliez pas que rien ne les empêche techniquement de vendre vos données sans parler de collaboration avec des instances gouvernementales.

Oui même pour les “VPN no log”, no noob no arnaque.

fb_meme

Bon très bien, peut-être que vous vous avez suivi un bon tuto pour améliorer la protection de votre vie privée sans vous reposer uniquement sur un VPN ou que vous n’avez simplement pas besoin d’un tel niveau de confidentialité.

“Tant que je peux accéder au Netflix US ou Japon je m’en fiche”

Eh bien sachez justement, que les grosses plateformes de Streaming mettent en place de plus en plus de processus pour détecter si vous utilisez un VPN.

Vous pouvez rapidement vous trouver devant ce type de message et ne rien pouvoir y faire.

netflix_detection

Je ne rentrerai pas dans les détails techniques de comment Netflix peut détecter si vous utilisez un VPN, voici quelques ressources pour ceux qui veulent creuser :

Ce qu’il faut retenir : Utiliser votre propre serveur permet d’avoir beaucoup plus de contrôle sur vos données et réduit considérablement la détection des plateformes mais ne la rend pas inexistante pour autant.

Solution retenue : OpenVPN #

Saviez-vous que tous les VPN grand public reposent sur les mêmes protocoles de base pour établir un tunnel sécurisé ?

Eh oui ! Si vous regardez la documentation technique de ces VPN vous vous rendrez vite compte qu’en réalité ils utilisent tous les mêmes protocoles :

  • OpenVPN
  • IPSec / IKEv2
  • Wireguard
Pour en apprendre plus sur ces différents protocoles : Avast

Vous pouvez même choisir quel protocole utiliser dans les paramètres de certains :

cyberghost1

cyberghost2
Protocoles utilisés par CyberGhost VPN

Bien que les services VPN commerciaux offrent commodité et support, la technologie sous-jacente est accessible à tous. Avec un peu de connaissances techniques et de temps, n’importe qui peut mettre en place et utiliser un VPN gratuitement.

C’est exactement ce que nous allons faire avec le protocole OpenVPN.

Avantages #

Si nous retenons ce protocole c’est parce que celui-ci présente plusieurs avantages :

  • Il est open-source, cela veut dire que son code source est disponible publiquement. Il y a donc une totale transparence et une amélioration continue du protocole car n’importe qui peut contribuer au code.
  • Il dispose d’une grande communauté, ce qui garantie des mises à jour régulières et une documentation importante.
  • Il est multi-plateforme, ce qui permet de l’utiliser simplement sur Windows, MacOS, Linux, Android ou iOS.
  • Il est gratuit à vie !

Inconvénients #

Même si cette solution est gratuite, sécurisée et simple, elle présente tout de même certaines limitations :

  • le pays du serveur VPN
  • le nombre de connexions simultanées

En effet, comme on l’a vu précédemment une entreprise proposant un VPN grand public dispose de plusieurs serveurs dans plusieurs pays. Lorsque vous payez vous pouvez choisir à quel serveur accéder et donc à quel pays.

Dans notre cas nous n’aurons accès qu’à un seul pays → celui où nous créons notre compte Oracle. Lors de la création de votre compte, il vous sera demandé la région à utiliser, vous ne pourrez pas changer une fois le compte créé.

Pensez donc bien à ce que vous voulez, si vous souhaiter utiliser l’offre d’Oracle pour un VPN aux USA par exemple il faudra choisir la région en conséquence. Si vous souhaitez également utiliser l’offre d’Oracle pour un serveur de jeu comme Minecraft, un serveur éloigné baissera les performances → À vous de choisir ce qui est le plus important !

De plus, la documentation d’OpenVPN, précise que vous êtes limité à 2 connexions gratuites simultanées.

Vous pouvez installer autant de clients VPN sur des appareils différents, mais vous ne pourrez en utiliser que 2 simultanément.

En comparaison, des offres comme CyberGhost VPN vous donne accès à 7 connexions simultanées ou NordVPN à 10 connexions simultanées.

Pour une utilisation personnelle, l’offre gratuite d’OpenVPN est donc tout à fait convenable.

Pour une utilisation familiale, il faudra peut-être s’orienter vers des solutions grand public.

Bien, maintenant que vous savez tout, commençons !

Création du serveur OpenVPN #

Il est fortement conseillé de lire l’introduction à la série, car j’y présente l’offre “Always Free” d’OCI que nous allons utiliser. Des notions comme la création d’une VM, l’allocation de ses ressources, comment y accéder, transférer des fichiers, configurer son firewall, etc, y ont été abordées.

Thumbnail Oracle Minecraft Server
→ Lire l'introduction de la série

Création de l’instance #

Pour commencer, nous allons devoir créer une instance. Ce qui est bien avec Oracle Cloud, c’est sa marketplace, voyez ça comme une boutique en ligne.

Dans la marketplace on peut trouver des images de VMs avec des instances déjà configurées.

Et ça tombe bien il existe une image pour faire son propre serveur OpenVPN, c’est ce que nous allons utiliser !

Rendez-vous sur cette page et cliquez sur “Get App” :

marketplace1

Sélectionnez l’option “Commercial Market” et connectez-vous en cliquant sur “Sign in” :

marketplace2

Comme vous le voyez cette image est totalement gratuite !

Acceptez les conditions d’utilisations d’Oracle et cliquez sur “Launch Instance” :

marketplace3

Vous arriverez sur la page de création de l’instance, tout est déjà fait pour vous !

Cette instance utilise une VM de type Standard.E2 Micro, elle dispose par défaut :

  • 1 OCPU
  • 1 Go de RAM
  • 47 Go d’espace de stockage
  • OS : Ubuntu
Si vous comptez utiliser plus d’applications sur cette VM, vous pouvez augmenter les ressources allouées.

Ici je donne simplement un nom à la VM mais je ne touche à rien d’autre :

instance1

N’oubliez pas de télécharger la clé SSH pour accéder à votre instance :

instance2

Si jamais vous voyez la mention d’un prix pour le Boot Volume, n’y faites pas attention c’est l’outil de calcul automatique d’Oracle qui ne prend pas en compte l’offre “Always Free”, vous ne serez pas débités

Vous pouvez créer l’instance :

instance3

Une fois l’instance créée et prête à être utilisée, notez bien son adresse IP :

instance4
Ici l’IP est modifiée

L’utilisateur ubuntu n’est pas autorisé à se connecter à distance sur cette VM, un autre utilisateur a été créé spécialement : openvpnas

Connectez-vous à votre instance avec cet utilisateur via la commande SSH :

ssh openvpnas@[IP_de_votre_VM] -i [cle_ssh]

Installation de OpenVPN #

Lors de votre 1ère connexion, OpenVPN vous demandera d’accepter ces conditions générales d’utilisations (EULA) :

openvpn_cli1

Tapez “yes” pour accepter :

openvpn_cli2

OpenVPN vous posera plusieurs questions pour sa configuration, vous pouvez simplement appuyer sur Entrée à chaque question afin de valider la configuration par défaut :

openvpn_cli3

Après quelques questions, OpenVPN vous demandera quel utilisateur peut accéder au panel admin, vous pouvez laisser l’utilisateur openvpnas.

Vous devrez ensuite lui assigner un mot de passe et le confirmer :

openvpn_cli4

Lorsque vous tapez un mot de passe sur une CLI Linux, celui-ci ne s’affiche pas pour des raisons de sécurité, c’est tout à fait normal. Même si rien ne s’affiche votre mot de passe est bien pris en compte par le système.

Après avoir renseigné l’utilisateur et son mot de passe, OpenVPN finira son installation et affichera des informations pour se connecter au panel admin :

openvpn_cli5

OpenVPN affichera l’url avec l’IP public de votre subnet (commençant par 10.0…) et non l’adresse IP de votre VM. Il faudra utiliser l’url avec l’IP de votre VM pour la configuration d’OpenVPN, mais pour le moment cette url n’est pas accessible car les ports ne sont pas ouverts.

Nous allons donc configurer le firewall.

Configuration du firewall #

Voici les ports à ouvrir :

firewall1
Voir documentation OpenVPN pour OCI

Sur Oracle on obtient ceci :

firewall2

Vous pouvez maintenant vous connecter au panel admin d’OpenVPN via l’url : https://[IP_de_votre_VM]/admin

connexion1

Un message vous indiquant que la connexion n’est pas privée s’affichera car le certificat généré par OpenVPN est autosigné. C’est le fonctionnement normal.

Continuer sur l’application :

connexion2

Connectez-vous avec l’utilisateur que vous avez créé précédemment :

openvpn_web1

Et acceptez les EULA (encore) :

openvpn_web2

Configuration du VPN #

Nous allons maintenant configurer le serveur OpenVPN.

Tout d’abord, OpenVPN renseigne l’adresse IP de votre subnet (celle qui commence par 10.0…) comme IP par défaut, or personne ne pourra y accéder, il faut renseigner celle de votre VM dans les paramètres réseaux :

openvpn_configuration1

Il faudra ensuite autoriser le trafic Internet à être routé par le serveur OpenVPN et à bien renseigner des DNS publics, ici ceux de CloudFlare, dans les paramètres du VPN :

openvpn_configuration2

N’oubliez pas de sauvegarder les changements

Créez un utilisateur qui sera autorisé à utiliser le serveur OpenVPN et qui pourra se connecter automatiquement :

openvpn_configuration3

Enfin mettez à jour le serveur :

openvpn_configuration4

Il faut attendre quelques secondes le temps que le serveur prenne en compte ces changements. Et voilà, votre serveur OpenVPN est prêt à être utilisé !

Utilisation de son VPN #

Vous pouvez désormais utiliser votre propre serveur VPN, pour vous connecter à celui-ci 2 solutions possibles :

  • Installer un client OpenVPN déjà configuré
  • Installer un client OpenVPN et le configurer vous-même

Installation d’un client OpenVPN déjà configuré #

Rendez-vous sur l’url https://[IP_de_votre_VM] avec votre compte utilisateur :

openvpn_install1

Vous pourrez télécharger un client OpenVPN déjà paramétré sur l’OS désiré :

openvpn_install2

Une fois téléchargé, installez le client (suivez les étapes de l’installateur) :

openvpn_install3

Et voilà ! Le client “OpenVPN Connect” est bien installé sur votre machine avec votre profil déjà paramétré :

openvpn_install4

Vous n’avez plus qu’à cliquer sur le bouton pour utiliser votre serveur VPN :

openvpn_install5

Installation d’un client OpenVPN et le configurer soi-même #

Si vous n’installez pas le client OpenVPN déjà paramétré alors il faudra le faire soi-même.

Téléchargez le client sur : https://openvpn.net/client/

Installez le client et renseignez l’url de votre serveur :

openvpn_install6

Acceptez le certificat :

openvpn_install7

Renseignez les identifiants du compte utilisateur :

openvpn_install8

Cliquez sur Import et voilà ! Vous pouvez désormais vous connecter :

openvpn_install9

Partager l’accès à son serveur VPN #

Si vous voulez partager l’accès à votre serveur VPN sans pour autant donner le mot de passe du compte utilisateur, vous pouvez partager le profil de celui-ci :

openvpn_share1

Vous obtiendrez ce type de fichier :

openvpn_share2

La personne qui voudra accéder à votre serveur VPN n’aura qu’à télécharger le client OpenVPN et à importer le profil :

openvpn_share3

Test du VPN #

Vous pouvez maintenant tester le bon fonctionnement de votre VPN avec le site WhatIsMyIPAddress.

Sans VPN, vous voyez bien l’adresse IP de mon FAI et ma localisation approximative :

openvpn_test1
Adresse IP modifiée

Avec VPN, vous voyez bien que l’adresse IP détectée par le site est celle de mon serveur OpenVPN et que le FAI ainsi que la localisation correspondent au serveur Oracle :

openvpn_test2

Le serveur OpenVPN est donc bien opérationnel !

Conclusion #

Dans cet article, je vous ai présenté comment créer votre propre serveur OpenVPN gratuit à vie en utilisant l’offre “Always Free” d’Oracle Cloud Infrastructure.

L’objectif était de vous fournir des connaissances pratiques tout en vous initiant au domaine des réseaux et de la sécurité informatique.

Après la lecture de cet article, vous savez désormais :

  • Ce qu’est un VPN
  • Comment fonctionne un VPN
  • Les différents types de VPN
  • Créer votre propre serveur VPN gratuit à vie

J’espère que vous aurez apprécié la lecture de l’article, si c’est le cas n’hésitez pas à le liker et à le partager à vos amis ou collègues qui pourraient être intéressés !

VPS Oracle - Cet article fait partie d'une série.
Partie 2: Cet article