Pourquoi ?
Avec l'augmentation de la censure d'internet par les régimes autoritaires, un nombre croissant de ressources et de sites internet utiles sont bloqués. Cela inclut des informations techniques.
Ainsi, il devient impossible de profiter pleinement d'internet et le droit fondamental à la liberté d'expression, garanti par .
Article 19
Tout individu a droit à la liberté de pensée et à la liberté de les exprimer ; ce droit inclut la liberté de suivre ses convictions sans entrave et la liberté de rechercher, de recevoir et de diffuser des informations et des idées par tous les moyens et sans tenir compte des frontières.
Dans ce guide, nous allons déployer notre propre service gratuit* basé sur la technologie , dans l'infrastructure cloud (AWS), en utilisant un compte gratuit (pendant 12 mois), sur une instance (machine virtuelle) fonctionnant sous .
J'ai essayé de rendre ce guide aussi convivial que possible pour ceux qui ne sont pas familiers avec l'informatique. La seule chose requise est la patience pour répéter les étapes décrites ci-dessous.
Remarque
- AWS offre valable pendant 12 mois, avec une limite de 15 Go de trafic par mois.
- La version la plus à jour de ce guide se trouve à l'adresse
Étapes
- Inscription d'un compte AWS gratuit
- Création d'une instance AWS
- Connexion à l'instance AWS
- Configuration de Wireguard
- Configuration des clients VPN
- Vérification de l'installation du VPN
Liens utiles
1. Inscription d'un compte AWS
Pour s'inscrire pour un compte AWS gratuit, un numéro de téléphone valide et une carte de crédit Visa ou Mastercard fonctionnelle sont requis. Je recommande d'utiliser des cartes virtuelles qui sont fournies gratuitement par ou . Pour vérifier la validité de la carte, un montant de 1 $ est débité lors de l'inscription, montant qui est par la suite remboursé.
1.1. Ouverture de la console de gestion AWS
Il est nécessaire d'ouvrir un navigateur et d'aller à l'adresse :
Cliquer sur le bouton « S'inscrire »

1.2. Remplissage des données personnelles
Remplir les informations et cliquer sur le bouton « Continuer »

1.3. Remplissage des coordonnées
Remplir les informations de contact.

1.4. Fourniture des informations de paiement.
Numéro de carte, date d'expiration et nom du titulaire de la carte.

1.5. Confirmation du compte
À ce stade, nous confirmons le numéro de téléphone et effectuons un débit de 1 $ sur la carte de paiement. Un code à 4 chiffres s'affiche à l'écran de l'ordinateur, et un appel d'Amazon est reçu sur le téléphone indiqué. Pendant l'appel, il est nécessaire de composer le code affiché à l'écran.

1.6. Choix du plan tarifaire.
Nous choisissons — Plan de base (gratuit)

1.7. Accès au tableau de bord

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

1.8.1. Test de vitesse
Avant de choisir un centre de données, il est recommandé de tester via la vitesse d'accès aux centres de données les plus proches, dans ma localisation, les résultats sont les suivants :
- Singapour

- Paris

- Francfort

- Stockholm

- Londres

Le centre de données à Londres offre les meilleurs résultats en termes de vitesse. C'est pourquoi je l'ai choisi pour la configuration ultérieure.
2. Création d'une instance AWS
2.1 Création d'une machine virtuelle
2.1.1. Choix du type d'instance
L'instance t2.micro est sélectionnée par défaut, c'est celle dont nous avons besoin, il suffit de cliquer sur le bouton Suivant : Configurer les détails de l'instance

2.1.2. Configuration des paramètres de l'instance
Nous allons connecter une adresse IP publique fixe à notre instance, donc à cette étape, nous désactivons l'attribution automatique d'une IP publique et cliquons sur le bouton Suivant : Ajouter du stockage

2.1.3. Connexion de stockage
Indiquez la taille du « disque dur ». Pour nos besoins, 16 Go suffisent, puis cliquez sur le bouton Suivant : Ajouter des balises

