VPN dans chaque maison ou comment apprivoiser le dragon

Ci-dessous, je parlerai de la façon de remplacer votre fournisseur VPN par votre propre serveur déployé sur DigitalOcean à l'aide de WireGuard.


Quel est le principal problème des fournisseurs VPN? Vous ne savez pas ce qu'ils font de vos données.
Très peu de fournisseurs de VPN ont passé des audits tiers et presque aucun d'entre eux n'a ouvert son code.
Même dans le cas du code open source et de l'audit passé, pour les personnes paranoïaques, la question de ce qui se passe du côté du fournisseur reste ouverte.


La solution est assez simple - déployez votre nœud VPN.


Je veux faire simple


Il existe de nombreux articles sur le réseau sur la façon de configurer WireGuard, en voici quelques-uns:



Mais que se passe-t-il si je veux simplement installer WireGuard, sans étudier en profondeur la documentation?
Je veux juste le moyen le plus simple et le plus rapide de déployer un serveur VPN et de commencer à l'utiliser.


Tout ce dont j'ai besoin de l'infrastructure:


  • 1 serveur
  • 5 à 10 clients pour moi et mes proches

Vous trouverez ci-dessous une instruction sur la façon de procéder rapidement et facilement.


Créer une goutte


Vous devez d'abord créer une nouvelle droplet sur DigitalOcean: https://www.digitalocean.com/docs/droplets/how-to/create/


Le Ubuntu 18.04 le plus simple me convient, ce qui coûte 5 $ par mois.


N'oubliez pas d'ajouter votre clé SSH pour avoir accès au droplet: https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/


Remarque. DigitalOcean n'est pas la seule option. Vous pouvez choisir n'importe quel service cloud à votre goût.


Installez WireGuard Server et créez toutes les configurations requises


Pour créer automatiquement toutes les configurations nécessaires, vous pouvez utiliser le script: wg-ububtu-server-up.sh , qui:


  • installer tous les logiciels nécessaires
  • configurer les règles iptables et activer le transfert IPv4
  • installer non lié en tant que résolveur DNS
  • va créer une configuration de serveur et le nombre requis de configurations client
  • lancera WireGuard

Établissez une connexion avec le droplet via SSH et exécutez les commandes suivantes pour télécharger et exécuter le script (utilisez l'adresse IP de votre droplet au lieu de xxx.xxx.x.xx):


ssh root@xxx.xxx.x.xx wget https://raw.githubusercontent.com/drew2a/wireguard/master/wg-ububtu-server-up.sh chmod +x ./wg-ububtu-server-up.sh ./wg-ububtu-server-up.sh 10 #  10  " 10  " 

Après avoir exécuté le script, le serveur WireGuard sera installé, en cours d'exécution et prêt à fonctionner avec les clients.


Un signe que WireGuard démarre correctement est qu'après avoir exécuté le script, vous devriez voir quelque chose de similaire à la console:


 interface: wg0 public key: +xxxEjj1qmxxxotq4OxxxfHPaxxxtre5xxxxOfxxw= private key: (hidden) listening port: 51820 peer: d1exxxLdCZcYxxxIQ0xxxxK/Wpx8G1N8xxvnUrxxxx= allowed ips: 10.0.0.2/32 peer: fWExxxazRxxxUOxxxx4JKgUTxxo9LaxxxxOGWtxxK0w= allowed ips: 10.0.0.3/32 ... peer: RbmxxxDxOoXMxxxcyate6xxxinIClxxDgRDxxxx0j0= allowed ips: 10.0.0.10/32 

Le script créera également 10 configurations client [ client1.conf ... client10.conf ], que vous pouvez utiliser une configuration pour un périphérique (à la fois).


Les configurations sont dans la droplet, dans le dossier: $ HOME / wireguard /


Remarque. Vous pouvez configurer WireGuard manuellement, sans utiliser de script, mais cela ne correspond pas à la définition de «rapide» et «sans une étude approfondie de la documentation». Dans le prochain article, si cela intéresse, je parlerai de ce qui se passe à l'intérieur des scripts de magie.


Remarque 2. Vous pouvez raisonnablement remarquer qu'il est encore plus facile d'utiliser une image déjà préparée dans le même DO et de ne pas exécuter de scripts. Je suis d'accord, mais j'attirerai votre attention sur le fait que dans les scripts proposés, il n'y a que 100 lignes de code et il est facile de vérifier qu'il n'y a pas de crime en eux. Dans l'image finie, c'est plus difficile à faire.


Remarque 3. La commande pour établir une connexion avec le droplet ( ssh ) fonctionne sur les systèmes d'exploitation de type * nix. Si vous avez Windows, utilisez winscp , PuTTY ou une autre application similaire.


Installer le client de bureau


Téléchargez l'application de bureau WireGuard sur https://www.wireguard.com/install/ et installez-la.


Téléchargez la configuration client (disons que vous souhaitez utiliser la configuration client1.conf ) à partir de votre droplet (utilisez l'adresse IP de votre droplet au lieu de xxx.xxx.x.xx):


 scp root@xxx.xxx.x.xx:"~/wireguard/client1.conf" ~/Desktop/ 

Lancez la version de bureau de WireGuard et importez le tunnel à partir de la configuration client téléchargée ( client1.conf ).


Remarque. La commande de téléchargement ( scp ) fonctionne sur les systèmes d'exploitation de type * nix. Si vous avez Windows, utilisez winscp ou une autre application similaire.


Remarque 2. Vous pouvez également utiliser la version WireGuard sans interface graphique et utiliser les mêmes configurations client.


Installer le client pour téléphone mobile


Installez l'application WireGuard via l'AppStore ou PlayMarket.


Exécutez-le et importez le tunnel VPN via le code QR.


Comment obtenir un code QR


Vous pouvez générer un code QR en vous connectant au droplet (utilisez l'adresse IP de votre droplet au lieu de xxx.xxx.x.xx) et exécutez la commande (au cas où vous utiliseriez la configuration client client2.conf ):


 ssh root@xxx.xxx.x.xx qrencode -t ansiutf8 < ~/wireguard/client2.conf 

Je vous remercie

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


All Articles