Service VPN Wireguard gratuit sur AWS

Service VPN Wireguard gratuit sur AWS


Le raisonnement


L'augmentation de la censure d'Internet par les régimes autoritaires élargit le blocage des ressources Internet utiles rendant impossible l'utilisation du WEB et, en substance, viole le droit fondamental à la liberté d'opinion et d'expression consacré par la Déclaration universelle des droits de l'homme .


Article 19
Chacun a droit à la liberté d'opinion et d'expression; ce droit comprend la liberté d'opinion sans ingérence et de rechercher, recevoir et transmettre des informations et des idées par le biais de tous les médias et indépendamment des frontières.

Voici les instructions détaillées en 6 étapes pour les non-informaticiens de déployer un service VPN gratuit * sur la technologie Wireguard dans l' infrastructure cloud d'Amazon Web Services (AWS) , en utilisant un compte gratuit de 12 mois, sur une instance (machine virtuelle) exécutée par Ubuntu Server 04/18 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 l'assiduité dans la répétition des étapes décrites ci-dessous.


Remarque


Les étapes


  1. Enregistrez le compte AWS.
  2. Créez une instance AWS.
  3. Connectez-vous Ă  l'instance AWS.
  4. Configurez le serveur Wireguard.
  5. Configurez les clients VPN.
  6. Vérifiez la connexion VPN.



Les auteurs



1. Enregistrez le compte gratuit AWS


Pour enregistrer un compte AWS, vous devez fournir un numéro de téléphone valide et une carte bancaire (Visa ou Mastercard). Je recommande d'utiliser des cartes virtuelles fournies gratuitement par Yandex.Money ou Qiwi wallet.
AWS vérifie la validité de la carte en déduisant 1 $ à l'inscription suivi du remboursement.


1.1. Ouverture de la AWS Management Console


Suivez le lien: https://aws.amazon.com/ , cliquez sur le bouton Créer un compte AWS .


Page de démarrage d'Amazon AWS


1.2. Création de compte AWS


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


Création de compte AWS


1.3. Coordonnées du compte AWS


Coordonnées du compte AWS


1.4. Spécifiez les informations de facturation


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


Spécifiez les informations de facturation


1.5. Vérification du compte


AWS vérifie votre numéro de téléphone et débite 1 $ de votre carte bancaire. Ensuite, vous devriez obtenir un code à 4 chiffres sur l'écran de l'ordinateur et recevoir un appel d'Amazon. Pendant un appel, vous devez composer le code à 4 chiffres affiché à l'écran.


Vérification du compte


1.6. Choisir un plan de support AWS


Choisissez un plan de base (gratuit).


Choisir un plan de support AWS


Connectez-vous Ă  AWS Management Console


Connectez-vous Ă  AWS Management Console


1.8. Choix de l'emplacement du centre de données


Choix de l'emplacement du centre de données


1.8.1. Test de vitesse Internet


Je vous ai recommandé d'exécuter un test de vitesse vers les centres de données les plus proches sur https://speedtest.net/ et de choisir le meilleur auquel vous connecter.


Voici les résultats du test de vitesse de mon emplacement:


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

Le Datacenter à Londres affiche le meilleur résultat de vitesse, donc je le choisis pour continuer.


2. Créez une instance AWS


2.1 Créer une machine virtuelle (instance)


2.1.0 Suivez les étapes de création d'instance


2.1.0.1. Accédez à la page de lancement d'instance, choisissez le service EC-2


Accédez à la page de lancement d'instance, choisissez le service EC-2


2.1.0.2. Lancez un serveur virtuel, appelé instance Amazon EC-2


Lancez un serveur virtuel, appelé instance Amazon EC-2


2.1.0.3. Choisissez l'image de la machine Amazon (système d'exploitation) - le serveur Ubuntu 18.04 LTS


Choisissez l'image de la machine Amazon (système d'exploitation)


2.1.1. Choisissez le type d'instance


Le type d'instance t2.micro est défini par défaut et est le bon t2.micro . Cliquez sur le bouton Suivant: Configurer les détails de l'instance pour continuer.


