Deployer un hub VPN auto-heberge et fournir un profil VPN aux utilisateurs iPhone, en dehors de l'application NetGo.
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.
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.
Un petit service HTTPS sur le port 8443, le seul composant NetGo joignable depuis internet.
Le coffre. Detient l'etat sensible et n'a aucune interface reseau.
Le moteur de tunnel et de routage joignant les firewalls et les telephones nomades.
Chaque hub est sa propre autorite de certification. Aucune racine partagee entre deploiements.
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.
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 |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 1 GB | 2 GB |
| Disque | 10 GB | 20 GB |
| Element | Exigence |
|---|---|
| OS | Ubuntu ou Debian |
| Adresse | IP publique statique |
| UDP 500 | IKE |
| UDP 4500 | IPsec NAT-T |
| TCP 8443 | Enrolement + profil |
| Acces | Root, pour l'install |
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 |
|---|
Copiez cette commande et executez-la en root sur une VM Ubuntu ou Debian propre.
Lit l'architecture, trouve l'interface WAN, confirme l'adresse publique.
Cree les utilisateurs non privilegies, installe strongSwan, FRR, l'outillage pare-feu, et telecharge les binaires des services.
Genere les certificats racine, intermediaire, serveur VPN et TLS d'enrolement en ECDSA P-256.
Ecrit les connexions FortiGate et nomades avec une PSK fraiche, et configure eBGP via FRR.
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.
Imprime l'adresse publique, la PSK FortiGate generee (affichee une fois), et la commande pour creer une invitation utilisateur.
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'
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 |
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
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.
Sur le hub deploye, un administrateur cree une invitation a usage unique. La commande imprime l'URL d'enrolement.
sudo netgo-vpn-invite --label "iPhone d'Alice" --ttl-hours 72
Ouvrez l'URL d'enrolement depuis un ordinateur (Mac ou PC), PAS sur l'iPhone :
https://<hub-ip>:8443/enroll?token=<invitation>&lang=fr
La page est bilingue : lang=fr pour le francais, lang=en pour l'anglais, ou le bouton EN/FR sur la page.
Sur la page, telechargez le fichier .mobileconfig. L'invitation est a usage unique : elle est consommee a la generation du profil.
Envoyez le fichier .mobileconfig a l'utilisateur, en piece jointe d'un courriel.
Aucune connexion automatique (pas d'on-demand) : le VPN se connecte et se deconnecte a la main.
Pour retirer l'acces d'un appareil, revoquez son invitation ou son identifiant sur le hub. L'utilisateur peut aussi supprimer le profil dans les Reglages iOS.