Service VPN Wireguard gratuit sur AWS

Pour quoi?


Avec la censure croissante d'Internet par les régimes autoritaires, un nombre croissant de ressources et de sites Internet utiles sont bloqués. Y compris les informations techniques.
Ainsi, il devient impossible d'utiliser pleinement Internet et le droit fondamental à la liberté d'expression consacré par la Déclaration universelle des droits de l'homme est violé.


L'article 19
Chacun a droit Ă  la libertĂ© d'opinion et d'expression; ce droit comprend la libertĂ© d'adhĂ©rer librement Ă  ses convictions et la libertĂ© de rechercher, de recevoir et de diffuser des informations et des idĂ©es par tous les moyens et indĂ©pendamment des frontiĂšres de l'État

Dans ce guide, en 6 étapes, nous déploierons notre propre service VPN gratuit * basé sur la technologie Wireguard , dans l'infrastructure cloud d' Amazon Web Services (AWS), en utilisant un compte gratuit (pendant 12 mois), sur une instance (machine virtuelle) exécutant Ubuntu Server 18.04 LTS .


J'ai essayé de rendre cette procédure aussi conviviale que possible pour les personnes éloignées de l'informatique. La seule chose requise est la persévérance dans la répétition des étapes décrites ci-dessous.


Remarque


Les étapes


  1. Enregistrement de compte gratuit AWS
  2. Créer une instance AWS
  3. Se connecter Ă  une instance AWS
  4. Configuration de Wireguard
  5. Configuration des clients VPN
  6. Vérifier l'installation VPN

Liens utiles



1. Enregistrement de compte AWS


Pour enregistrer un compte AWS gratuit, vous avez besoin d'un vrai numéro de téléphone et d'une carte de crédit Visa ou Mastercard payable. Je recommande d'utiliser gratuitement les cartes virtuelles que le portefeuille Yandex.Money ou Qiwi fournit. Pour vérifier la validité de la carte, 1 $ est déduit lors de l'inscription, qui est ensuite restitué.


1.1. Ouverture de la AWS Management Console


Vous devez ouvrir un navigateur et aller sur: https://aws.amazon.com/en/
Cliquez sur le bouton "S'inscrire"


Page de démarrage AWS Amazon


1.2. Remplir des données personnelles


Remplissez les données et cliquez sur le bouton "Continuer"


Enregistrement de compte Amazon AWS


1.3. Remplir les coordonnées


Remplissez les coordonnées.


Coordonnées du compte Amazon AWS


1.4. Indication des informations de facturation.


Numéro de carte, date d'expiration et nom du titulaire de la carte.


Fournir des informations de facturation lors de l'enregistrement d'un compte Amazon AWS


1.5. Vérification du compte


À ce stade, le numĂ©ro de tĂ©lĂ©phone est confirmĂ© et 1 $ est directement dĂ©bitĂ© de la carte de paiement. Un code Ă  4 chiffres s'affiche sur l'Ă©cran de l'ordinateur et un appel est reçu d'Amazon sur le tĂ©lĂ©phone spĂ©cifiĂ©. Pendant l'appel, vous devez composer le code affichĂ© Ă  l'Ă©cran.


Vérification du compte Amazon AWS


1.6. Choix d'un plan tarifaire.


Choisir - Forfait de base (gratuit)


Plan de choix Amazon AWS


1.7. Connectez-vous Ă  la console de gestion


AccĂšs Ă  Amazon AWS Management Console


1.8. Choisir un emplacement de centre de données


AWS Amazon Management Console


1.8.1. Test de vitesse


Avant de choisir un centre de données, il est recommandé de tester via https://speedtest.net la vitesse d'accÚs aux centres de données les plus proches, à mon emplacement les résultats suivants:


  • Singapour
    Singapour
  • Paris
    Paris
  • Francfort
    Francfort
  • Stockholm
    Stockholm
  • Londres
    Londres

Les meilleurs résultats de vitesse sont affichés par le centre de données de Londres. Par conséquent, je l'ai sélectionné pour une personnalisation supplémentaire.