Choisissez le type d'instance


2.1.2. Configurer les détails de l'instance


Désactivez l'attribution automatique de l'adresse IP publique car vous en assignerez une statique à votre instance. Cliquez sur le bouton Suivant: Ajouter un stockage .


Configurer les détails de l'instance


2.1.3. Ajouter du stockage


Spécifiez la taille du lecteur - les 16 Go suffisent.
Cliquez sur le bouton Suivant: Ajouter des balises .


Ajouter du stockage


2.1.4. Ajouter des balises


Si vous disposez de plusieurs instances, vous pouvez les regrouper par balises pour permettre une meilleure administration. Pourtant, cette fonctionnalité est excédentaire. Nous ignorons donc cela en appuyant sur le bouton Suivant: Configurer le groupe de sécurité .


Ajouter des balises


2.1.5. Ouverture des ports


Configurez le pare-feu en attribuant des ports ouverts. L'ensemble des ports ouverts est appelé «groupe de sécurité». Vous devez créer un nouveau "groupe de sécurité", lui donner un nom, une description et un port UDP (règle UDP personnalisée).
Dans le champ Port Range, spécifiez un numéro de port compris entre 49152 et 65535 des ports dynamiques . Dans mon cas, j'ai choisi le numéro de port 54321.
Cliquez sur le bouton Vérifier et lancer pour terminer cette étape.


Ouverture des ports


2.1.6. Vérifier les paramètres de lancement d'instance


Vérifiez et vérifiez tous les paramètres de lancement d'instance, et si tout est OK, cliquez sur le bouton Lancer .


Vérifier les paramètres de lancement d'instance


2.1.7. Création de clés d'accès


Créez ou ajoutez une clé SSH existante dans la boîte de dialogue que vous utiliserez pour la connexion à distance à votre instance.
Choisissez la "Créer une nouvelle paire de clés" pour générer une nouvelle clé. Donnez-lui un nom et cliquez sur le bouton Télécharger la paire de clés pour télécharger la clé générée sur le lecteur PC. Cliquez sur le bouton Lancer les instances .


Création de clés d'accès


2.1.7.1. Enregistrer les clés privées (.pem)


Lorsque vous cliquez sur Télécharger la paire de clés, vous enregistrez la clé en tant que fichier .pem.
Pour une meilleure gestion, j'ai attribué un nom wireguard-awskey.pem au fichier.


Enregistrer les clés privées


2.1.8. Résumé du lancement de l'instance


Ensuite, vous devriez voir un message sur le lancement réussi de l'instance que vous avez créée. Vous pouvez consulter la liste de vos instances en cliquant sur le bouton Afficher les instances .


Résumé du lancement de l'instance


2.2. Création d'une adresse IP externe


2.2.1. Créer une IP externe


Vient ensuite la création d'une adresse IP externe, que vous utiliserez pour vous connecter au serveur VPN.
Recherchez les IP élastiques dans la catégorie RÉSEAU ET SÉCURITÉ du panneau de navigation. Cliquez sur le bouton Attribuer une nouvelle adresse .


Créer une IP externe


2.2.2. Configuration IP externe


À l'étape suivante, vous devez activer le pool Amazon (qui est par défaut) et cliquez sur le bouton Allouer


Configuration IP externe


2.2.3. Présentation de l'adresse IP


La fenêtre suivante affiche une adresse IP externe attribuée par le pool Amazon. Notez-le, car vous en aurez besoin pour le processus de configuration et pour la configuration du serveur VPN. Dans ce guide, à titre d'exemple, j'utilise l'adresse IP 4.3.2.1 .
Une fois cette étape terminée, cliquez sur le bouton Fermer .


Présentation de l'adresse IP


2.2.4. Liste des adresses IP externes


Ensuite, vous devriez obtenir une liste de vos adresses IP publiques (Elastics IP).


Liste des adresses IP externes


2.2.5. Attribuer une IP externe Ă  l'instance


