Tutoriel

VPN mesh sans port ouvert avec NetBird sur VPS

Sécurité & Monitoring8 min de lecture5 étapes

Dix clients, dix accès VPS différents, dix jeux de clés WireGuard à maintenir à la main. Pour chaque nouveau poste d'administrateur ou bureau distant, il faut rouvrir un pare-feu, redistribuer une clé, mettre à jour les configurations sur chaque nœud. Ce modèle échoue à l'échelle. NetBird 0.76 résout ce problème en automatisant entièrement la découverte des pairs, la traversée NAT et les relais TURN — et sa commande `netbird expose` permet de rendre un service interne accessible depuis le mesh sans ouvrir un seul port public sur Internet.

Sommaire· Le problème : gérer dix tunnels WireGuard manuels1/7
  1. 01Le problème : gérer dix tunnels WireGuard manuels
  2. 02Prérequis avant de commencer
  3. 03Connecter un VPS ServOrbit à un réseau NetBird
  4. 04`netbird expose` : un service interne sans port public
  5. 05Cas d'usage agence : connecter VPS client, bureau et poste admin
  6. 06Dépannage : 3 problèmes fréquents
  7. 07Conclusion : moins de règles de pare-feu, plus de sécurité réelle

Le problème : gérer dix tunnels WireGuard manuels

WireGuard est excellent — rapide, moderne, cryptographiquement solide. Mais son modèle de configuration est statique : chaque pair doit connaître l'IP publique et la clé publique de tous ses homologues. Dans un parc de dix clients avec des postes nomades, des bureaux derrière du CGNAT et des VPS à IPs variables, vous passez plus de temps à synchroniser des fichiers wg0.conf qu'à faire du travail productif. Ajoutez un VPS, modifiez la liste des pairs sur neuf machines. Retirez un technicien, révocationnez sa clé partout. Un sous-réseau change ? Recommencez. C'est le cauchemar opérationnel que NetBird a été conçu pour éliminer.

  • Mesh automatique : NetBird gère le plan de contrôle — chaque nouveau pair s'annonce, les autres le découvrent sans intervention manuelle.
  • Traversée NAT et CGNAT : NetBird utilise STUN pour établir des connexions pair-à-pair directes à travers les NAT résidentiels et d'entreprise.
  • Relais TURN automatique : quand la connexion directe est impossible (pare-feu strict, double NAT), NetBird bascule silencieusement sur un relais chiffré.
  • Audit d'accès granulaire : les politiques de contrôle d'accès définissent quels pairs peuvent joindre quels services — visible depuis le tableau de bord.
  • Open source (BSD-3 pour le client, AGPLv3 pour le plan de contrôle) : pas de vendor lock-in, auto-hébergement possible.

Prérequis avant de commencer

Avant d'installer NetBird, vérifiez que votre infrastructure répond aux prérequis suivants.

  • Un VPS ServOrbit sous Ubuntu 22.04/24.04 ou Debian 12, avec accès root.
  • Un compte NetBird Cloud (gratuit jusqu'à 5 pairs) ou un plan de contrôle self-hosted déjà en place (voir l'article dédié au déploiement du contrôleur).
  • Les ports sortants 443 (HTTPS/WSS) et 3478 (STUN/UDP) non bloqués depuis le VPS — vérifiable avec nc -vzu stun.netbird.io 3478.
  • La feature Peer Expose activée sur votre compte (disponible sur les plans Team et supérieurs, ou sur un plan de contrôle self-hosted).

Connecter un VPS ServOrbit à un réseau NetBird