2.1.4. Configuration des balises
Si nous devions créer plusieurs instances, nous pourrions les regrouper par balises pour faciliter l'administration. Dans ce cas, cette fonctionnalité est superflue, cliquons donc immédiatement sur le bouton Suivant : Configurer le groupe de sécurité

2.1.5. Ouverture des ports
À cette étape, nous configurons le pare-feu en ouvrant les ports nécessaires. L'ensemble de ports ouverts s'appelle « Groupe de sécurité ». Nous devons créer un nouveau groupe de sécurité, lui donner un nom, une description, ajouter le port UDP (Règle UDP personnalisée), dans le champ Plage de ports, il faut indiquer le numéro de port dans la plage 49152—65535. Dans ce cas, j'ai choisi le numéro de port 54321.

Après avoir rempli les informations nécessaires, cliquez sur le bouton Review and Launch
2.1.6. Revue de toutes les configurations
Sur cette page, nous passons en revue toutes les configurations de notre instance, vérifions si tout est en ordre, et cliquons sur le bouton Launch

2.1.7. Création des clés d'accès
Une fenêtre de dialogue apparaît, vous proposant soit de créer, soit d'ajouter une clé SSH existante, que nous utiliserons ensuite pour nous connecter à notre instance à distance. Nous choisissons l'option « Créer une nouvelle paire de clés » pour créer une nouvelle clé. Nous lui donnons un nom et cliquons sur le bouton Télécharger la paire de clés, pour télécharger les clés créées. Sauvegardez-les à un endroit sûr sur le disque de votre ordinateur local. Une fois téléchargées, cliquez sur le bouton Lancer des instances

2.1.7.1. Sauvegarde des clés d'accès
Cet écran montre l'étape de sauvegarde des clés créées à l'étape précédente. Après avoir cliqué sur le bouton Télécharger la paire de clés, la clé est sauvegardée sous la forme d'un fichier de certificat avec l'extension *.pem. Dans ce cas, je lui ai donné le nom wireguard-awskey.pem

2.1.8. Revue des résultats de la création de l'instance
Nous voyons ensuite un message confirmant 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 Voir les instances

2.2. Création d'une adresse IP externe
2.2.1. Lancement de la création d'une IP externe
Nous devons ensuite créer une adresse IP externe permanente, par laquelle nous nous connecterons à notre serveur VPN. Pour ce faire, dans le panneau de navigation à gauche de l'écran, il faut sélectionner l'élément Elastic IPs de la catégorie RÉSEAU & SÉCURITÉ et cliquer sur le bouton Allouer une nouvelle adresse

2.2.2. Configuration de la création d'une IP externe
À l'étape suivante, nous devons nous assurer que l'option Amazon pool (activé par défaut) est sélectionnée, puis nous cliquons sur le bouton Allouer

2.2.3. Revue des résultats de la création de l'adresse IP externe
À l'écran suivant, l'adresse IP externe que nous avons obtenue apparaîtra. Il est recommandé de s'en souvenir, voire de l'écrire. Elle nous sera encore utile lors de la configuration et de l'utilisation ultérieures du serveur VPN. Dans ce guide, j'utilise comme exemple l'adresse IP 4.3.2.1. Une fois l'adresse notée, cliquez sur le bouton Fermer

2.2.4. Liste des adresses IP externes
Nous avons ensuite une liste de nos adresses IP publiques permanentes (IP élastiques).

2.2.5. Attribution d'une adresse IP à l'instance
Dans cette liste, nous choisissons l'adresse IP que nous avons obtenue et faisons un clic droit pour faire apparaître le menu contextuel. Dans celui-ci, nous sélectionnons l'option Associer l'adresse, afin de l'attribuer à notre instance créée plus tôt.

2.2.6. Configuration de l'attribution de l'IP externe
À l'étape suivante, nous sélectionnons notre instance dans le menu déroulant et cliquons sur le bouton Associer