Choisissez l'adresse IP dans la liste (voir 2.2.3), et cliquez sur le bouton droit de la souris pour un menu déroulant.
Dans ce menu, choisissez l' adresse associée pour attribuer une IP à l'instance créée.


Attribuer une IP externe Ă  l'instance


2.2.6. Adresse associée à l'instance


Dans le menu déroulant, sélectionnez l'instance créée et cliquez sur le bouton Associer .


Adresse associée à l'instance


2.2.7. Résumé de l'attribution IP externe


Vous devez maintenant avoir une instance créée avec une adresse IP publique attribuée. Cela vous permet d'établir une connexion à distance à l'instance depuis l'extérieur (depuis votre PC) via SSH.


Résumé de l'attribution IP externe


3. Connectez-vous Ă  l'instance AWS


SSH est un protocole sécurisé pour gérer les périphériques informatiques distants.


3.1. Connectez-vous Ă  partir d'un PC Windows via SSH


Téléchargez et installez un mastic pour établir une connexion à partir du PC Windows.


3.1.1. Importer une clé privée pour Putty


3.1.1.1. Importer la clé AWS dans Putty


Lancez un utilitaire PuTTYgen pour faire correspondre votre clé AWS au format .pem avec un format .ppk adapté au Putty.
Pour ce faire, sélectionnez Conversions -> Importer la clé dans le menu supérieur.


Importer la clé AWS dans Putty


3.1.1.2. Clé AWS au format PEM


Ensuite, choisissez la clé que vous avez traitée dans 2.1.7.1
Dans mon cas, c'est wireguard-awskey.pem .


Clé AWS au format PEM


3.1.1.3. Définissez les paramètres d'importation des clés


À cette étape, vous devez spécifier les paramètres d'importation de la clé - le commentaire de clé et la phrase secrète de clé . Vous en aurez besoin à chaque connexion. Il protège également la clé elle-même avec un mot de passe contre tout accès non autorisé.
Vous pouvez ignorer l'attribution du mot de passe. Mais cela rendra votre connexion moins sécurisée au cas où la clé tomberait entre de mauvaises mains.
Une fois que vous avez terminé, cliquez sur le bouton Enregistrer la clé privée .


Définissez les paramètres d'importation des clés


3.1.1.4. Enregistrez la clé .ppk importée


Vous pouvez enregistrer votre clé privée au format .ppk adapté à Putty dans la boîte de dialogue d'enregistrement de fichier.
Spécifiez le nom de la clé (dans mon cas, wireguard-awskey.ppk ) et cliquez sur le bouton Enregistrer .


Enregistrez la clé .ppk importée


3.1.2. Créer et configurer une connexion dans Putty


3.1.2.1. Établissez une connexion


Exécutez le programme Putty, choisissez la catégorie Session (elle est ouverte par défaut) et dans le champ Host Name entrez l'adresse IP publique du serveur. Je rappelle que vous avez obtenu votre adresse IP publique à l'étape 2.2.3 .
Donnez n'importe quel nom à la connexion dans le champ Session enregistrée (pour moi, c'est wireguard-aws-london ). Cliquez sur le bouton Enregistrer .


Établissez une connexion


3.1.2.2. Définir une connexion automatique utilisateur


Choisissez la sous-catégorie Données dans la catégorie Connexion . Saisissez le nom d'utilisateur de connexion automatique ubuntu dans le champ Nom d'utilisateur de connexion automatique . ( ubuntu est l'utilisateur d'instance standard sur AWS avec Ubuntu).


Définir une connexion automatique utilisateur


3.1.2.3. Utiliser une clé privée pour une connexion SSH


Suivez le chemin Connexion -> SSH -> Sous- catégorie Auth et cliquez sur le bouton Parcourir pour choisir le fichier de clé privée.


Utiliser une clé privée pour une connexion SSH


3.1.2.4. Ouvrez le fichier de clé privée


Spécifiez la clé que vous avez importée précédemment à l'étape 3.1.1.4 - wireguard-awskey.ppk , puis cliquez sur le bouton Ouvrir .