2. Création d'une instance AWS


2.1 Création d'une machine virtuelle (instance)


2.1.0 Lancement de la procédure pas à pas de création d'instance


2.1.0.1. Accéder à la page de lancement de l'instance


Accéder à la page de lancement de l'instance


2.1.0.2. Lancement de la procédure pas à pas de création d'instance


Lancement de la procédure pas à pas de création d'instance


2.1.0.3. Choix d'un type de systĂšme d'exploitation d'instance


Choix du type de systĂšme d'exploitation


2.1.1. Sélectionnez le type d'instance


Par défaut, l'instance t2.micro est sélectionnée, nous en avons besoin, cliquez simplement sur le bouton Suivant: Configurer l'instance Detalis


Sélectionnez le type d'instance


2.1.2. Configurer les paramĂštres d'instance


À l'avenir, nous allons connecter une IP publique permanente Ă  notre instance, donc Ă  ce stade, nous dĂ©sactivons l'attribution automatique d'IP publique, et cliquez sur Suivant: Ajouter un stockage


Configurer les paramĂštres d'instance


2.1.3. Connexion de stockage


Spécifiez la taille du "disque dur". 16 gigaoctets suffisent pour nos besoins, et cliquez sur le bouton Suivant: Ajouter des balises


Connexion de stockage


2.1.4. Personnalisation des balises


Si nous avons créé plusieurs instances, elles pourraient ĂȘtre regroupĂ©es par balises, pour faciliter l'administration. Dans ce cas, cette fonctionnalitĂ© est redondante, cliquez immĂ©diatement sur le bouton Suivant: Configurer Security Gorup


Personnalisation des balises


2.1.5. Ouverture du port


À ce stade, nous configurons le pare-feu en ouvrant les ports requis. L'ensemble des ports ouverts est appelĂ© le groupe de sĂ©curitĂ©. Nous devons crĂ©er un nouveau groupe de sĂ©curitĂ©, lui donner un nom, une description, ajouter un port UDP (rĂšgle UDP personnalisĂ©e), dans le champ Rort Range, vous devez attribuer un numĂ©ro de port Ă  partir de la plage de ports dynamiques 49152–65535. Dans ce cas, j'ai choisi le numĂ©ro de port 54321.


Ouverture du port


AprÚs avoir rempli les données nécessaires, cliquez sur le bouton Review and Launch


2.1.6. Présentation de tous les paramÚtres d'instance


Sur cette page, il y a un aperçu de tous les paramÚtres de notre instance, vérifiez si tous les paramÚtres sont en ordre et cliquez sur le bouton Lancer


Présentation de tous les paramÚtres d'instance


2.1.7. Créer des mots de passe


Vient ensuite une boßte de dialogue proposant de créer ou d'ajouter une clé SSH existante, avec laquelle nous nous connecterons plus tard à distance à notre instance. Nous sélectionnons l'option "Créer une nouvelle paire de clés" pour créer une nouvelle clé. Définissez son nom et cliquez sur le bouton Télécharger la paire de clés pour télécharger les clés créées. Enregistrez-les en lieu sûr sur le disque de l'ordinateur local. Une fois téléchargé - cliquez sur le bouton Lancer les instances


Créer des mots de passe


2.1.7.1. Enregistrement des mots de passe


Voici l'étape d'enregistrement des clés créées de l'étape précédente. AprÚs avoir cliqué sur le bouton Télécharger la paire de clés , la clé est enregistrée en tant que fichier de certificat avec l'extension * .pem. Dans ce cas, je lui ai donné le nom wireguard-awskey.pem


Enregistrement des mots de passe


2.1.8. Présentation des résultats de la création d'instances


Ensuite, nous voyons un message sur le lancement réussi de l'instance que nous venons de créer. Nous pouvons accéder à la liste de nos instances en cliquant sur le bouton Afficher les instances


Présentation des résultats de la création d'instances


2.2. Création d'une adresse IP externe


