Comment héberger votre propre VPN avec l'hébergement Algo et Cloud
Les 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.
Sommaire
VPN et confiance
Peu importe ce que dit ou revendique la politique de confidentialité sur les audits de sécurité sur un blog d'entreprise, rien n'empêche un VPN de surveiller tout ce que vous faites en ligne. Au final, choisir un service VPN revient à faire confiance.
Si vous ne faites pas confiance aux services en ligne sans visage, une alternative consiste à exécuter votre propre serveur VPN. Auparavant, c'était une tâche intimidante, mais grâce au projet open source Algo de la société de sécurité Trail of Bits, la création de votre propre VPN est maintenant facile.
Pour 5 $ par mois, vous pouvez exécuter et contrôler votre propre serveur VPN à temps plein. Encore mieux, 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 c'est rebutant, 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éé un VPN avec Algo à plusieurs reprises, cela ne devrait pas prendre beaucoup de temps. De plus, vous ne devez configurer l'environnement d'installation d'Algo qu'une seule fois. Après cela, vous pouvez créer un nouveau serveur VPN avec quelques touches.
Mais pouvez-vous croire que les scripts d'Algo ne font rien de mal? Eh bien, la bonne nouvelle est que le code d'Algo est public sur GitHub pour que tout le monde puisse le regarder. De plus, de nombreux experts en sécurité s'intéressent au projet Algo, ce qui rend les méfaits moins probables.
Ce que 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 Web plus sécurisée et empêche tout acteur malveillant qui pourrait être sur le même réseau Wi-Fi local. Un VPN peut également aider si votre FAI restreint certains types de trafic, comme les torrents.
Mais attention, pirates! Le téléchargement de 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 sur votre VPN, vous devrez regarder ailleurs – Algo ne fonctionne pas avec. Cependant, il existe de nombreux services commerciaux qui prennent en charge Netflix.
Prérequis pour Algo
Pour obtenir un serveur VPN Algo opérationnel, vous avez besoin d'un shell Unix Bash. Sur un système Mac ou Linux, vous pouvez utiliser votre programme Terminal, mais sous 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 hébergeur de serveurs cloud. Algo prend en charge tous les éléments suivants:
Si vous n'avez jamais utilisé l'un de ces services, nous vous recommandons DigitalOcean, car il est très convivial. C'est également le service que nous utilisons dans ce didacticiel. Le processus sera un peu différent si vous utilisez un autre fournisseur.
Lorsque votre compte DigitalOcean est prêt, connectez-vous, puis, dans le tableau de bord principal, sélectionnez «API» dans le rail de gauche sous la rubrique «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 et mot de passe. Vous devrez nommer le nouveau jeton. Généralement, c'est une bonne idée de le nommer d'après l'application que vous utilisez, comme «algo» ou «ian-algo» (si votre prénom se trouve être 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», qui est ce que les dossiers sont appelés dans le monde Unix), et appuyez sur Entrée. Cela vous permettra de travailler à partir du répertoire personnel du terminal.
Au moment où nous écrivons, Algo nécessite Python 3.6 ou une version ultérieure. Tapez ce qui suit dans votre programme 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 à démarrer, tapez la commande suivante dans une fenêtre de terminal:
brew install 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 «installez 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 personnalisons 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 devez remplacer les instructions par apt
avec dnf
.
Ensuite, nous devons télécharger Algo avec le wget
commander. Les Mac n'ont pas wget
installé par défaut, donc pour l'obtenir via Homebrew, tapez ce qui suit:
brew install wget
Maintenant, téléchargeons les fichiers d'Algo:
wget https://github.com/trailofbits/algo/archive/master.zip
Après wget
termine, 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. Sinon, essayez de courir wget
encore.
Maintenant, nous devons décompresser le fichier, nous tapons donc ce qui suit:
unzip master.zip
Après cela, appuyez sur ls
encore. Vous devriez maintenant voir un nouveau dossier dans votre répertoire personnel appelé «algo-master».
Nous sommes presque prêts à agir, mais d'abord, nous devons configurer notre environnement isolé et installer quelques autres dépendances. 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 êtes là avec cette commande:
pwd
Cela signifie «imprimer le répertoire de travail» et il 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 beaucoup d'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é (qui sont moins sécurisées), soit démarrer un nouveau serveur à partir de zéro plus tard.
Dans les deux cas, tapez ce qui suit dans le terminal:
nano config.cfg
Cela ouvre l'éditeur de texte en ligne de commande convivial, 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, bureau) et tapez 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 peut 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, puis sur 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 perturbe Ansible (l'outil sur lequel Algo s'appuie pour déployer un serveur).
Sur WSL, tapez ce qui suit pour revenir à votre répertoire personnel:
cd
Tapez ensuite ce qui suit:
chmod 755 -R ~/algo-master
Pour revenir au dossier Algo, tapez:
cd ~/algo-master
Running Algo
Et c'est maintenant le moment de vérité.
Du algo-master
dossier, tapez ce qui suit dans la fenêtre du terminal:
./algo
La configuration d'Algo devrait commencer à fonctionner. Vous saurez que cela fonctionne quand il vous demandera quel fournisseur de cloud vous souhaitez utiliser. Dans notre cas, nous sélectionnons le numéro (1) pour DigitalOcean.
Si Algo échoue, cela pourrait être un certain nombre de raisons que nous ne pouvons pas prévoir ici. Si l'erreur indique que votre répertoire est «configurable en écriture mondiale», suivez les instructions ci-dessus pour modifier les autorisations.
Si vous obtenez une erreur différente, consultez la page de dépannage dans le référentiel de 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 depuis votre compte DigitalOcean. Copiez-le et collez-le dans le terminal. Vous ne verrez rien car Bash n'affiche pas de 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 pourriez avoir tout simplement foiré la pâte, ce que tout le monde fait dans Bash. Tapez simplement ce qui suit pour réessayer:
./algo
Lorsque Algo est en cours d'exécution, répondez aux questions qu'il pose. Ce sont tous assez simples, 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 plus tard; en général, vous tapez également N ici.
C'est tout! 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 de nombreux services commerciaux, Algo utilise le protocole VPN WireGuard, qui est la nouveauté la plus chaude du monde des VPN. En effet, il offre une bonne sécurité, de plus grandes vitesses et est plus facile à utiliser.
Par exemple, que faire ensuite, nous activerons Algo sur 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 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 périphériques 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 algo-master
dossier en dehors de la ligne de commande. Sur Mac, algo-master
se trouve dans le dossier d'accueil; utilisez simplement Finder> Aller> Accueil pour y arriver. Sur Ubuntu, vous pouvez ouvrir Nautilus et il se trouvera dans le dossier Accueil.
Sous Windows, cependant, WSL est distinct du reste du système d'exploitation. Pour cette raison, il est tout 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/(VPN server IP address)/wireguard/Mary-PC.conf /mnt/c/Users/(your Windows user account name)/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 taper des majuscules là où cela est spécifié.
Il est naturel sous Windows de vouloir mettre en majuscule le C dans le lecteur "C: ", mais dans Bash non. 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: », pas sur le «C: », remplacez /mnt/c/
avec /mnt/d/
.
Une fois le fichier copié, ouvrez le client WireGuard pour Windows. Cliquez sur «Importer des tunnels depuis un fichier», puis sélectionnez votre fichier de configuration sur le bureau. Après cela, cliquez sur "Activer".
En quelques secondes, vous serez connecté à votre propre VPN!