Ouvrez le fichier de clé privée


3.1.2.5. Enregistrer les modifications et lancer une connexion Ă  distance SSH


Dans la catégorie Session de la fenêtre de configuration Putty, appuyez sur le bouton Enregistrer pour appliquer toutes les modifications que vous avez apportées dans ( 3.1.2.2 - 3.1.2.4 ).
Cliquez sur le bouton Ouvrir pour lancer la connexion Ă  distance SSH prĂŞte Ă  l'emploi.


Enregistrer les modifications et lancer une connexion Ă  distance SSH


3.1.2.7. Définir une confiance entre les hôtes


Lors de la première connexion, vous devriez recevoir un avertissement concernant le manque de confiance entre deux ordinateurs (hôtes). Le système vous demande si vous faites confiance à l'hôte distant. Cliquez sur Oui pour ajouter l'hôte distant à la liste de confiance.


Définir une confiance entre les hôtes


3.1.2.8. Entrez le mot de passe pour activer la clé


Dans une fenêtre de terminal Putty, entrez le mot de passe clé que vous avez défini à l'étape
3.1.1.3 . Lors de la saisie du mot de passe, il ne montre aucune action à l'écran. Pas de soucis, si vous faites une erreur, vous pouvez utiliser la touche de retour arrière.


Entrez le mot de passe pour activer la clé


3.1.2.9. Connexion réussie


Une fois que vous avez entré le mot de passe correct, vous devriez recevoir un texte de bienvenue. Il vous informe que le système distant est prêt à exécuter vos commandes.


Connexion réussie


4. Configurer le serveur Wireguard


Vous trouverez ci-dessous les instructions pour une installation et une gestion Wireguard pilotée par script.
Je garde la dernière version de l'instruction dans le référentiel: https://github.com/isystem-io/wireguard-aws


4.1. Installer le protège-fil


Entrez les commandes suivantes dans le terminal Putty.
Vous pouvez les copier dans le presse-papiers et les coller dans le terminal en appuyant sur le bouton droit de la souris.


4.1.1. Clonez le référentiel de scripts


Clonez un référentiel de scripts d'installation Wireguard:


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

4.1.2. Répertoire du référentiel de scripts


Accédez au répertoire du référentiel cloné:


 cd wireguard_aws 

4.1.3 Script d'initialisation


Exécutez le script d'installation Wireguard sous les droits d'administrateur (utilisateur root):


 sudo ./initial.sh 

Le script vous demande de fournir les données suivantes pour configurer Wireguard.


4.1.3.1. Définir le point de terminaison de la connexion (IP: port)


Saisissez l'adresse IP externe (voir 2.2.3 ) et le port ouvert (voir 2.1.5 ) du serveur Wireguard. Utilisez le format IP suivant: port , par exemple, 4.3.2.1:54321 . Appuyez sur la touche Entrée pour confirmer.


 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. Définir l'adresse IP interne


Saisissez l'adresse IP du serveur Wireguard dans un sous-réseau VPN sécurisé. Si vous ne savez pas de quoi il s'agit, appuyez sur la touche Entrée pour définir la valeur par défaut ( 10.50.0.1 ).


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

4.1.3.3. Spécifiez le serveur DNS


Saisissez l'adresse IP du serveur DNS ou appuyez sur la touche Entrée pour définir la valeur par défaut 1.1.1.1 (DNS public Cloudflare).


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

4.1.3.4. Spécifiez l'interface WAN


Saisissez le nom de l'interface réseau externe. Cette interface détectera l'interface réseau interne du VPN.
Appuyez sur Entrée pour définir la valeur par défaut pour AWS ( eth0 )


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

4.1.3.5. Indiquez le nom du client


Le serveur VPN Wireguard ne peut pas démarrer tant que vous n'ajoutez pas au moins un client. Saisissez un nom d'utilisateur VPN.
Dans mon cas, j'ai entré le nom Alex @ mobil.


 Enter VPN user name: Alex@mobile 