2.2.1. Commencez à créer une adresse IP externe


Ensuite, nous devons créer une adresse IP externe permanente par laquelle nous nous connecterons à notre serveur VPN. Pour ce faire, dans le panneau de navigation sur le cÎté gauche de l'écran, sélectionnez l'élément Elastic IPs dans la catégorie NETWORK & SECTURITY et cliquez sur le bouton Allouer une nouvelle adresse


Commencez à créer une adresse IP externe


2.2.2. Configurer la création IP externe


Dans l'étape suivante, nous avons besoin que l'option du pool Amazon soit activée (activée par défaut), et cliquez sur le bouton Allouer


Configurer la création IP externe


2.2.3. Vue d'ensemble des résultats de la création d'une adresse IP externe


L'écran suivant affichera l'adresse IP externe que nous avons reçue. Il est recommandé de s'en souvenir et il vaut encore mieux de l'écrire. il vous sera utile encore et encore lors du processus de configuration et d'utilisation du serveur VPN. Dans ce guide, j'utilise l'adresse IP 4.3.2.1 comme exemple. Comment écrire l'adresse, cliquez sur le bouton Fermer


Vue d'ensemble des résultats de la création d'une adresse IP externe


2.2.4. Liste des adresses IP externes


Ensuite, nous ouvrons une liste de nos adresses IP publiques permanentes (IP élastiques).


Liste des adresses IP externes


2.2.5. Attribution d'une instance IP externe


Dans cette liste, nous sélectionnons l'adresse IP que nous avons reçue et appuyez sur le bouton droit de la souris pour faire apparaßtre un menu déroulant. Dans celui-ci, sélectionnez l'élément d' adresse Associate pour l'affecter à l'instance précédemment créée.


Attribution d'une instance IP externe


2.2.6. Configurer l'attribution IP externe


À l'Ă©tape suivante, sĂ©lectionnez notre instance dans la liste dĂ©roulante, puis cliquez sur le bouton Associer


Configurer l'attribution IP externe


2.2.7. Présentation des résultats de l'attribution IP externe


AprÚs cela, nous pouvons voir notre instance et son adresse IP privée liées à notre adresse IP publique permanente.


Présentation des résultats de l'attribution IP externe


Nous pouvons maintenant nous connecter à notre instance nouvellement créée de l'extérieur, depuis notre ordinateur via SSH.


3. Connectez-vous Ă  une instance AWS


SSH est un protocole sécurisé pour contrÎler à distance les périphériques informatiques.


3.1. Connexion SSH depuis un ordinateur Windows


Pour vous connecter à un ordinateur Windows, vous devez d'abord télécharger et installer le programme Putty .


3.1.1. Importer une clé privée pour Putty


3.1.1.1. AprÚs avoir installé Putty, vous devez exécuter l'utilitaire PuTTYgen qui l'accompagne pour importer la clé de certificat au format PEM dans un format adapté à une utilisation dans Putty. Pour ce faire, sélectionnez Conversions-> Importer la clé dans le menu supérieur


Importer une clé privée pour Putty


3.1.1.2. Sélectionnez la clé AWS au format PEM


Ensuite, sélectionnez la clé que nous avons précédemment enregistrée à l'étape 2.1.7.1, dans notre cas, son nom est wireguard-awskey.pem


Sélectionnez la clé AWS au format PEM


3.1.1.3. Définition des options d'importation clés


À cette Ă©tape, nous devons spĂ©cifier un commentaire pour cette clĂ© (description) et dĂ©finir un mot de passe et sa confirmation pour la sĂ©curitĂ©. Il vous sera demandĂ© Ă  chaque connexion. Ainsi, nous protĂ©geons la clĂ© avec un mot de passe contre une utilisation inappropriĂ©e. Vous ne pouvez pas dĂ©finir un mot de passe, mais il est moins sĂ»r si la clĂ© tombe entre de mauvaises mains. AprĂšs avoir cliquĂ© sur le bouton Enregistrer la clĂ© privĂ©e


Définition des options d'importation clés


