Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
algo — Set up a personal VPN in the cloud | Kitploit
Outils/GitHubGitHub/trailofbits/algo
Encryption/Decryption ToolsScripting & AutomationNetwork SecurityCloud SecurityPrivacy
GitHubtrailofbits/algo

algo

Set up a personal VPN in the cloud

Voir le dépôt
30.4k2.4kil y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Algo VPN

Twitter

Algo VPN est un ensemble de scripts Ansible qui simplifient la mise en place d'un VPN personnel WireGuard et IPsec. Il utilise les réglages sécurisés par défaut les plus robustes et fonctionne avec les fournisseurs cloud courants.

Consultez notre annonce de publication pour plus d'informations.

Fonctionnalités

  • Prend en charge uniquement IKEv2 avec un chiffrement fort (AES-GCM, SHA2 et P-256) pour iOS, macOS et Linux
  • Prend en charge WireGuard pour tous les systèmes ci-dessus, ainsi qu'Android et Windows 11
  • Génère des fichiers .conf et des codes QR pour les clients WireGuard sous iOS, macOS, Android et Windows
  • Génère des profils Apple pour configurer automatiquement les appareils iOS et macOS pour IPsec – aucun logiciel client requis
  • Inclut des scripts d'aide pour ajouter, supprimer et gérer les utilisateurs
  • Bloque les publicités avec un résolveur DNS local (optionnel)
  • Configure des utilisateurs SSH limités pour le tunneling du trafic (optionnel)
  • Axé sur la confidentialité avec une journalisation minimale, une rotation automatique des journaux et des améliorations de confidentialité configurables
  • Basé sur Ubuntu 22.04 LTS avec des mises à jour de sécurité automatiques
  • S'installe sur DigitalOcean, Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, OpenStack, CloudStack, Hetzner Cloud, Linode, ou votre propre serveur Ubuntu (pour les utilisateurs avancés)

Anti-fonctionnalités

  • Ne prend pas en charge les suites de chiffrement ou protocoles obsolètes comme L2TP, IKEv1 ou RSA
  • N'installe pas Tor, OpenVPN ou d'autres serveurs risqués
  • Ne dépend pas de la sécurité de TLS
  • Ne prétend pas fournir l'anonymat ou éviter la censure
  • Ne prétend pas vous protéger du FSB, du MSS, de la DGSE ou du FSM

Déployer le serveur Algo

Le moyen le plus simple de faire fonctionner un serveur Algo est de l'exécuter sur votre système local ou depuis Google Cloud Shell et de le laisser configurer une nouvelle machine virtuelle dans le cloud pour vous.

  1. Configurez un compte chez un fournisseur d'hébergement cloud. Algo prend en charge DigitalOcean (le plus convivial), Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, DreamCompute, Linode, d'autres hébergements cloud basés sur OpenStack, des hébergements cloud basés sur CloudStack, ou Hetzner Cloud.

  2. Obtenez une copie d'Algo. Les scripts Algo seront exécutés depuis votre système local. Il y a deux façons d'obtenir une copie :

    • Téléchargez le fichier ZIP. Décompressez le fichier pour créer un répertoire nommé algo-master contenant les scripts Algo.

    • Utilisez git clone pour créer un répertoire nommé algo contenant les scripts Algo :

      root@kitploit:~
      git clone https://github.com/trailofbits/algo.git
      
  3. Définissez vos options de configuration. Ouvrez config.cfg dans votre éditeur de texte préféré. Spécifiez les utilisateurs que vous souhaitez créer dans la liste . Créez un utilisateur unique pour chaque appareil que vous prévoyez de connecter à votre VPN. Vous devriez également examiner les autres options avant le déploiement, car changer d'avis par la suite .

C'est tout ! Vous pouvez maintenant configurer des clients pour se connecter à votre VPN. Passez à Configurer les clients VPN ci-dessous.

root@kitploit:~
    "#                          Congratulations!                            #"
    "#                     Your Algo server is running.                     #"
    "#    Config files and certificates are in the ./configs/ directory.    #"
    "#              Go to https://whoer.net/ after connecting               #"
    "#        and ensure that all your traffic passes through the VPN.      #"
    "#                     Local DNS resolver 172.16.0.1                    #"
    "#        The p12 and SSH keys password for new users is XXXXXXXX       #"
    "#        The CA key password is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX       #"
    "#      Shell access: ssh -F configs/<server_ip>/ssh_config <hostname>  #"

Configurer les clients VPN

Les certificats et fichiers de configuration dont les utilisateurs auront besoin sont placés dans le répertoire configs. Assurez-vous de sécuriser ces fichiers car beaucoup contiennent des clés privées. Tous les fichiers sont enregistrés dans un sous-répertoire nommé avec l'adresse IP de votre nouveau serveur Algo VPN.

