Comment héberger votre propre VPN avec Algo et l'hébergement cloud
Publié: 2022-01-29Des entreprises du monde entier vendent des services VPN pour sécuriser votre activité en ligne, mais pouvez-vous vraiment faire confiance à un fournisseur VPN ? Si vous le souhaitez, vous pouvez créer votre propre réseau privé virtuel avec le logiciel open source Algo et le fournisseur d'hébergement cloud de votre choix.
VPN et confiance
Indépendamment de ce que la politique de confidentialité dit ou se vante des audits de sécurité sur un blog d'entreprise, rien n'empêche un VPN de surveiller tout ce que vous faites en ligne. En fin de compte, le choix d'un service VPN se résume à la confiance.
Si faire confiance aux services en ligne sans visage n'est pas votre truc, une alternative consiste à exécuter votre propre serveur VPN. Auparavant, c'était une tâche ardue, mais grâce au projet open source Algo de la société de sécurité Trail of Bits, créer votre propre VPN est désormais facile.
Pour 5 $ par mois, vous pouvez exécuter et contrôler votre propre serveur VPN à plein temps. Mieux encore, vous pouvez utiliser Algo pour configurer et démonter les serveurs VPN selon vos besoins, et économiser de l'argent dans le processus.
Pour configurer Algo, vous devez utiliser la ligne de commande. Si cela vous rebute, ne vous inquiétez pas, nous vous guiderons à chaque étape.
Ces instructions peuvent sembler beaucoup, mais c'est uniquement parce que nous expliquons autant que possible. Une fois que vous avez créé plusieurs fois un VPN avec Algo, cela ne devrait pas prendre très longtemps. De plus, vous n'avez qu'à configurer l'environnement d'installation d'Algo une seule fois. Après cela, vous pouvez créer un nouveau serveur VPN en quelques frappes.
Mais pouvez-vous être sûr que les scripts d'Algo ne font rien de fâcheux ? Eh bien, la bonne nouvelle est que le code d'Algo est public sur GitHub pour que quiconque puisse le consulter. De plus, de nombreux experts en sécurité s'intéressent au projet Algo, qui rend les méfaits moins probables.
CONNEXION : Qu'est-ce qu'un VPN et pourquoi en aurais-je besoin ?
Ce qu'Algo peut (et ne peut pas) faire
Un VPN est un bon moyen de protéger votre activité en ligne, en particulier sur un réseau Wi-Fi public dans un aéroport ou un café. Un VPN rend la navigation sur le Web plus sécurisée et empêche tout acteur malveillant qui pourrait se trouver sur le même réseau Wi-Fi local. Un VPN peut également être utile si votre FAI restreint certains types de trafic, comme les torrents.
Mais attention, pirates ! Télécharger le butin via votre propre VPN n'est pas une bonne idée, car l'activité peut plus facilement être retracée jusqu'à vous.
De plus, si vous voulez regarder Netflix via votre VPN, vous devrez chercher ailleurs - Algo ne fonctionne pas avec. Cependant, de nombreux services commerciaux prennent en charge Netflix.
Prérequis pour Algo
Pour faire fonctionner un serveur Algo VPN, vous avez besoin d'un shell Unix Bash. Sur un système Mac ou Linux, vous pouvez utiliser votre programme Terminal, mais sur Windows, vous devrez activer le sous-système pour Linux. Voici comment installer et utiliser le shell Linux Bash sur Windows 10.
Vous aurez également besoin d'un compte chez un fournisseur d'hébergement de serveur cloud. Algo prend en charge tous les éléments suivants :
- DigitalOcean
- Amazon Lightsail
- AmazonEC2
- Vultr
- Microsoft Azure
- Moteur de calcul Google
- Échelle
- Nuage Hetzner
- Il s'installe également sur les instances OpenStack et CloudStack.
Si vous n'avez jamais utilisé l'un de ces services, nous vous recommandons DigitalOcean, car il est très convivial. C'est aussi le service que nous utilisons dans ce tutoriel. Le processus sera un peu différent si vous utilisez un autre fournisseur.
Lorsque votre compte DigitalOcean est prêt à fonctionner, connectez-vous, puis, à partir du tableau de bord principal, sélectionnez "API" dans le rail de gauche sous l'en-tête "Compte".
Sur la page suivante, cliquez sur "Générer un nouveau jeton". Un jeton d'accès est une longue chaîne de lettres et de chiffres qui permet d'accéder aux ressources du compte sans nom d'utilisateur ni mot de passe. Vous devrez nommer le nouveau jeton. Généralement, c'est une bonne idée de lui donner le nom de l'application que vous utilisez, comme « algo » ou « ian-algo » (si votre prénom est Ian).
Une fois le nouveau jeton généré, copiez-le et collez-le dans un document texte sur votre bureau. Vous en aurez besoin dans quelques minutes.
Configuration de votre environnement
De retour sur votre bureau, ouvrez une nouvelle fenêtre de terminal, tapez cd
(pour "changer de répertoire", c'est ainsi que les dossiers sont appelés dans le monde Unix) et appuyez sur Entrée. Cela garantira que vous travaillez à partir du répertoire d'accueil du terminal.
Au moment d'écrire ces lignes, Algo nécessite Python 3.6 ou version ultérieure. Tapez ce qui suit dans votre programme de terminal :
python3 --version
Si vous obtenez une réponse comme Python 3.6.9
, vous êtes prêt à partir ; sinon, vous devrez installer Python 3.
Pour installer Python 3 sur Mac, vous pouvez utiliser le gestionnaire de packages Homebrew. Lorsque Homebrew est prêt, tapez la commande suivante dans une fenêtre Terminal :
préparer l'installation de python3
Si vous utilisez Ubuntu Linux ou WSL sous Windows, ils devraient avoir Python 3 par défaut. Sinon, les méthodes d'installation varient en fonction de votre version de Linux. Recherchez en ligne "installer Python 3 sur [insérez votre version de Linux ici]" pour obtenir des instructions.
Ensuite, vous devez installer Virtualenv de Python3 pour créer un environnement Python isolé pour Algo. Tapez ce qui suit dans Bash sur un Mac :
python3 -m pip install --upgrade virtualenv
Sur Ubuntu Linux et WSL, la commande est la suivante :
sudo apt install -y python3-virtualenv
Notez que nous adaptons ce didacticiel pour Ubuntu et les distributions associées, mais ces instructions fonctionneront également pour d'autres versions de Linux avec quelques modifications mineures. Si vous utilisez CentOS, par exemple, vous remplaceriez les instructions utilisant apt
par dnf
.
Ensuite, nous devons télécharger Algo avec la commande wget
. Les Mac n'ont pas wget
installé par défaut, donc pour l'obtenir via Homebrew, tapez ce qui suit :
brasser installer wget
Maintenant, téléchargeons les fichiers d'Algo :
wget https://github.com/trailofbits/algo/archive/master.zip
Une fois wget
terminé, il y aura un fichier compressé appelé « master.zip » dans le répertoire personnel de votre terminal ; vérifions cela avec ls
.
Si vous voyez "master.zip" dans la liste des fichiers et dossiers qui apparaît, vous êtes prêt à partir. Si ce n'est pas le cas, essayez à nouveau d'exécuter wget
.
Maintenant, nous devons décompresser le fichier, nous tapons donc ce qui suit :
décompressez master.zip
Après cela, appuyez à nouveau sur ls
. Vous devriez maintenant voir un nouveau dossier dans votre répertoire personnel appelé "algo-master".
Nous sommes presque prêts à passer à l'action, mais nous devons d'abord configurer notre environnement isolé et installer quelques dépendances supplémentaires. Cette fois, nous allons travailler dans le dossier « algo-master ».
Tapez ce qui suit pour basculer vers le dossier :
cd ~/algo-master
Assurez-vous que vous y êtes avec cette commande :
pwd
Cela signifie «répertoire de travail d'impression» et devrait vous montrer quelque chose comme /home/Bob/algo-master
ou /Users/Bob/algo-master
. Maintenant que nous sommes au bon endroit, préparons tout.
Copiez et collez ou tapez la commande ci-dessous sur une seule ligne (n'appuyez pas sur Entrée jusqu'à la fin):
python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt
Cela déclenche de nombreuses actions dans le répertoire Algo pour se préparer à s'exécuter.
Ensuite, vous devez nommer vos utilisateurs pour le VPN. Si vous ne les nommez pas tous maintenant, vous devrez soit conserver les clés de sécurité (ce qui est moins sûr), soit démarrer un nouveau serveur à partir de zéro plus tard.
Dans tous les cas, tapez ce qui suit dans le terminal :
nano config.cfg
Cela ouvre l'éditeur de texte convivial en ligne de commande, Nano. Le fichier de configuration Algo contient beaucoup d'informations, mais nous ne sommes intéressés que par la partie qui dit "utilisateurs". Tout ce que vous avez à faire est de supprimer les noms d'utilisateur par défaut (téléphone, ordinateur portable, ordinateur de bureau) et de saisir un nom pour chaque appareil que vous souhaitez sur votre VPN.
Par exemple, si je crée un VPN pour moi, Bill et Mary, le fichier de configuration pourrait ressembler à ceci :
users:
- Ian_PC
- Bill_Mac
- Mary_PC
- Ian_Android
- Bill_iPhone
- Mary_iPhone
Une fois que vous avez nommé tout le monde, appuyez sur Ctrl+O pour enregistrer le fichier, suivi de Ctrl+X pour quitter.
Nous sommes presque prêts à passer à l'action, mais les utilisateurs de Windows doivent d'abord faire un petit détour. WSL ne définit généralement pas les autorisations utilisateur correctes pour le dossier Algo, ce qui dérange Ansible (l'outil sur lequel Algo s'appuie pour déployer un serveur).
Sur WSL, saisissez ce qui suit pour revenir à votre répertoire personnel :
CD
Ensuite, tapez ce qui suit :
chmod 755 -R ~/algo-master
Pour revenir au dossier Algo, tapez :
cd ~/algo-master
Algo en cours d'exécution
Et maintenant, c'est le moment de vérité.
Dans le dossier algo-master
, saisissez ce qui suit dans la fenêtre du terminal :
./algo
La configuration Algo devrait commencer à s'exécuter. Vous saurez que cela fonctionne lorsqu'il vous demandera quel fournisseur de cloud vous souhaitez utiliser. Dans notre cas, nous sélectionnons le nombre (1) pour DigitalOcean.
Si Algo échoue, cela pourrait être dû à un certain nombre de raisons que nous ne pouvons pas prédire ici. Si l'erreur indique que votre répertoire est "world write configurable", suivez les instructions ci-dessus pour modifier les autorisations.
Si vous obtenez une autre erreur, consultez la page de dépannage dans le référentiel du projet Algo sur GitHub. Vous pouvez également copier le message d'erreur et le coller dans Google pour le rechercher. Vous devriez trouver un message sur le forum qui vous aidera, car il est peu probable que vous soyez la première personne à recevoir cette erreur.
Ensuite, il vous sera demandé le jeton d'accès que vous avez copié précédemment à partir de votre compte DigitalOcean. Copiez-le et collez-le dans le terminal. Vous ne verrez rien car Bash n'affiche pas les caractères pour les entrées de mot de passe et de phrase de sécurité. Tant que vous appuyez sur Coller, puis appuyez sur Entrée, cela devrait aller.
Si cela échoue, vous venez peut-être de gâcher la pâte, ce que tout le monde fait dans Bash. Tapez simplement ce qui suit pour réessayer :
./algo
Lorsqu'Algo est en cours d'exécution, répondez aux questions qu'il vous pose. Tout cela est assez simple, comme ce que vous voulez nommer votre serveur (utiliser "algo" dans le nom est une bonne idée).
Ensuite, il vous demandera si vous souhaitez activer "Connect on Demand" pour les appareils Mac et iOS. Si vous n'utilisez aucun de ces appareils, tapez N pour non. Il vous demandera également si vous souhaitez conserver les clés PKI pour ajouter plus d'utilisateurs ultérieurement ; généralement, vous taperez N ici aussi.
C'est ça! Algo prendra maintenant environ 15 à 30 minutes pour que votre serveur soit opérationnel.
Utiliser Algo
Lorsque Algo a terminé sa configuration, le terminal revient à une invite de ligne de commande, ce qui signifie que le VPN est prêt à fonctionner. Comme beaucoup de services commerciaux, Algo utilise le protocole VPN WireGuard, qui est la nouveauté la plus en vogue dans le monde des VPN. En effet, il offre une bonne sécurité, des vitesses plus élevées et est plus facile à utiliser.
Comme exemple de ce qu'il faut faire ensuite, nous allons activer Algo sous Windows. Pour configurer d'autres appareils, vous pouvez vous référer au référentiel Algo sur GitHub.
Tout d'abord, nous allons installer le client de bureau Windows générique à partir du site WireGuard. Ensuite, nous devons alimenter le programme avec notre fichier de configuration pour le PC. Les fichiers de configuration sont stockés profondément dans le dossier algo-master à : ~/algo-master/configs/[VPN server IP address]/wireguard/
.
Il existe deux types de fichiers pour configurer les appareils clients VPN : .CONF et .PNG. Ces derniers sont des codes QR pour des appareils comme les téléphones, qui peuvent scanner des codes QR. Les fichiers .CONF (configuration) sont des fichiers texte pour les clients WireGuard de bureau.
Sur Mac et Ubuntu, il ne devrait pas être difficile de trouver le dossier algo-master
en dehors de la ligne de commande. Sur Mac, algo-master
se trouve dans le dossier Home ; utilisez simplement Finder> Aller> Accueil pour y arriver. Sur Ubuntu, vous pouvez ouvrir Nautilus, et ce sera dans le dossier Accueil.
Sous Windows, cependant, WSL est séparé du reste du système d'exploitation. Pour cette raison, il est simplement plus facile de copier les fichiers avec la ligne de commande.
En utilisant notre exemple précédent, disons que nous voulons que le fichier de configuration "Mary-PC.conf" soit utilisé sur un PC Windows 10. La commande ressemblerait à ceci :
cp ~/algo-master/configs/[adresse IP du serveur VPN]/wireguard/Mary-PC.conf /mnt/c/Users/[nom de votre compte utilisateur Windows]/Desktop/
Notez l'espace entre Mary-PC.conf
et /mnt/
; c'est ainsi que Bash sait où se trouve le fichier à copier et où il va. La casse est également importante, alors assurez-vous de saisir les majuscules là où elles sont spécifiées.
Il est naturel sous Windows de vouloir mettre en majuscule le C dans le lecteur "C:\", mais ce n'est pas le cas dans Bash. N'oubliez pas non plus de remplacer les bits entre parenthèses par les informations réelles de votre PC.
Par exemple, si votre dossier utilisateur se trouve sur le lecteur « D:\ », et non sur le lecteur « C:\ », remplacez /mnt/c/
par /mnt/d/
.
Une fois le fichier copié, ouvrez le client WireGuard pour Windows. Cliquez sur "Importer des tunnels à partir d'un fichier", puis sélectionnez votre fichier de configuration sur le bureau. Une fois cela fait, cliquez sur "Activer".
En quelques secondes, vous serez connecté à votre propre VPN !