3.1.1.4. Enregistrement d'une clé importée


La boßte de dialogue d'enregistrement de fichier s'ouvre et nous enregistrons notre clé privée sous forme de fichier avec l'extension .ppk , utilisable dans Putty .
Spécifiez le nom de la clé (dans notre cas wireguard-awskey.ppk ) et cliquez sur le bouton Enregistrer .


Enregistrement d'une clé importée


3.1.2. Créer et configurer une connexion dans Putty


3.1.2.1. Créer une connexion


Ouvrez le programme Putty, sélectionnez la catégorie Session (elle est ouverte par défaut) et entrez l'adresse IP publique de notre serveur dans le champ Host Name , que nous avons reçu à l'étape 2.2.3. Dans le champ Session enregistrée , entrez un nom arbitraire pour notre connexion (dans mon cas wireguard-aws-london ), puis cliquez sur le bouton Enregistrer pour enregistrer les modifications que nous avons apportées.


Créer une connexion


3.1.2.2. ParamĂštre d'ouverture de session utilisateur


Plus loin dans la catégorie Connexion , sélectionnez la sous-catégorie Données et dans le champ Nom d'utilisateur de connexion automatique, entrez le nom d'utilisateur ubuntu - il s'agit de l'utilisateur d'instance AWS standard avec Ubuntu.


ParamĂštre d'ouverture de session utilisateur


3.1.2.3. Choix d'une clé privée pour la connexion SSH


Ensuite, nous allons dans la sous-catégorie Connexion / SSH / Auth et à cÎté du fichier de clé privée pour le champ d' authentification , cliquez sur le bouton Parcourir ... pour sélectionner un fichier avec un certificat de clé.


Choix d'une clé privée pour la connexion SSH


3.1.2.4. Ouverture d'une clé importée


Nous indiquons la clé que nous avons importée précédemment à l'étape 3.1.1.4, dans notre cas, c'est le fichier wireguard-awskey.ppk , et cliquez sur le bouton Ouvrir .


Ouverture d'une clé importée


3.1.2.5. Enregistrement des paramÚtres et démarrage de la connexion


De retour à la page Catégorie de session , cliquez à nouveau sur le bouton Enregistrer pour enregistrer les modifications que nous avons apportées précédemment dans les étapes précédentes (3.1.2.2 - 3.1.2.4). Et puis nous appuyons sur le bouton Ouvrir pour ouvrir la connexion SSH distante que nous avons créée et configurée.


Enregistrement des paramÚtres et démarrage de la connexion


3.1.2.7. Configuration de la confiance entre les hĂŽtes


À l'Ă©tape suivante, la premiĂšre fois que vous essayez de vous connecter, nous recevons un avertissement, nous n'avons pas configurĂ© la confiance entre les deux ordinateurs et nous demandons s'il faut faire confiance Ă  l'ordinateur distant. Nous cliquons sur Oui , l'ajoutant ainsi Ă  la liste des hĂŽtes de confiance.


Configuration de la confiance entre les hĂŽtes


3.1.2.8. Entrez le mot de passe pour accéder à la clé


AprĂšs cela, la fenĂȘtre du terminal s'ouvre, oĂč le mot de passe pour la clĂ© est demandĂ©, si vous l'avez installĂ© plus tĂŽt Ă  l'Ă©tape 3.1.1.3. Lors de la saisie du mot de passe, aucune action Ă  l'Ă©cran ne se produit. Si vous faites une erreur, vous pouvez utiliser la touche Retour arriĂšre .


Entrez le mot de passe pour accéder à la clé


3.1.2.9. Message de bienvenue sur une connexion réussie


AprĂšs avoir correctement saisi le mot de passe, un texte de bienvenue s'affiche dans le terminal qui nous informe que le systĂšme distant est prĂȘt Ă  exĂ©cuter nos commandes.


Message de bienvenue sur une connexion réussie


4. Configuration du serveur Wireguard


