Comment configurer le VPN Hailbytes pour votre environnement AWS

Introduction

Dans cet article, nous verrons comment configurer HailBytes VPN sur votre réseau, un VPN et un pare-feu simples et sécurisés pour votre réseau. De plus amples détails et des spécifications spécifiques peuvent être trouvés dans notre documentation développeur liée ici.

Préparation

   1. Besoins en ressources :

  • Nous vous recommandons de commencer avec 1 vCPU et 1 Go de RAM avant d'effectuer une mise à l'échelle.
  • Pour les déploiements basés sur Omnibus sur des serveurs avec moins de 1 Go de mémoire, vous devez activer le swap pour éviter que le noyau Linux ne tue de manière inattendue les processus Firezone.
  • 1 vCPU devrait suffire à saturer une liaison 1 Gbps pour le VPN.
 

   2.  Créer un enregistrement DNS : Firezone nécessite un nom de domaine approprié pour une utilisation en production, par exemple firezone.company.com. La création d'un enregistrement DNS approprié tel qu'un enregistrement A, CNAME ou AAAA sera nécessaire.

   3.  Configurer SSL : vous aurez besoin d'un certificat SSL valide pour utiliser Firezone en capacité de production. Firezone prend en charge ACME pour le provisionnement automatique des certificats SSL pour les installations basées sur Docker et Omnibus.

   4.  Ports de pare-feu ouverts : Firezone utilise les ports 51820/udp et 443/tcp pour le trafic HTTPS et WireGuard respectivement. Vous pouvez modifier ces ports ultérieurement dans le fichier de configuration.

Déployer sur Docker (recommandé)

   1. Prérequis :

  • Assurez-vous que vous êtes sur une plate-forme prise en charge avec docker-compose version 2 ou supérieure installée.

 

  • Assurez-vous que la redirection de port est activée sur le pare-feu. Les valeurs par défaut nécessitent que les ports suivants soient ouverts :

         o 80/tcp (optionnel) : émission automatique de certificats SSL

         o 443/tcp : Accéder à l'interface utilisateur Web

         o 51820/udp : port d'écoute du trafic VPN

  2.  Installer l'option de serveur I : installation automatique (recommandé)

  • Run installation script: bash <(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh) 1889d1a18e090c-0ec2bae288f1e2-26031d51-144000-1889d1a18e11c6c

 

  • Il vous posera quelques questions concernant la configuration initiale avant de télécharger un exemple de fichier docker-compose.yml. Vous voudrez le configurer avec vos réponses et imprimer les instructions pour accéder à l'interface utilisateur Web.

 

  • Adresse par défaut de Firezone : $HOME/.firezone.
 

  2.  Installer le serveur Option II : Installation manuelle

  • Téléchargez le modèle de composition docker dans un répertoire de travail local

          – Linux : curl -fsSL https://raw.githubusercontent.com/firezone/firezone/master/docker-compose.prod.yml -o docker-compose.yml

          – macOS ou Windows : curl -fsSL https://raw.githubusercontent.com/firezone/firezone/master/docker-compose.desktop.yml -o docker-compose.yml

  • Générez les secrets requis : docker run –rm firezone/firezone bin/gen-env > .env

 

  • Modifiez les variables DEFAULT_ADMIN_EMAIL et EXTERNAL_URL. Modifiez les autres secrets si nécessaire.

 

  • Migrer la base de données : docker compose run –rm firezone bin/migrate

 

  • Créez un compte administrateur : docker compose run –rm firezone bin/create-or-reset-admin

 

  • Afficher les services : docker composer up -d

 

  • Vous devriez pouvoir accéder à l'interface utilisateur de Firezome via la variable EXTERNAL_URL définie ci-dessus.
 

   3. Activer au démarrage (facultatif) :

  • Assurez-vous que Docker est activé au démarrage : sudo systemctl enable docker

 

  • Les services Firezone doivent avoir l'option restart : always ou restart : until-stopped spécifiée dans le fichier docker-compose.yml.

   4. Activez la routabilité publique IPv6 (facultatif) :

  • Ajoutez ce qui suit à /etc/docker/daemon.json pour activer le NAT IPv6 et configurer le transfert IPv6 pour les conteneurs Docker.

 

  • Activez les notifications du routeur au démarrage pour votre interface de sortie par défaut : egress=`ip route show default 0.0.0.0/0 | grep -oP '(?<=dev ).*' | couper -f1 -d' ' | tr -d '\n'` sudo bash -c "echo net.ipv6.conf.${egress}.accept_ra=2 >> /etc/sysctl.conf"

 

  • Redémarrez et testez en envoyant un ping à Google depuis le conteneur Docker : docker run –rm -t busybox ping6 -c 4 google.com

 

  • Pas besoin d'ajouter de règles iptables pour activer le SNAT/masquerading IPv6 pour le trafic tunnelisé. Firezone s'en chargera.
 

   5. Installez les applications clientes

        Vous pouvez maintenant ajouter des utilisateurs à votre réseau et configurer des instructions pour établir une session VPN.

Post-configuration

Félicitations, vous avez terminé la configuration ! Vous pouvez consulter notre documentation pour les développeurs pour des configurations supplémentaires, des considérations de sécurité et des fonctionnalités avancées : https://www.firezone.dev/docs/