Important pour les utilisateurs IPsec : Si vous souhaitez ajouter ou supprimer des utilisateurs ultérieurement, vous devez sélectionner yes à l'invite Do you want to retain the keys (PKI)? lors du déploiement du serveur. Cela préserve l'autorité de certification nécessaire à la gestion des utilisateurs.

Apple

WireGuard est utilisé pour fournir des services VPN sur les appareils Apple. Algo génère un fichier de configuration WireGuard, wireguard/<nom_utilisateur>.conf, et un code QR, wireguard/<nom_utilisateur>.png, pour chaque utilisateur défini dans config.cfg.

Sur iOS, installez l'application WireGuard depuis l'App Store iOS. Ensuite, utilisez l'application WireGuard pour scanner le code QR ou transférer le fichier de configuration par AirDrop vers l'appareil.

Sur macOS, installez l'application WireGuard depuis le Mac App Store. WireGuard apparaîtra dans la barre de menu une fois l'application lancée. Cliquez sur l'icône WireGuard, choisissez Importer les tunnels depuis un fichier..., puis sélectionnez le fichier de configuration WireGuard approprié.

Sur iOS ou macOS, vous pouvez activer « Connect on Demand » et/ou exclure certains réseaux Wi-Fi de confiance (comme ceux de votre domicile ou de votre travail) en modifiant la configuration du tunnel dans l'application WireGuard. (Algo ne peut pas le faire automatiquement pour vous.)

Si vous préférez utiliser le VPN IPsec intégré sur les appareils Apple, ou si vous avez besoin que « Connect on Demand » ou les réseaux Wi-Fi exclus soient configurés automatiquement, consultez le guide de configuration du client IPsec Apple pour des instructions détaillées.

Android

WireGuard est utilisé pour fournir des services VPN sur Android. Installez le client VPN WireGuard. Importez le fichier wireguard/<nom>.conf correspondant sur votre appareil, puis configurez une nouvelle connexion avec celui-ci. Consultez le guide de configuration Android pour des instructions d'installation et de configuration détaillées.

Windows

WireGuard est utilisé pour fournir des services VPN sur Windows. Algo génère un fichier de configuration WireGuard, wireguard/<nom_utilisateur>.conf, pour chaque utilisateur défini dans config.cfg.

Installez le client VPN WireGuard. Importez le fichier wireguard/<nom_utilisateur>.conf généré sur votre appareil, puis configurez une nouvelle connexion avec celui-ci. Consultez les instructions de configuration Windows pour une procédure plus détaillée et des informations de dépannage.

Linux

Les clients Linux peuvent utiliser WireGuard ou IPsec :

WireGuard : WireGuard fonctionne très bien avec les clients Linux. Consultez le guide de configuration WireGuard pour Linux pour des instructions pas à pas sur la configuration de WireGuard sur Ubuntu et d'autres distributions.