Les instructions les plus récentes pour installer et utiliser Wireguard à l'aide des scripts décrits ci-dessous se trouvent dans le référentiel: https://github.com/isystem-io/wireguard-aws


4.1. Installer Wireguard


Dans le terminal, entrez les commandes suivantes (vous pouvez copier dans le presse-papiers et coller dans le terminal en cliquant avec le bouton droit):


4.1.1. Clonage du référentiel


Nous clonons un référentiel avec des scripts d'installation Wireguard


 git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws 

4.1.2. Accéder au répertoire de script


Accédez au répertoire avec le référentiel cloné


 cd wireguard_aws 

4.1.3 Exécution du script d'initialisation


Exécutez le script d'installation de Wireguard en tant qu'administrateur (utilisateur root)


 sudo ./initial.sh 

Pendant l'installation, vous serez invité à fournir certaines données nécessaires pour configurer Wireguard


4.1.3.1. Entrez le point de connexion


Saisissez l'adresse IP externe et ouvrez le port du serveur Wireguard. Nous avons obtenu l'adresse IP externe du serveur à l'étape 2.2.3 et ouvert le port à l'étape 2.1.5. Nous les 4.3.2.1:54321 ensemble, 4.3.2.1:54321 deux points, par exemple 4.3.2.1:54321 , et aprÚs cela, appuyez sur Entrée
Exemple de sortie:


 Enter the endpoint (external ip and port) in format [ipv4:port] (eg 4.3.2.1:54321): 4.3.2.1:54321 

4.1.3.2. Entrez une adresse IP interne


Entrez l'adresse IP du serveur Wireguard dans un sous-réseau VPN sécurisé, si vous ne savez pas ce que c'est, appuyez simplement sur Entrée pour définir la valeur par défaut ( 10.50.0.1 )
Exemple de sortie:


 Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1): 

4.1.3.3. Spécification d'un serveur DNS


Saisissez l'adresse IP du serveur DNS, ou appuyez simplement sur Entrée pour définir la valeur par défaut sur 1.1.1.1 (DNS public Cloudflare)
Exemple de sortie:


 Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1): 

4.1.3.4. Spécification de l'interface WAN


Ensuite, entrez le nom de l'interface réseau externe qui écoutera sur l'interface réseau interne du VPN. Appuyez simplement sur Entrée pour définir la valeur par défaut pour AWS ( eth0 )
Exemple de sortie:


 Enter the name of the WAN network interface ([ENTER] set to default: eth0): 

4.1.3.5. Nom du client


Saisissez le nom de l'utilisateur VPN. Le fait est que le serveur Wireguard VPN ne pourra pas démarrer tant qu'au moins un client n'aura pas été ajouté. Dans ce cas, j'ai entré le nom Alex@mobile
Exemple de sortie:


 Enter VPN user name: Alex@mobile 

AprĂšs cela, un code QR devrait ĂȘtre affichĂ© Ă  l'Ă©cran avec la configuration du client nouvellement ajoutĂ©, qui doit ĂȘtre lu Ă  l'aide du client mobile Wireguard sur Android ou iOS pour le configurer. De plus, le texte du fichier de configuration sera affichĂ© sous le code QR en cas de configuration manuelle des clients. La procĂ©dure Ă  suivre sera dĂ©crite ci-dessous.


Installation complĂšte du protĂšge-fil


4.2. Ajout d'un nouvel utilisateur VPN


Pour ajouter un nouvel utilisateur, vous devez exécuter le script add-client.sh dans le terminal


 sudo ./add-client.sh 

Le script demande le nom d'utilisateur:
Exemple de sortie:


 Enter VPN user name: 

De plus, le nom peut ĂȘtre transmis aux utilisateurs en tant que paramĂštre de script (dans ce cas, Alex@mobile ):


 sudo ./add-client.sh Alex@mobile 

À la suite de l'exĂ©cution du script, dans le rĂ©pertoire avec le nom du client sur le chemin /etc/wireguard/clients/{} , un fichier sera créé avec la configuration client /etc/wireguard/clients/{} CustomerNameâ–ș.conf, et sera affichĂ© sur l'Ă©cran du terminal Code QR pour la configuration des clients mobiles et le contenu du fichier de configuration.