2.2.7. Revue des résultats de l'attribution de l'IP externe
Après cela, nous pouvons voir que notre instance est liée à notre adresse IP publique fixe et à son adresse IP privée.

Nous pouvons maintenant nous connecter à notre nouvelle instance de l'extérieur, depuis notre ordinateur via SSH.
3. Connexion à l'instance AWS
— c'est un protocole sécurisé pour le contrôle à distance des dispositifs informatiques.
3.1. Connexion par SSH depuis un ordinateur sous Windows
Pour se connecter à partir d'un ordinateur Windows, il est d'abord nécessaire de télécharger et d'installer le programme .
3.1.1. Importation de la clé privée pour Putty
3.1.1.1. Après avoir installé Putty, il faut exécuter l'outil PuTTYgen qui l'accompagne pour importer la clé certificat au format PEM vers un format utilisable dans Putty. Pour cela, sélectionnez dans le menu supérieur l'option Conversions->Import Key

3.1.1.2. Sélection de la clé AWS au format PEM
Ensuite, sélectionnez la clé que nous avons précédemment sauvegardée à l'étape 2.1.7.1, dans notre cas son nom est wireguard-awskey.pem

3.1.1.3. Configuration des paramètres d'importation de la clé
À cette étape, nous devons indiquer un commentaire pour cette clé (description) et définir un mot de passe et sa confirmation pour la sécurité. Ce mot de passe sera demandé à chaque connexion. Ainsi, nous protégeons la clé par un mot de passe contre une utilisation non souhaitée. Vous pouvez ne pas définir de mot de passe, mais c'est moins sécurisé si la clé tombe entre de mauvaises mains. Ensuite, nous cliquons sur le bouton Save private key

3.1.1.4. Sauvegarde de la clé importée
Une boîte de dialogue de sauvegarde de fichier s'ouvre, et nous enregistrons notre clé privée sous forme de fichier avec l'extension .ppk, utilisable dans le programme Putty.
Indiquez le nom de la clé (dans notre cas wireguard-awskey.ppk) et cliquez sur le bouton Enregistrer.

3.1.2. Création et configuration de la connexion dans Putty
3.1.2.1. Création de la connexion
Ouvrez le programme Putty, sélectionnez la catégorie Session (qui est ouverte par défaut) et dans le champ Host Name entrez l'adresse IP publique de notre serveur, que nous avons obtenue à l'étape 2.2.3. Dans le champ Saved Session entrez un nom arbitraire pour notre connexion (dans mon cas wireguard-aws-london), puis cliquez sur le bouton Sauvegarder pour enregistrer les modifications que nous avons apportées.

3.1.2.2. Configuration de la connexion automatique de l'utilisateur
Ensuite, dans la catégorie Connexion, sélectionnez la sous-catégorie Données et dans le champ Auto-login username entrez le nom d'utilisateur ubuntu — c'est l'utilisateur standard de l'instance sur AWS avec Ubuntu.

3.1.2.3. Sélection de la clé privée pour la connexion par SSH
Ensuite, passez à la sous-catégorie Connection/SSH/Auth et à côté du champ Fichier de clé privée pour l'authentification cliquez sur le bouton Parcourir… pour sélectionner le fichier avec le certificat de clé.

3.1.2.4. Ouverture de la clé importée
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.

3.1.2.5. Sauvegarde des paramètres et démarrage de la connexion
En revenant à la page de catégorie Session cliquez une fois de plus sur le bouton Sauvegarder, pour enregistrer les modifications effectuées précédemment aux étapes (3.1.2.2 — 3.1.2.4). Et ensuite, cliquez sur le bouton Ouvrir pour ouvrir la connexion distante que nous avons créée et configurée par SSH.

3.1.2.7. Configuration de la confiance entre les hôtes
À l'étape suivante, lors de la première tentative de connexion, un avertissement nous est donné, nous n'avons pas configuré la confiance entre les deux ordinateurs, et il demande si nous faisons confiance à l'ordinateur distant. Nous cliquerons sur le bouton Oui, ajoutant ainsi cet ordinateur à la liste des hôtes de confiance.