Voici la procédure complète pour connecter un VPS ServOrbit à votre réseau mesh NetBird.

  1. Installer l'agent NetBird

    Sur le VPS, ajoutez le dépôt officiel et installez le paquet :

    curl -fsSL https://pkgs.netbird.io/install.sh | sh

    Vérifiez la version installée : netbird version doit afficher 0.76.x.

  2. Générer une clé d'activation

    Dans le tableau de bord NetBird (app.netbird.io ou votre instance self-hosted), rendez-vous dans Setup Keys et créez une clé réutilisable ou à usage unique. Copiez-la — elle ne s'affiche qu'une fois.

  3. Connecter le pair au plan de contrôle

    Sur le VPS :

    netbird up --setup-key <VOTRE_SETUP_KEY>

    Pour un plan de contrôle self-hosted, ajoutez --management-url https://netbird.votre-domaine.com:443. La commande retourne immédiatement ; le pair apparaît dans le tableau de bord sous quelques secondes.

  4. Ajouter le pair au groupe réseau

    Dans l'interface NetBird, naviguez vers Peers, sélectionnez le nouveau VPS et ajoutez-le au groupe souhaité (ex. clients-agence). Les politiques d'accès liées à ce groupe s'appliquent immédiatement — pas de redémarrage nécessaire.

  5. Vérifier la connectivité mesh

    Depuis un autre pair déjà dans le réseau :

    netbird status
    # liste les pairs joignables avec leur IP mesh (100.x.x.x) et le statut de connexion
    ping 100.x.x.x  # IP mesh du nouveau VPS

    Un ping qui répond confirme que le tunnel est établi. Si le pair est direct, vous verrez direct dans le statut ; sinon relayed via un serveur TURN.

`netbird expose` : un service interne sans port public

La commande netbird expose, disponible depuis la version 0.66 et consolidée dans la branche 0.76, permet de rendre un service qui écoute localement (sur 127.0.0.1 ou un réseau privé) accessible depuis Internet via le proxy inverse de NetBird — sans ouvrir un seul port sur le pare-feu du VPS. Le service créé est éphémère : il disparaît automatiquement à l'arrêt de la commande.

Exemple concret : votre panneau de supervision (Grafana, Netdata) écoute sur localhost:3000 et ne doit être accessible que depuis les membres autorisés du réseau mesh. Sans netbird expose, vous seriez tenté d'ouvrir le port 3000 publiquement ou de monter un tunnel SSH. Avec NetBird :

netbird expose --protocol http \
  --local-address localhost:3000 \
  --with-user-groups supervision-admins

NetBird génère une URL publique en *.tunnel.netbird.io (ou votre domaine custom avec --with-custom-domain). Seuls les utilisateurs authentifiés appartenant au groupe supervision-admins peuvent y accéder — les autres obtiennent une erreur 403. Le port 3000 du VPS reste fermé au niveau du pare-feu.

Pour un accès protégé par mot de passe sans SSO, ajoutez --with-password : NetBird affiche un mot de passe aléatoire que vous communiquez à vos collaborateurs. Pratique pour un accès d'urgence à un client sans compte dans votre tenant NetBird.

Cas d'usage agence : connecter VPS client, bureau et poste admin

Voici l'architecture type pour une agence qui gère dix clients indépendants. Chaque client dispose d'un VPS ServOrbit. L'agence a un bureau avec un accès Internet standard et plusieurs postes d'administrateurs nomades.

Topologie NetBird recommandée : Créez un groupe par client (ex. client-acme, client-contoso). Le VPS de chaque client est membre de son groupe client. Les postes d'admin sont membres de leur groupe client respectif — et uniquement celui-là. Une politique d'accès relie chaque groupe à lui-même. Résultat : l'admin du client ACME peut joindre le VPS ACME via son IP mesh (100.x.x.x) mais ne voit pas le VPS Contoso. Le bureau de l'agence est dans un groupe agence-ops qui a accès à tous les groupes clients — c'est le seul pair transversal.

Pour déployer depuis le bureau de l'agence vers le VPS d'un client, plus aucun port SSH public n'est nécessaire. La commande ssh [email protected] transite entièrement dans le tunnel mesh chiffré. Le pare-feu du VPS client ne voit que le trafic venant de l'IP mesh de l'agence — bloquez tout le reste avec une règle UFW simple :