IPsec : Pour les clients IPsec strongSwan (y compris OpenWrt, Ubuntu Server et d'autres distributions), consultez le guide de configuration IPsec pour Linux pour des instructions de configuration détaillées.

OpenWrt

Pour les routeurs OpenWrt utilisant WireGuard, consultez le guide de configuration WireGuard pour OpenWrt pour des instructions de configuration spécifiques au routeur.

Autres appareils

Pour les appareils non couverts ci-dessus ou pour une configuration manuelle, vous aurez besoin de fichiers de certificat et de configuration spécifiques. Les fichiers nécessaires dépendent de la plateforme de votre appareil et du protocole VPN (WireGuard ou IPsec).

  • ipsec/manual/cacert.pem : Certificat de l'autorité de certification
  • ipsec/manual/.p12 : Certificat utilisateur et clé privée (au format PKCS#12)
  • ipsec/manual/.conf : Configuration client strongSwan
  • ipsec/manual/.secrets : Configuration client strongSwan
  • ipsec/apple/.mobileconfig : Profil Apple
  • wireguard/.conf : Profil de configuration WireGuard
  • wireguard/.png : Code QR de configuration WireGuard

Configurer un tunnel SSH

Si vous avez activé le rôle optionnel de tunneling SSH, des comptes d'utilisateurs locaux seront créés pour chaque utilisateur dans config.cfg, et leurs fichiers authorized_key SSH se trouveront dans le répertoire configs (user.pem). Les comptes utilisateur SSH n'ont pas d'accès shell, ne peuvent pas s'authentifier avec un mot de passe et n'ont que des options de tunneling limitées (par exemple, ssh -N est requis). Cela garantit que les utilisateurs SSH ont le minimum d'accès requis pour configurer un tunnel et ne peuvent effectuer aucune autre action sur le serveur Algo.

Utilisez l'exemple de commande ci-dessous pour démarrer un tunnel SSH en remplaçant <utilisateur> et <ip> par les vôtres. Une fois le tunnel configuré, vous pouvez configurer un navigateur ou une autre application pour utiliser 127.0.0.1:1080 comme proxy SOCKS afin d'acheminer le trafic via le serveur Algo :

root@kitploit:~
ssh -D 127.0.0.1:1080 -f -q -C -N <utilisateur>@algo -i configs/<ip>/ssh-tunnel/<utilisateur>.pem -F configs/<ip>/ssh_config

Connexion SSH au serveur Algo

Votre serveur Algo est configuré pour un accès SSH par clé uniquement à des fins administratives. Ouvrez l'application Terminal, cd dans le répertoire algo-master où vous avez téléchargé Algo, puis utilisez la commande indiquée dans le message de succès :

root@kitploit:~
ssh -F configs/<ip>/ssh_config <nom_hôte>

où <ip> est l'adresse IP de votre serveur Algo. Si vous vous connectez régulièrement au serveur, il sera utile de charger automatiquement votre clé SSH Algo. Ajoutez l'extrait suivant à la fin de ~/.bash_profile pour l'ajouter définitivement à votre environnement shell :

root@kitploit:~
ssh-add ~/.ssh/algo > /dev/null 2>&1

Alternativement, vous pouvez choisir d'inclure la configuration générée pour tous les serveurs Algo créés dans votre configuration SSH. Modifiez le fichier ~/.ssh/config pour inclure cette directive en haut :

root@kitploit:~
Include <répertoirealgo>/configs/*/ssh_config

où <répertoirealgo> est le répertoire dans lequel vous avez cloné Algo.

Ajout ou suppression d'utilisateurs

Algo facilite l'ajout ou la suppression d'utilisateurs de votre serveur VPN après le déploiement initial.

Pour les utilisateurs IPsec : Vous devez avoir sélectionné yes à l'invite Do you want to retain the keys (PKI)? lors du déploiement initial du serveur. Cela préserve l'autorité de certification nécessaire à la gestion des utilisateurs. Vous devez également conserver les mots de passe de la clé p12 et de la clé CA affichés lors du déploiement, car ils ne sont affichés qu'une seule fois.

Pour ajouter ou supprimer des utilisateurs, modifiez d'abord la liste users dans votre fichier config.cfg. Ajoutez de nouveaux noms d'utilisateur ou supprimez ceux qui existent, selon vos besoins. Ensuite, naviguez vers le répertoire algo dans votre terminal et exécutez :

macOS/Linux :

root@kitploit:~
./algo update-users

Windows :

root@kitploit:~
.\algo.ps1 update-users

Une fois le processus terminé, de nouveaux fichiers de configuration seront générés dans le répertoire configs pour les nouveaux utilisateurs. Le serveur VPN Algo sera mis à jour pour ne contenir que les utilisateurs listés dans le fichier config.cfg. Les utilisateurs supprimés ne pourront plus se connecter, et les nouveaux utilisateurs disposeront de certificats et fichiers de configuration frais, prêts à l'emploi.

Confidentialité et journalisation

Algo adopte une approche pragmatique de la confidentialité. Par défaut, nous minimisons la journalisation tout en conservant suffisamment d'informations pour la sécurité et le dépannage.

Ce qui EST journalisé par défaut :

  • Événements de sécurité système (tentatives SSH échouées, blocages du pare-feu, mises à jour système)
  • Messages du noyau et diagnostics de démarrage (avec une verbosité réduite)
  • État du client WireGuard (visible via sudo wg – montre la dernière extrémité et l'heure de la poignée de main)
  • Statut de base des services (démarrages/arrêts/erreurs de service)
  • Tous les journaux sont automatiquement archivés et supprimés après 7 jours

La confidentialité est contrôlée par deux paramètres principaux dans config.cfg :

  • strongswan_log_level: -1 – Contrôle la journalisation des connexions StrongSwan (-1 = désactivé, 2 = débogage)
  • privacy_enhancements_enabled: true – Interrupteur principal pour la rotation des journaux, l'effacement de l'historique, le filtrage des journaux et le nettoyage

Pour activer le débogage complet lors du dépannage, définissez à la fois strongswan_log_level: 2 et privacy_enhancements_enabled: false. Cela capturera des journaux de connexion détaillés et désactivera toutes les fonctionnalités de confidentialité. N'oubliez pas d'annuler ces modifications après le débogage.

Après le déploiement, vérifiez vos paramètres de confidentialité :

root@kitploit:~
ssh -F configs/<adresse_serveur>/ssh_config <nom_hôte>
sudo /usr/local/bin/privacy-monitor.sh

Une confidentialité parfaite est impossible avec n'importe quelle solution VPN. Votre fournisseur cloud voit et journalise les métadonnées du trafic réseau, quelle que soit la configuration de votre serveur. Et bien sûr, votre FAI sait que vous vous connectez à un serveur VPN, même s'il ne peut pas voir ce que vous faites à travers.

Pour le plus haut niveau de confidentialité, traitez vos serveurs Algo comme jetables. Créez une nouvelle instance lorsque vous en avez besoin, utilisez-la pour votre objectif spécifique, puis détruisez-la complètement. La nature éphémère de l'infrastructure cloud peut être une fonctionnalité de confidentialité si vous l'utilisez intentionnellement.

Documentation supplémentaire

  • FAQ
  • Dépannage
  • Comment Algo utilise les pare-feu

Instructions de configuration pour des fournisseurs cloud spécifiques

  • Configurer Amazon EC2
  • Configurer Azure
  • Configurer DigitalOcean
  • Configurer Google Cloud Platform
  • Configurer Vultr
  • Configurer CloudStack
  • Configurer Hetzner Cloud

Installer et déployer à partir de plateformes courantes

  • Déployer à partir de macOS
  • Déployer à partir de Windows
  • Déployer à partir de Google Cloud Shell
  • Déployer à partir d'un conteneur Docker

Configurer les clients VPN pour se connecter au serveur

  • Configurer les clients Windows
  • Configurer les clients Android
  • Configurer les clients Linux avec Ansible
  • Configurer les clients Ubuntu pour utiliser WireGuard
  • Configurer les clients Linux pour utiliser IPsec
  • Configurer les appareils Apple pour utiliser IPsec
  • Configurer les Macs sous macOS 10.13 ou plus anciens pour utiliser WireGuard

Déploiement avancé

  • Déployer sur votre propre serveur Ubuntu et configuration road warrior
  • Déployer à partir d'Ansible de manière non interactive
  • Déployer sur un serveur cloud au moment de la création avec un script shell ou cloud-init
  • Déployer sur un fournisseur cloud non pris en charge

Si vous avez lu toute la documentation et avez d'autres questions, créez une nouvelle discussion.

Recommandations

Je me plains de l'état lamentable des services VPN depuis si longtemps, il est probablement temps de donner une vraie conférence sur le sujet. En résumé : utilisez Algo.

-- Kenn White

Avant de choisir un fournisseur/application VPN, assurez-vous de faire quelques recherches https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – ou envisagez Algo

-- The Register

Algo est vraiment facile et sécurisé.

-- the grugq

J'ai joué avec Algo VPN, un ensemble de scripts qui vous permettent de configurer un VPN dans le cloud en très peu de temps, même si vous ne connaissez pas grand-chose au développement. Je dois dire que j'ai été assez impressionné par l'approche de Trail of Bits.

-- Romain Dillet pour TechCrunch

Si vous n'êtes pas à l'aise de donner de l'argent à un fournisseur VPN anonyme et aléatoire, c'est la meilleure solution.

-- Thorin Klosowski pour Lifehacker

Contribuer

Consultez notre Guide de développement pour des informations sur :

  • La configuration de votre environnement de développement
  • L'utilisation de hooks pre-commit pour la qualité du code
  • L'exécution de tests et de linters
  • La contribution de code via des pull requests

Soutenir Algo VPN

PayPal Patreon

Tous les dons soutiennent le développement continu. Merci !

  • Nous acceptons les dons via PayPal et Patreon.
  • Utilisez notre code de parrainage lorsque vous vous inscrivez à Digital Ocean pour obtenir un crédit de 10 $.
  • Nous acceptons et apprécions également les contributions de nouveau code et de corrections de bugs via les pull requests GitHub.

Algo est sous licence et distribué selon les termes de l'AGPLv3. Si vous souhaitez distribuer une modification ou un service closed-source basé sur Algo, veuillez envisager d'acheter une exception. Comme pour les méthodes ci-dessus, cela aidera à soutenir le développement continu.

Télécharger l’outil
users
peut vous obliger à déployer un tout nouveau serveur
  • Lancez le déploiement. Revenez à votre terminal. Dans le répertoire Algo, exécutez le script approprié pour votre plateforme :

    macOS/Linux :

    root@kitploit:~
    ./algo
    

    Windows :

    root@kitploit:~
    .\algo.ps1
    

    La première fois que vous exécutez le script, il installera automatiquement l'environnement Python requis (Python 3.11+). Lors des exécutions suivantes, il démarre immédiatement et fonctionne sur toutes les plateformes (macOS, Linux, Windows via WSL). Le script PowerShell Windows utilise automatiquement WSL si nécessaire, car Ansible nécessite un environnement de type Unix. Plusieurs fonctionnalités optionnelles sont disponibles, dont aucune n'est requise pour un serveur VPN pleinement fonctionnel. Ces fonctionnalités optionnelles sont décrites dans la documentation de déploiement.