3.1.2.8. Saisie du mot de passe pour accéder à la clé
Après cela, une fenêtre de terminal s'ouvre, où le mot de passe de la clé est demandé, si vous l'avez configuré précédemment à l'étape 3.1.1.3. Lors de la saisie du mot de passe, aucune action n'apparaît à l'écran. Si vous vous trompez, vous pouvez utiliser la touche Retour arrière.

3.1.2.9. Message de bienvenue de connexion réussie
Après avoir saisi le mot de passe avec succès, le terminal affiche un message de bienvenue, indiquant que le système distant est prêt à exécuter nos commandes.

4. Configuration du serveur Wireguard
Vous pouvez consulter les instructions les plus récentes sur l'installation et l'utilisation de Wireguard à l'aide des scripts décrits ci-dessous dans le dépôt :
4.1. Installation de Wireguard
Dans le terminal, saisissez les commandes suivantes (vous pouvez copier dans le presse-papiers et coller dans le terminal en cliquant avec le bouton droit de la souris) :
4.1.1. Clonage du dépôt
Nous clonons le dépôt avec les scripts d'installation de Wireguard
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws4.1.2. Accéder au répertoire des scripts
Accédez au répertoire du dépôt cloné
cd wireguard_aws4.1.3 Exécution du script d'initialisation
Exécutez en tant qu'administrateur (utilisateur root) le script d'installation de Wireguard
sudo ./initial.shAu cours de l'installation, certaines informations nécessaires pour configurer Wireguard seront demandées
4.1.3.1. Saisir le point de connexion
Entrez l'adresse IP externe et le port ouvert du serveur Wireguard. Nous avons obtenu l'adresse IP externe du serveur à l'étape 2.2.3, et nous avons ouvert le port à l'étape 2.1.5. Indiquez-les ensemble, séparés par deux-points, par exemple 4.3.2.1:54321, puis appuyez sur la touche Entrée
Exemple de sortie :
Entrez le point de terminaison (ip externe et port) au format [ipv4:port] (par exemple 4.3.2.1:54321) : 4.3.2.1:543214.1.3.2. Saisie de l'adresse IP interne
Entrez l'adresse IP du serveur Wireguard dans le sous-réseau VPN protégé. Si vous ne savez pas ce que c'est, appuyez simplement sur la touche Entrée pour définir la valeur par défaut (10.50.0.1)
Exemple de sortie :
Entrez l'adresse du serveur dans le sous-réseau VPN (format CIDR) ([ENTRÉE] définit par défaut : 10.50.0.1) :4.1.3.3. Spécification du serveur DNS
Entrez l'adresse IP du serveur DNS, ou appuyez simplement sur la touche Entrée pour définir la valeur par défaut 1.1.1.1 (DNS public de Cloudflare)
Exemple de sortie :
Entrez l'adresse IP du serveur DNS (format CIDR) ([ENTRÉE] définit par défaut : 1.1.1.1) :4.1.3.4. Spécification de l'interface WAN
Ensuite, vous devez entrer le nom de l'interface réseau externe qui écoutera l'interface réseau interne VPN. Appuyez simplement sur Entrée pour définir la valeur par défaut pour AWS (eth0)
Exemple de sortie :
Entrez le nom de l'interface réseau WAN ([ENTRÉE] définit par défaut : eth0) :4.1.3.5. Spécification du nom du client
Entrez le nom de l'utilisateur VPN. En effet, le serveur VPN Wireguard ne pourra pas démarrer tant qu'au moins un client n'a pas été ajouté. Dans ce cas, j'ai saisi le nom Alex@mobile
Exemple de sortie :
Entrez le nom d'utilisateur VPN : Alex@mobileAprès cela, un code QR avec la configuration du client nouvellement ajouté devrait s'afficher à l'écran, qui doit être scanné avec le client mobile Wireguard sur Android ou iOS pour sa configuration. De plus, sous le code QR, le texte du fichier de configuration sera affiché pour la configuration manuelle des clients. Comment faire cela sera expliqué ci-dessous.