4.2.1. Fichier de configuration utilisateur


Vous pouvez afficher le contenu du fichier .conf à l'écran, pour la configuration manuelle du client, à l'aide de la cat


 sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf 

résultat d'exécution:


 [Interface] PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM= Address = 10.50.0.2/32 DNS = 1.1.1.1 [Peer] PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk= PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc= AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = 4.3.2.1:54321 

Description du fichier de configuration client:


 [Interface] PrivateKey =    Address = IP   DNS =    [Peer] PublicKey =    PresharedKey =      AllowedIPs =     ( - 0.0.0.0/0, ::/0) Endpoint = IP      

4.2.2. Code de configuration du client QR


Vous pouvez afficher le code QR du code de configuration du client créé précédemment sur l'écran du terminal à l'aide de la qrencode -t ansiutf8 (dans cet exemple, le client nommé Alex @ mobile est utilisé):


 sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8 

5. Configuration des clients VPN


5.1. Configuration du client mobile Android


Le client Wireguard officiel pour Android peut ĂȘtre installĂ© Ă  partir de la boutique GooglePlay officielle


AprĂšs cela, vous devez importer la configuration en lisant le code QR avec la configuration client (voir paragraphe 4.2.2) et en lui donnant un nom:


Configuration du client Wireguard Android


AprĂšs avoir correctement importĂ© la configuration, vous pouvez activer le tunnel VPN. À propos de la connexion rĂ©ussie dira la cachette de la clĂ© dans le panneau systĂšme Android


Exécution d'Android Wireguard Client


5.2. Configuration du client Windows


Au départ, vous devez télécharger et installer TunSafe pour Windows - il s'agit d'un client Wireguard pour Windows.


5.2.1. Création d'un fichier de configuration pour l'importation


Cliquez avec le bouton droit pour créer un fichier texte sur le bureau.


Créer un fichier texte


5.2.2. Copie du contenu du fichier de configuration depuis le serveur


Ensuite, nous revenons au terminal Putty et affichons le contenu du fichier de configuration de l'utilisateur souhaité, comme décrit à l'étape 4.2.1.
Ensuite, sélectionnez le texte de configuration dans le terminal Putty avec le bouton droit de la souris; une fois la sélection terminée, il sera automatiquement copié dans le presse-papiers.


Copier du texte avec la configuration


5.2.3. Copier la configuration dans le fichier de configuration local


Ce champ revient au fichier texte que nous avons créé précédemment sur le bureau et collez-y le texte de configuration depuis le presse-papiers.


Copier du texte avec la configuration


5.2.4. Enregistrement d'un fichier de configuration local


Nous enregistrons le fichier avec l'extension .conf (dans ce cas, avec le nom london.conf )


Enregistrement du fichier de configuration


5.2.5. Importer un fichier de configuration local


Ensuite, vous devez importer le fichier de configuration dans le programme TunSafe.


Importez le fichier de configuration dans TunSafe


5.2.6. Établir une connexion VPN


Sélectionnez ce fichier de configuration et connectez-vous en cliquant sur le bouton Connecter .
Connectez-vous Ă  un serveur VPN via TunSafe


6. Vérification du succÚs de la connexion


Pour vérifier le succÚs de la connexion via le tunnel VPN, vous devez ouvrir un navigateur et aller sur le site https://2ip.ua/ru/


Connectez-vous Ă  un serveur VPN via TunSafe


L'adresse IP affichée doit correspondre à celle que nous avons reçue à l'étape 2.2.3.
Si c'est le cas, le tunnel VPN fonctionne correctement.


Depuis un terminal sous Linux, vous pouvez vérifier votre adresse IP en entrant la commande:


 curl http://zx2c4.com/ip 

Ou vous pouvez simplement aller au hub porno si vous ĂȘtes au Kazakhstan.

Source: https://habr.com/ru/post/fr448528/


All Articles