ufw allow in on netbird0 to any port 22
ufw deny 22

Le port 22 est fermé publiquement mais ouvert sur l'interface mesh netbird0.

Faites défiler le tableau

CritèreNetBird 0.76TailscaleWireGuard manuel
Gestion des pairsAutomatique (plan de contrôle centralisé)Automatique (cloud Tailscale)Manuelle (fichiers wg0.conf sur chaque nœud)
Traversée NAT/CGNATSTUN + TURN automatiqueSTUN + DERP automatiqueRequiert IP publique ou port-forward
Modèle de prixGratuit jusqu'à 5 pairs ; plans Team/Business ; self-hosted gratuitGratuit jusqu'à 3 utilisateurs ; plans payants pour équipesGratuit (logiciel), coût opérationnel en temps
Open sourceOui (BSD-3 client, AGPLv3 serveur)Client open source (BSD-3), serveur propriétaireOui (GPLv2 kernel, MIT userland)
Expose un service sans port ouvertOui (`netbird expose`)Non (Funnel disponible mais différent)Non natif (tunnel SSH manuel)
Audit et politiques d'accèsInterface web complète, groupes et politiquesACL via fichier HuJSON, interface webAucun — uniquement AllowedIPs par pair

Dépannage : 3 problèmes fréquents

1. Pair non joignable (Status: Disconnected) — Lancez netbird status --detail pour voir l'état ICE. Si vous voyez no candidate pairs, le problème est réseau : vérifiez que le port 3478/UDP sortant est ouvert (nc -vzu stun.netbird.io 3478). Si la connexion directe échoue mais que le TURN est disponible, NetBird bascule automatiquement — un ping qui fonctionne mais avec une latence plus élevée indique un relais TURN actif.

2. STUN/TURN bloqué par le pare-feu d'entreprise — Certains réseaux d'entreprise bloquent UDP sortant. NetBird supporte TURN sur TCP/443, ce qui passe à travers la quasi-totalité des proxies HTTP. Configurez dans le tableau de bord : Settings → Relay → Force TCP. La connexion sera légèrement plus lente mais fonctionnelle.

3. Lire les logs pour un diagnostic précis — Sur Linux avec systemd :

journalctl -u netbird -f --since '5 minutes ago'

Les messages à surveiller : failed to connect, signal disconnected (problème de plan de contrôle), peer connected via relay (TURN actif). Pour augmenter la verbosité : netbird up --log-level debug.

Politique de contrôle d'accès : dans Access Control → Policies, créez une règle qui autorise uniquement le groupe agence-ops à atteindre le port 22 des groupes clients. Les autres ports (80, 443) peuvent être accessibles au groupe client lui-même. Cette granularité évite qu'un poste compromis dans le mesh ne serve de pivot vers tous les VPS clients.

Conclusion : moins de règles de pare-feu, plus de sécurité réelle

NetBird 0.76 représente un changement de paradigme pour la gestion d'un parc VPS distribué. Au lieu de multiplier les règles UFW et les clés WireGuard statiques, vous définissez des groupes et des politiques une fois — et le plan de contrôle s'occupe du reste. La commande netbird expose va plus loin encore : elle retire physiquement des services de l'exposition Internet sans reconfigurer le pare-feu. Pour une agence qui gère dix clients ou une entreprise avec des bureaux distribués, c'est la réduction de surface d'attaque la plus impactante par heure investie. L'architecture mesh zero-trust de NetBird, combinée aux VPS ServOrbit, vous donne un réseau privé d'agence opérationnel en une heure.

Besoin d'une infrastructure sécurisée pour votre agence ?

Nos offres agence incluent des VPS dédiés, un support technique dédié et une architecture réseau adaptée à la gestion multi-clients. Découvrez comment nous pouvons simplifier votre infrastructure.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet