Avec la censure croissante d'Internet par des 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 viole le droit fondamental à la liberté d'expression, consacré dans déclaration universelle des droits de l'Homme.
Article 19
Toute personne a droit à la liberté d'opinion et d'expression; ce droit comprend la liberté d'avoir des opinions sans ingérence et de rechercher, recevoir et répandre des informations et des idées par tous les médias et sans considération de frontières
Dans ce guide, nous allons déployer notre propre logiciel gratuit* en 6 étapes. Service VPN basé sur la technologie Wireguard, dans les infrastructures cloud Amazon Web Services (AWS), en utilisant un compte gratuit (pendant 12 mois), sur une instance (machine virtuelle) gérée par Serveur Ubuntu 18.04 LTS.
J'ai essayé de rendre cette procédure pas à pas aussi conviviale que possible pour les non-informaticiens. La seule chose qui est requise est la persévérance dans la répétition des étapes décrites ci-dessous.
Noter
AWS fournit niveau d'utilisation gratuite pour une durée de 12 mois, avec une limite de 15 gigaoctets de trafic par mois.
L'inscription à un compte AWS gratuit nécessite un vrai numéro de téléphone et une carte de crédit Visa ou Mastercard valide. Je recommande d'utiliser des cartes virtuelles fournies gratuitement Yandex ou Portefeuille QIWI. 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 console de gestion AWS
Vous devez ouvrir un navigateur et accéder à : https://aws.amazon.com/ru/
Cliquez sur le bouton "S'inscrire"
1.2. Remplir les données personnelles
Remplissez les données et cliquez sur le bouton "Continuer"
1.3. Remplir les coordonnées
Remplissez les informations de contact.
1.4. Spécification des informations de paiement.
Numéro de carte, date d'expiration et nom du titulaire de la carte.
1.5. Vérification de compte
A 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 le téléphone spécifié reçoit un appel d'Amazon. Lors d'un appel, vous devez composer le code affiché à l'écran.
1.6. Choix du plan tarifaire.
Choisissez - Plan de base (gratuit)
1.7. Connectez-vous à la console de gestion
1.8. Choisir 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 à travers https://speedtest.net vitesse d'accès aux centres de données les plus proches, à mon emplacement, les résultats suivants :
Singapour
Paris
Francfort
Stockholm
Londres
Le centre de données de Londres affiche les meilleurs résultats en termes de vitesse. Je l'ai donc choisi pour une personnalisation plus poussée.
2. Créez une instance AWS
2.1 Créer une machine virtuelle
2.1.1. Sélection d'un type d'instance
Par défaut, l'instance t2.micro est sélectionnée, c'est ce dont nous avons besoin, appuyez simplement sur le bouton Suivant : Configurer les détails de l'instance
2.1.2. Définition des options d'instance
À l'avenir, nous connecterons une adresse IP publique permanente à notre instance, donc à ce stade, nous désactivons l'attribution automatique d'une adresse IP publique et appuyons sur le bouton Suivant : Ajouter de l'espace de stockage
2.1.3. Connexion de stockage
Spécifiez la taille du "disque dur". Pour nos besoins, 16 gigaoctets suffisent et nous appuyons sur le bouton Suivant: Ajouter des balises
2.1.4. Paramétrage des balises
Si nous créons plusieurs instances, alors elles pourraient être regroupées par balises pour faciliter l'administration. Dans ce cas, cette fonctionnalité est superflue, appuyez immédiatement sur le bouton Suivant : Configurer le groupe de sécurité
2.1.5. Ports d'ouverture
Dans cette étape, nous configurons le pare-feu en ouvrant les ports requis. L'ensemble des ports ouverts est appelé groupe de sécurité. Il faut créer un nouveau groupe de sécurité, lui donner un nom, une description, ajouter un port UDP (Custom UDP Rule), dans le champ Rort Range, il faut lui attribuer un numéro de port de la plage ports dynamiques 49152-65535. Dans ce cas, j'ai choisi le numéro de port 54321.
Après avoir rempli les données requises, cliquez sur le bouton Révision et lancement
2.1.6. Aperçu de tous les paramètres
Sur cette page, il y a un aperçu de tous les paramètres de notre instance, nous vérifions si tous les paramètres sont en ordre, et appuyons sur le bouton Lancement
2.1.7. Création de clés d'accès
Vient ensuite une boîte de dialogue proposant de créer ou d'ajouter une clé SSH existante, avec laquelle nous nous connecterons ultérieurement à distance à notre instance. Nous sélectionnons l'option "Créer une nouvelle paire de clés" pour créer une nouvelle clé. Donnez-lui un nom et cliquez sur le bouton Télécharger la paire de cléspour télécharger les clés générées. Enregistrez-les dans un endroit sûr sur votre ordinateur local. Une fois téléchargé, cliquez sur le bouton. Lancer des instances
2.1.7.1. Enregistrement des clés d'accès
Voici l'étape d'enregistrement des clés générées à l'étape précédente. Après avoir appuyé 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é un nom wireguard-awskey.pem
2.1.8. Présentation des résultats de la création d'instance
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 occurrences
2.2. Création d'une adresse IP externe
2.2.1. Lancement de la création d'une IP externe
Ensuite, nous devons créer une adresse IP externe permanente à travers 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 IP élastiques de la catégorie RÉSEAU & SÉCURITÉ et appuyez sur le bouton Attribuer une nouvelle adresse
2.2.2. Configurer la création d'une IP externe
Dans l'étape suivante, nous devons activer l'option Piscines Amazon (activé par défaut), et cliquez sur le bouton Attribuer
2.2.3. Aperçu 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 le mémoriser, et il est même préférable de l'écrire. il sera utile plus d'une fois dans le processus de configuration et d'utilisation du serveur VPN. Dans ce guide, j'utilise l'adresse IP comme exemple. 4.3.2.1. Une fois que vous avez entré l'adresse, appuyez sur le bouton Fermer
2.2.4. Liste des adresses IP externes
Ensuite, une liste de nos adresses IP publiques permanentes (elastics IP) nous est présentée.
2.2.5. Attribution d'une adresse IP externe à une instance
Dans cette liste, nous sélectionnons l'adresse IP que nous avons reçue et appuyons sur le bouton droit de la souris pour faire apparaître un menu déroulant. Dans celui-ci, sélectionnez l'élément adresse associéepour l'affecter à l'instance que nous avons créée précédemment.
2.2.6. Paramètre d'attribution d'adresse IP externe
À l'étape suivante, sélectionnez notre instance dans la liste déroulante et appuyez sur le bouton Associé(e)
2.2.7. Présentation des résultats de l'attribution d'adresses IP externes
Après cela, nous pouvons voir que notre instance et son adresse IP privée sont liées à notre adresse IP publique permanente.
Nous pouvons maintenant nous connecter à notre instance nouvellement créée depuis l'extérieur, depuis notre ordinateur via SSH.
3. Connectez-vous à une instance AWS
SSH est un protocole sécurisé pour le contrôle à distance d'appareils informatiques.
3.1. Connexion via SSH depuis un ordinateur Windows
Pour vous connecter à un ordinateur Windows, vous devez d'abord télécharger et installer le programme mastiquer.
3.1.1. Importer la 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 l'élément dans le menu du haut Conversions->Importer la clé
3.1.1.2. Choisir une 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 wireguard-awskey.pem
3.1.1.3. Définition des options d'importation de clé
À cette étape, nous devons spécifier un commentaire pour cette clé (description) et définir un mot de passe et une confirmation pour la sécurité. Il vous sera demandé à chaque connexion. Ainsi, nous protégeons la clé avec un mot de passe contre toute utilisation inappropriée. Vous n'êtes pas obligé de définir un mot de passe, mais il est moins sécurisé si la clé tombe entre de mauvaises mains. Après avoir appuyé sur le bouton Enregistrer la clé privée
3.1.1.4. Enregistrer une clé importée
Une boîte de dialogue d'enregistrement de fichier s'ouvre et nous enregistrons notre clé privée sous forme de fichier avec l'extension .ppkutilisable dans le programme mastiquer.
Spécifiez le nom de la clé (dans notre cas wireguard-awskey.ppk) et appuyez sur le bouton Enregistrer.
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 une catégorie Session (il est ouvert par défaut) et dans le champ Nom de l'hôte entrez l'adresse IP publique de notre serveur, que nous avons reçue à l'étape 2.2.3. Dans le champ Séance enregistrée entrez un nom arbitraire pour notre connexion (dans mon cas wireguard-aws-londres), puis appuyez sur le bouton Épargnez pour enregistrer les modifications que nous avons apportées.
3.1.2.2. Configuration de la connexion automatique des utilisateurs
Plus dans la catégorie La connexion, choisissez une sous-catégorie Données et sur le terrain Nom d'utilisateur de connexion automatique Saisissez votre nom d'utilisateur ubuntu est l'utilisateur standard de l'instance sur AWS avec Ubuntu.
3.1.2.3. Choisir une clé privée pour se connecter via SSH
Alors rendez-vous dans la sous-catégorie Connexion/SSH/Authentification et à côté du terrain Fichier de clé privée pour l'authentification appuyer sur le bouton Parcourir ... pour sélectionner un fichier avec un certificat de clé.
3.1.2.4. Ouvrir une clé importée
Spécifiez la clé que nous avons importée précédemment à l'étape 3.1.1.4, dans notre cas c'est un fichier wireguard-awskey.ppk, et appuyez sur le bouton ouvert.
3.1.2.5. Enregistrement des paramètres et démarrage d'une connexion
Retour à la page de catégorie Session appuyez à nouveau sur le bouton Épargnez, 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 on appuie sur le bouton Ouvert pour ouvrir la connexion SSH distante que nous avons créée et configurée.
3.1.2.7. Établir la confiance entre les hôtes
À l'étape suivante, la première fois que nous essayons de nous connecter, nous recevons un avertissement, nous n'avons pas de confiance configurée entre les deux ordinateurs et nous demandons s'il faut faire confiance à l'ordinateur distant. Nous allons appuyer sur le bouton Oui, l'ajoutant ainsi à la liste des hôtes de confiance.
3.1.2.8. Saisie d'un mot de passe pour accéder à la clé
Après cela, une fenêtre de terminal s'ouvre, dans laquelle on vous demande le mot de passe pour la clé, si vous l'avez défini précédemment à l'étape 3.1.1.3. Lors de la saisie d'un mot de passe, aucune action à l'écran ne se produit. Si vous faites une erreur, vous pouvez utiliser la clé Retour arrière.
3.1.2.9. Message de bienvenue en cas de connexion réussie
Après avoir réussi à saisir le mot de passe, un texte de bienvenue s'affiche dans le terminal, qui nous indique que le système distant est prêt à exécuter nos commandes.
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. Installation de WireGuard
Dans le terminal, entrez les commandes suivantes (vous pouvez copier dans le presse-papiers et coller dans le terminal en appuyant sur le bouton droit de la souris) :
4.1.1. Cloner un dépôt
Cloner le référentiel avec les scripts d'installation de Wireguard
4.1.2. Basculer vers le répertoire avec des scripts
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 en tant qu'administrateur (utilisateur root) le script d'installation de Wireguard
sudo ./initial.sh
Le processus d'installation demandera certaines données nécessaires pour configurer Wireguard
4.1.3.1. Entrée de 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 ouvert le port à l'étape 2.1.5. Nous les indiquons ensemble, en les séparant par deux-points, par exemple 4.3.2.1:54321puis appuyez sur la touche Entrer Exemple de sortie :
Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321
4.1.3.2. Saisie de l'adresse IP interne
Entrez l'adresse IP du serveur Wireguard sur le sous-réseau VPN sécurisé, 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 :
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
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 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, vous devez entrer le nom de l'interface réseau externe qui écoutera sur 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 :
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5. Spécifier le nom du client
Entrez le nom de l'utilisateur VPN. Le fait est que le serveur VPN Wireguard 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 avec la configuration du client nouvellement ajouté doit être affiché à l'écran, qui doit être lu à l'aide du client mobile Wireguard sur Android ou iOS pour le configurer. Et également sous le code QR, le texte du fichier de configuration sera affiché en cas de configuration manuelle des clients. Comment faire cela sera discuté ci-dessous.
4.2. Ajouter un nouvel utilisateur VPN
Pour ajouter un nouvel utilisateur, vous devez exécuter le script dans le terminal add-client.sh
sudo ./add-client.sh
Le script demande un nom d'utilisateur : Exemple de sortie :
Enter VPN user name:
De plus, le nom des utilisateurs peut être passé comme 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 le long du chemin /etc/wireguard/clients/{ИмяКлиента} le fichier de configuration du client sera créé /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, et l'écran du terminal affichera un 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 une configuration manuelle du client, à l'aide de la commande cat
[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом
[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все - 0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения
4.2.2. Code QR pour la configuration du client
Vous pouvez afficher un QR code de configuration pour un client précédemment créé sur l'écran du terminal à l'aide de la commande qrencode -t ansiutf8 (dans cet exemple, le client nommé Alex@mobile est utilisé) :
Après cela, il faut importer la configuration en lisant le QR code avec la configuration client (voir paragraphe 4.2.2) et lui donner un nom :
Une fois la configuration importée avec succès, vous pouvez activer le tunnel VPN. Une connexion réussie sera indiquée par une cachette de clé dans la barre d'état système Android
5.2. Configuration du client Windows
Vous devez d'abord télécharger et installer le programme TunSafe pour Windows est le client Wireguard pour Windows.
5.2.1. Création d'un fichier de configuration d'importation
Faites un clic droit pour créer un fichier texte sur le bureau.
5.2.2. Copiez le contenu du fichier de configuration depuis le serveur
Ensuite, nous retournons au terminal Putty et affichons le contenu du fichier de configuration de l'utilisateur souhaité, comme décrit à l'étape 4.2.1.
Ensuite, cliquez avec le bouton droit sur le texte de configuration dans le terminal Putty, une fois la sélection terminée, il sera automatiquement copié dans le presse-papiers.
5.2.3. Copie de la configuration dans un fichier de configuration local
Dans ce champ, nous revenons au fichier texte que nous avons créé précédemment sur le bureau et y collons le texte de configuration à partir du presse-papiers.
5.2.4. Enregistrement d'un fichier de configuration local
Enregistrez le fichier avec l'extension .conf (dans ce cas nommé london.conf)
5.2.5. Importation d'un fichier de configuration local
Ensuite, vous devez importer le fichier de configuration dans le programme TunSafe.
5.2.6. Configuration d'une connexion VPN
Sélectionnez ce fichier de configuration et connectez-vous en cliquant sur le bouton NOUS CONTACTER.
6. Vérifier si la connexion a réussi
Pour vérifier le succès de la connexion via le tunnel VPN, vous devez ouvrir un navigateur et accéder au site https://2ip.ua/ru/
L'adresse IP affichée doit correspondre à celle que nous avons reçue à l'étape 2.2.3.
Si tel est le cas, le tunnel VPN fonctionne correctement.
Depuis le terminal Linux, vous pouvez vérifier votre adresse IP en tapant :
curl http://zx2c4.com/ip
Ou vous pouvez simplement aller sur pornhub si vous êtes au Kazakhstan.