Après cela, vous devriez recevoir un code QR d'une configuration client ajoutée. Ce QR applique la configuration utilisateur au client mobile Wireguard sur Android ou iOS.
Le texte du fichier de configuration est également affiché avec QR. Vous aurez besoin en cas de configuration manuelle des clients comme discuté ci-dessous.


Fin de l'installation de Wireguard


4.2. Ajouter 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:


 Enter VPN user name: 

Le nom d'utilisateur peut être utilisé comme paramètre de script (dans mon cas, le nom d'utilisateur est Alex @ mobile):


 sudo ./add-client.sh Alex@mobile 

L'exécution du script conduit à la création du fichier de configuration client dans le répertoire client.
Fichier de configuration client: /etc/wireguard/clients/{ClientName}/{ClientName}.conf
Annuaire client:
/etc/wireguard/clients/{ClientName}


4.2.1. Fichier de configuration utilisateur


Exécutez la commande cat pour obtenir le contenu du fichier .conf pour la configuration manuelle du client.


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

le résultat de l'exécution de la commande comme suit:


 [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 = Client's private key Address = Client IP Address DNS = DNS used by the client [Peer] PublicKey = Public key server PresharedKey = Shared server and client key AllowedIPs = Allowed addresses for connection (all - 0.0.0.0/0, :: / 0) Endpoint = IP address and port for connection 

4.2.2. Configuration client avec QR code


Exécutez la commande qrencode -t ansiutf8 pour obtenir le QR d'une configuration client créée. (dans mon cas, le nouveau nom du client est Alex @ mobile).


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

5. Configurer les clients VPN


5.1. Configuration du client mobile Android


Téléchargez le client mobile Wireguard pour Android à partir de la boutique GooglePlay officielle .


Scannez le code QR pour importer la configuration client (voir 4.2.2 ) et attribuez-lui un nom.


Configuration du client mobile Android


Après avoir importé la configuration, vous pouvez activer le tunnel VPN. Un petit symbole clé dans le système Android confirme la connexion VPN.


Connexion Wireguard établie avec succès sur Android


5.2. Configuration du client Windows


Téléchargez et installez TunSafe , qui est un client Wireguard pour Windows.


5.2.1. Créer un fichier texte local pour importer la configuration


Créez un fichier texte factice sur le bureau de votre PC.


Création d'un fichier texte


5.2.2. Copiez le fichier de configuration depuis le serveur


Copiez le contenu du fichier de configuration depuis le serveur.
Revenez ensuite au terminal Putty et affichez le contenu du fichier de configuration utilisateur (voir 4.2.1 ).
Utilisez le clic droit de la souris pour copier le texte de configuration dans le terminal Putty.


Copie de texte avec configuration


5.2.3. Collez le texte de configuration dans un fichier texte local


Collez le texte de configuration du presse-papiers dans un fichier texte factice que nous avons créé précédemment sur le bureau (voir 5.2.1 ).


Coller du texte avec la configuration


5.2.4. Enregistrez le fichier de configuration local


Enregistrez le fichier texte au format .conf (dans mon cas comme london.conf )


Enregistrez le fichier de configuration local


5.2.5. Importer un fichier de configuration local


Importez le fichier de configuration dans le programme TunSafe.


Importez le fichier de configuration local dans TunSafe


5.2.6. Établir une connexion VPN


Dans le programme TunSafe, sélectionnez le fichier de configuration importé et cliquez sur le bouton Connecter .


Établir une connexion VPN


6. Vérifiez la connexion VPN


Utilisez la ressource https://2ip.ua/en/ pour vérifier la connexion du tunnel VPN. Si l'adresse IP affichée correspond à celle que nous avons obtenue en 2.2.3 , le tunnel VPN est donc opérationnel.


Connexion Ă  un serveur VPN via TunSafe


Dans un terminal Linux, vous pouvez vérifier votre adresse IP en exécutant la commande suivante:


 curl http://zx2c4.com/ip 

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


All Articles