Initial vault setup
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
---
|
||||
title: NetBird
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, vpn, mesh, wireguard, zerotrust, nat-traversal, go, tailscale-alternative]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=VPN, https://github.com/netbirdio/netbird]
|
||||
---
|
||||
|
||||
# 🔐 NetBird
|
||||
|
||||
> **Le challenger open source de Tailscale** — mesh VPN WireGuard avec NAT traversal, panel web intégré et posture zero-trust en une seule stack.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [netbird.io](https://netbird.io/) |
|
||||
| **GitHub** | [netbirdio/netbird](https://github.com/netbirdio/netbird) |
|
||||
| **License** | Apache-2.0 (server) + client propriétaire (mais open source) |
|
||||
| **Langage** | Go + TypeScript (panel) + React (UI) |
|
||||
| **Étoiles GitHub** | 25 773 ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-06 |
|
||||
| **Catégorie** | [[cat-vpn|VPN & Réseau privé]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**NetBird** combine **WireGuard + NAT traversal + un panel web self-hosted** pour offrir une expérience comparable à Tailscale, mais **100% open source** (Apache-2.0) avec un serveur de coordination, un serveur de signalisation STUN/ICE et un serveur de relais TURN entièrement **auto-hébergeables**. Lancé en 2021 par une équipe franco-turque, NetBird a connu une adoption massive (Airbnb, Bosch, Siemens dans la communauté) grâce à son approche "tout-en-un" : pas besoin de Docker Compose à rallonge, tout est fourni.
|
||||
|
||||
Là où Headscale nécessite d'utiliser le client Tailscale officiel et reste focalisé sur le "control plane", NetBird fournit un **client natif `netbird`** (CLI + GUI) **et** un **dashboard web** pour gérer utilisateurs, peers, ACLs, sans dépendre d'un service externe. C'est un concurrent direct de Tailscale avec une proposition de valeur claire : "Tailscale, mais chez vous, sans dépendance cloud".
|
||||
|
||||
- ✅ **Mesh VPN basé sur WireGuard** : performances brutes excellentes
|
||||
- ✅ **NAT traversal** : STUN + ICE + TURN (relais)
|
||||
- ✅ **Panel web intégré** : gestion des users, peers, ACLs, politiques
|
||||
- ✅ **Auth providers** : intégration native **OIDC** ([[app-authentik]], Keycloak, Google, GitHub, Azure AD, Okta, Zitadel…)
|
||||
- ✅ **SSO + MFA** : hérite de votre IdP
|
||||
- ✅ **Posture zero-trust** : vérifications de device (OS, version NetBird, version WireGuard, horloge)
|
||||
- ✅ **MagicDNS** : résolution automatique
|
||||
- ✅ **Routes & Exit nodes** : partager internet ou un sous-réseau LAN
|
||||
- ✅ **Reverse shell** : ouvrir un shell sécurisé sur un peer distant depuis le panel
|
||||
- ✅ **API gRPC + REST**
|
||||
- ✅ **Audit logs** : traçabilité complète des connexions
|
||||
|
||||
**Public cible** : équipes de 5 à 500 personnes, homelabbers qui veulent un **panel web** sans dépendre du SaaS Tailscale, organisations réglementées (santé, finance, OIV). NetBird brille dans les scénarios où vous voulez **une seule stack** pour VPN + SSO + dashboard.
|
||||
|
||||
**Vs Tailscale/Headscale** : Tailscale/Headscale misent sur la **simplicité** (client Tailscale officiel, écosystème mature) ; NetBird mise sur le **panel web intégré** et le **zero-trust explicite** (posture check). Si vous n'avez pas d'IdP et que vous voulez un panel web, NetBird gagne. Si vous aimez le client Tailscale et avez déjà un IdP, Headscale est plus léger.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1 : Docker Compose (auto-hébergé complet)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
# Management server (API + Dashboard + Signal)
|
||||
netbird-server:
|
||||
image: netbirdio/netbird-server:latest
|
||||
container_name: netbird-server
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80" # HTTP (redirection)
|
||||
- "443:443" # HTTPS (API + Dashboard)
|
||||
- "51820:51820/udp" # WireGuard (optionnel si userspace)
|
||||
volumes:
|
||||
- netbird-data:/var/lib/netbird-server
|
||||
environment:
|
||||
- NB_DOMAIN=netbird.example.com
|
||||
- NB_PUBLIC_IP=1.2.3.4
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.netbird.rule=Host(`netbird.example.com`)"
|
||||
- "traefik.http.routers.netbird.entrypoints=websecure"
|
||||
- "traefik.http.routers.netbird.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.netbird.loadbalancer.server.port=443"
|
||||
|
||||
# TURN server (relais pour NAT impossible)
|
||||
coturn:
|
||||
image: coturn/coturn:latest
|
||||
container_name: netbird-turn
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
command: >
|
||||
-n
|
||||
--log-file=stdout
|
||||
--realm=netbird.example.com
|
||||
--use-auth-secret
|
||||
--static-auth-secret=ChangeMeStaticSecret
|
||||
--listening-port=3478
|
||||
--min-port=49160
|
||||
--max-port=49200
|
||||
--external-ip=1.2.3.4
|
||||
|
||||
volumes:
|
||||
netbird-data:
|
||||
```
|
||||
|
||||
> 💡 Le serveur **TURN** (`coturn`) est optionnel mais fortement recommandé : sans lui, le NAT traversal échoue pour ~10-15% des pairs (NAT symétrique, 4G CGN).
|
||||
|
||||
### Option 2 : SaaS managé
|
||||
|
||||
Pour tester : [app.netbird.io](https://app.netbird.io) (offre gratuite généreuse : jusqu'à 5 users, 100 peers).
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **DNS** : pointer `netbird.example.com` vers le serveur, laisser Traefik gérer le HTTPS
|
||||
2. **Premier admin** : créer via `netbird-server create-admin --email admin@example.com`
|
||||
3. **Setup OIDC** (recommandé) : `Settings → Authentication → Add OIDC` et pointer vers [[app-authentik]] / Keycloak
|
||||
4. **Créer des peers** : download le client (Windows/macOS/Linux/iOS/Android), **login** avec SSO
|
||||
5. **Définir les ACLs** : dans le dashboard, créer des groupes (`Admins`, `Devs`) et des règles (qui peut joindre qui)
|
||||
6. **Tester** : depuis un peer, `ping peer-nom.local` (MagicDNS) ou utiliser le **reverse shell** depuis l'UI
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-tailscale]] (SaaS) + [[app-headscale]] (self-hosted) — L'écosystème dominant
|
||||
- [[app-zerotier]] + [[app-ztnet]] — Mesh L2, plus ancien, philosophie différente
|
||||
- [[app-wg-easy]] — WireGuard "plat" sans mesh
|
||||
- **Nebula** (overlay réseau par Slack) — concurrent historique, moins actif
|
||||
- **Pritunl** — OpenVPN/WireGuard avec panel enterprise
|
||||
|
||||
### Propriétaires
|
||||
- **Tailscale** (freemium : 100 devices / 3 users, puis 5$/user/mois)
|
||||
- **Cloudflare Tunnel + WARP** (zero-trust, gratuit avec limites)
|
||||
- **Zscaler Private Access** (enterprise)
|
||||
- **Palo Alto Prisma Access**
|
||||
- **NordLayer** (NordVPN business)
|
||||
|
||||
### Comparaison NetBird vs alternatives
|
||||
|
||||
| Critère | NetBird | Tailscale | Headscale | ZeroTier | Pritunl |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| Self-hosted complet | ✅ | ❌ | ✅ (sans panel) | ❌ (ZTnet partiel) | ✅ |
|
||||
| Panel web intégré | ✅ | ✅ | ❌ (UI tierces) | ❌ | ✅ |
|
||||
| License | Apache-2.0 | Propriétaire | Apache-2.0 | BSL | Apache-2.0 |
|
||||
| Protocole base | WireGuard | WireGuard | WireGuard | Propre L2 | WG/OpenVPN |
|
||||
| OIDC natif | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||
| Posture check | ✅ (intégré) | ❌ (payant) | ❌ | ❌ | Limité |
|
||||
| MagicDNS | ✅ | ✅ | ✅ | ❌ | ❌ |
|
||||
| Reverse shell | ✅ | ❌ (SSH) | ❌ | ❌ | ❌ |
|
||||
| Idempotent setup | ✅ (1 stack) | ❌ (Tailscale cloud) | ⚠️ (multi-composants) | ❌ | ✅ |
|
||||
|
||||
**Verdict** : NetBird est le **meilleur choix "tout-en-un"** open source pour qui veut éviter Tailscale. Headscale reste plus léger si vous êtes déjà à l'aise avec le CLI et aimez le client Tailscale.
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- ✅ **WireGuard moderne** : Curve25519, ChaCha20-Poly1305, BLAKE2s — code audité, surface d'attaque minimale
|
||||
- ⚠️ **Visibilité des IPs publiques** : WireGuard route au niveau IP, le serveur de coordination voit les métadonnées réseau de vos peers (qui parle à qui). Pour l'anonymat, combiner avec Tor
|
||||
- ✅ **Chiffrement bout-en-bout** : les paquets WireGuard ne sont déchiffrables que par les pairs, jamais par le serveur NetBird (qui n'est qu'un "annuaire")
|
||||
- ✅ **SSO + MFA obligatoires** : OIDC force l'authentification multifacteur (TOTP, WebAuthn via votre IdP [[app-authentik]])
|
||||
- ✅ **Posture zero-trust** : refus automatique des pairs non conformes (OS obsolète, client NetBird trop vieux, horloge décalée)
|
||||
- ✅ **Audit logs** : tracer toutes les connexions dans le dashboard, exporter vers [[app-loki]] / SIEM ([[app-wazuh]])
|
||||
- ✅ **Clés privées** : générées localement sur chaque peer, **JAMAIS** transmises au serveur. Backup du volume `netbird-data` chiffré ([[app-vaultwarden]] pour le JWT signing key, **age** pour les archives)
|
||||
- ⚠️ Pour l'**authentification des users**, brancher un IdP mature ([[app-authentik]], [[app-keycloak]]) — ne pas se contenter des magic links email
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Site officiel NetBird](https://netbird.io/)
|
||||
- [GitHub netbirdio/netbird](https://github.com/netbirdio/netbird)
|
||||
- [Documentation](https://docs.netbird.io/)
|
||||
- [Blog technique](https://netbird.io/blog)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-vpn]] — Catégorie VPN & Réseau privé
|
||||
- [[app-tailscale]] — Concurrent principal
|
||||
- [[app-headscale]] — Alternative auto-hébergée Tailscale
|
||||
- [[app-wireguard]] — Le protocole sous-jacent
|
||||
- [[app-authentik]] — SSO OIDC recommandé
|
||||
- [[app-traefik]] — Reverse proxy / HTTPS
|
||||
- [[securisation-home-lab]] — Bonnes pratiques globales
|
||||
- [[glossaire-homelab]] — Définitions réseau
|
||||
- [[comparatif-vpn-mesh]] — Comparatif global mesh VPN
|
||||
Reference in New Issue
Block a user