NetGo - VPN out-of-band

Deployer un hub VPN auto-heberge et fournir un profil VPN aux utilisateurs iPhone, en dehors de l'application NetGo.

Francais  |  English

Vue d'ensemble

Le hub est une machine auto-hebergee qui termine le VPN et joint vos FortiGate. Chaque hub est exploite par son propre operateur : le fournisseur n'exploite aucun serveur dans le chemin et ne detient rien. Les donnees confidentielles vivent sur le hub ou sur l'appareil.

iPhone Native iOS IKEv2 Installed profile NetGo hub Operator VM Frontal, HTTPS :8443 Signer, local socket strongSwan, FRR/BGP FortiGate IPsec + eBGP spoke Management in a VRF IKEv2 tunnel IPsec + BGP Le profil VPN est genere par le hub et installe manuellement sur l'iPhone (VPN natif iOS).

Composants

Tout ce qui est joignable depuis le reseau ne detient aucun secret durable ; tout ce qui detient un secret n'est pas joignable depuis le reseau.

Hub, expose au reseau

Service frontal d'enrolement

Un petit service HTTPS sur le port 8443, le seul composant NetGo joignable depuis internet.

  • Sert la page d'enrolement (EN/FR)
  • Genere et sert le profil .mobileconfig
  • Protege par une invitation a usage unique
  • Ne detient aucun secret durable propre
Hub, isole

Service signer

Le coffre. Detient l'etat sensible et n'a aucune interface reseau.

  • Joignable uniquement par un socket local
  • Valide l'invitation et le quota
  • Genere le secret de l'appareil, chiffre au repos
  • Reecrit le fichier de secrets strongSwan
Hub, transport

strongSwan et FRR

Le moteur de tunnel et de routage joignant les firewalls et les telephones nomades.

  • IPsec route vers chaque FortiGate spoke
  • eBGP via FRR entre hub et spokes
  • IKEv2 avec EAP pour les iPhones nomades
  • Certificat serveur ECDSA P-256
Confiance

PKI par hub

Chaque hub est sa propre autorite de certification. Aucune racine partagee entre deploiements.

  • Racine et intermediaire generes localement a l'install
  • ECDSA P-256 partout
  • Signe le certificat serveur VPN
  • La racine est incluse dans le .mobileconfig pour la confiance iOS

Plan de gestion et onboarding FortiGate

Chaque FortiGate gere rejoint le hub comme spoke IPsec route avec une session eBGP, donc les routes sont echangees dynamiquement. Ensuite le hub joint l'interface de gestion du firewall a travers le tunnel.

La gestion vit dans une VRF dediee. Sur chaque FortiGate, le tunnel qui porte le trafic de gestion est lie a une VRF dediee. Son identifiant est choisi lors de l'onboarding et est obligatoire, donc le chemin de gestion reste dans sa propre table de routage, separee de la production.

Prerequis

Le hub est une charge legere : strongSwan, FRR et deux petits services sur une machine Ubuntu ou Debian standard, sans serveur de base de donnees ni conteneurs. Une petite instance cloud suffit.

Ressource Minimum Recommande
CPU1 vCPU2 vCPU
RAM1 GB2 GB
Disque10 GB20 GB
Element Exigence
OSUbuntu ou Debian
AdresseIP publique statique
UDP 500IKE
UDP 4500IPsec NAT-T
TCP 8443Enrolement + profil
AccesRoot, pour l'install
Sur les instances cloud, verifiez aussi le pare-feu du fournisseur. L'installeur ouvre les ports requis sur l'hote, mais beaucoup de fournisseurs imposent aussi leur propre couche reseau (un security group ou une regle de forwarding par defaut) devant l'instance. Celle-ci doit autoriser les memes ports de tunnel et d'enrolement.

Options de configuration

Chaque option a une valeur par defaut validee. Laissez une ligne telle quelle pour garder le defaut, ou cochez Override pour definir votre valeur. La commande d'installation ci-dessous se met a jour automatiquement ; seules les options surchargees y figurent.

Option Defaut Override Votre valeur Role

Commande d'installation

Copiez cette commande et executez-la en root sur une VM Ubuntu ou Debian propre.

iCe que l'installeur execute, dans l'ordre

1

Detection de l'environnement

Lit l'architecture, trouve l'interface WAN, confirme l'adresse publique.

2

Comptes de service et paquets

Cree les utilisateurs non privilegies, installe strongSwan, FRR, l'outillage pare-feu, et telecharge les binaires des services.

3

Autorite de certification par hub

Genere les certificats racine, intermediaire, serveur VPN et TLS d'enrolement en ECDSA P-256.

4

strongSwan et routage

Ecrit les connexions FortiGate et nomades avec une PSK fraiche, et configure eBGP via FRR.

5

Services et pare-feu

Installe le signer et le frontal comme services geres, ouvre les ports de tunnel et d'enrolement, met le chemin de forwarding, et demarre le tout.

6

Remise a l'operateur

Imprime l'adresse publique, la PSK FortiGate generee (affichee une fois), et la commande pour creer une invitation utilisateur.

La PSK FortiGate est imprimee une seule fois a la fin. Copiez-la dans chaque FortiGate (identite de peer mgmt-fgt-hub par defaut). L'option --psk-id definit l'identite du peer, pas la valeur de la cle.

Verifier le hub

curl -k https://<hub-ip>:8443/health              # -> ok
sudo swanctl --list-conns 2>/dev/null | grep -E 'fgt|ios-rw'
sudo vtysh -c 'show bgp summary'

Onboarding avance : valeurs a reporter dans l'app

Quand vous onboardez un FortiGate depuis l'app NetGo (Onboarding avance), plusieurs champs doivent correspondre aux valeurs choisies lors de l'installation du hub. Le tableau ci-dessous montre exactement quoi saisir, selon vos options ci-dessus. Laissez le formulaire tel quel pour voir les defauts.

Champ app (onboarding) Valeur a saisir
Hub public IP / IP publique du hub
Pre-shared key (PSK) / Cle pre-partagee
Transit subnet / Subnet transit
Loopback subnet / Subnet loopback
Hub ASN / ASN hub
FortiGate ASN / ASN FortiGate
Choisis par FortiGate dans l'app, pas depuis l'install du hub : Numero du FortiGate (index) et VRF de gestion (obligatoire, choisissez un id de VRF a l'onboarding). L'IP tunnel FGT et l'IP loopback sont ensuite auto-derivees par l'app depuis l'index (pour l'index 1 : tunnel 10.255.0.2, loopback 100.127.255.1).

Donner l'acces VPN a un utilisateur

Sur le hub, creez une invitation a usage unique. La commande imprime l'URL d'enrolement a utiliser cote client (voir Deploiement client).

sudo netgo-vpn-invite --label "iPhone d'Alice" --ttl-hours 72

Desinstaller un hub

Un script compagnon annule l'installation. Par defaut il conserve les donnees et la PKI (reinstallation sans perdre les appareils enroles). Ajoutez --purge pour tout effacer : appareils enroles, cle maitre et cle racine.

sudo ./netgo-uninstall-hub.sh            # keep data and PKI
sudo ./netgo-uninstall-hub.sh --purge    # erase everything

La desinstallation detecte le pool d'adresses depuis la configuration active, donc elle retire les bonnes regles de pare-feu sans edition manuelle.