4.2. Ajout d'un nouvel utilisateur VPN
Pour ajouter un nouvel utilisateur, il est nécessaire d'exécuter le script dans le terminal add-client.sh
sudo ./add-client.shLe script demande le nom d'utilisateur :
Exemple de sortie :
Entrez le nom d'utilisateur VPN : De plus, le nom d'utilisateur peut également être passé en tant que paramètre du script (dans ce cas Alex@mobile):
sudo ./add-client.sh Alex@mobileEn exécutant le script, un fichier de configuration du client sera créé dans le répertoire nommé client à l'emplacement /etc/wireguard/clients/{ИмяКлиента} un fichier avec la configuration du client sera créé /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, et un code QR pour la configuration des clients mobiles sera affiché à l'écran ainsi que le contenu du fichier de configuration.
4.2.1. Fichier de configuration de l'utilisateur
Pour afficher le contenu du fichier .conf à l'écran, pour la configuration manuelle du client, vous pouvez utiliser la commande cat
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.confrésultat de l'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:54321Description du fichier de configuration du client :
[Interface]
PrivateKey = Clé privée du client
Address = Adresse IP du client
DNS = DNS utilisé par le client
[Peer]
PublicKey = Clé publique du serveur
PresharedKey = Clé partagée entre le serveur et le client
AllowedIPs = Adresses autorisées pour la connexion (toutes - 0.0.0.0/0, ::/0)
Endpoint = Adresse IP et port pour la connexion4.2.2. Code QR de la configuration du client
Pour afficher le code QR de la configuration du client précédemment créé sur le terminal, utilisez la commande qrencode -t ansiutf8 (dans cet exemple, nous utilisons un client nommé Alex@mobile) :
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf85. Configuration des clients VPN
5.1. Configuration du client mobile Android
Le client officiel Wireguard pour Android peut être
Ensuite, vous devez importer la configuration en scannant le code QR de la configuration du client (voir section 4.2.2) et lui donner un nom :

Après une importation réussie de la configuration, vous pouvez activer le tunnel VPN. Une icône de clé dans la barre d'état Android indiquera une connexion réussie.

5.2. Configuration du client Windows
Tout d'abord, vous devez télécharger et installer le programme — c'est le 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 votre bureau.

5.2.2. Copie du contenu du fichier de configuration depuis le serveur
Ensuite, revenez à la fenêtre Putty et affichez le contenu du fichier de configuration de l'utilisateur nécessaire, comme décrit à l'étape 4.2.1.
Ensuite, sélectionnez le texte de la configuration dans la fenêtre Putty avec le bouton droit de la souris, et après la sélection, il sera copié automatiquement dans le presse-papiers.

5.2.3. Copie de la configuration dans le fichier de configuration local
Après cela, revenez au fichier texte que nous avons créé précédemment sur le bureau et collez-y la configuration depuis le presse-papiers.

5.2.4. Sauvegarde du fichier de configuration local
Enregistrez le fichier avec l'extension .conf (dans ce cas sous le nom london.conf)

5.2.5. Importation du fichier de configuration local
Ensuite, il est nécessaire d'importer le fichier de configuration dans le programme TunSafe.

5.2.6. Établissement de la connexion VPN
Sélectionnez ce fichier de configuration et connectez-vous en appuyant sur le bouton Connecter.

6. Vérification du succès de la connexion
Pour vérifier le succès de la connexion via un tunnel VPN, ouvrez un navigateur et accédez au site

L'adresse IP affichée doit correspondre à celle que nous avons obtenue à l'étape 2.2.3.
Si c'est le cas, cela signifie que le tunnel VPN fonctionne correctement.
Depuis le terminal sous Linux, vous pouvez vérifier votre adresse IP en entrant la commande :
curl http://zx2c4.com/ipOu vous pouvez simplement visiter un site pour adultes si vous vous trouvez au Kazakhstan.
Source : habr.com





