Files
wiki/Catalogue-Self-Hosted/apps/app-defguard.md
T
2026-06-09 18:40:21 +02:00

178 lines
5.5 KiB
Markdown

---
title: Defguard
created: 2026-06-06
updated: 2026-06-06
type: app
tags: [catalogue, 2FA, VPN, identity-management, security, rust]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=2FA, https://github.com/DefGuard/defguard]
---
# 🔐 Defguard
> **Solution VPN + SSO + 2FA tout-en-un pour entreprises**. Stack complet d'identité et d'accès réseau, basé sur WireGuard.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [defguard.net](https://defguard.net) |
| **GitHub** | [DefGuard/defguard](https://github.com/DefGuard/defguard) |
| **License** | Custom (source-available, gratuit) |
| **Langage** | Rust (backend), React (frontend) |
| **Étoiles GitHub** | 3k ⭐ |
| **Dernière MAJ** | 2026-06-05 |
| **Catégorie** | [[cat-2fa|2FA]], [[cat-vpn|VPN]], [[cat-authentication|Authentication]] |
| **Note** | Pas 100% OSI-open, mais source-available |
## 📝 Description
**Defguard** est un **bundle entreprise** qui combine en une seule plateforme :
- **VPN WireGuard** : gestion centralisée des peers, clés, configurations
- **SSO / SAML / OIDC** : authentification unique
- **2FA / MFA** : TOTP, WebAuthn, YubiKey
- **Gestion d'utilisateurs** : LDAP-like intégré
- **Admin UI web** : interface moderne pour gérer le tout
- **API REST** : intégrations tierces
**Public cible** : PME/ETI qui veulent **remplacer un stack complexe** (WireGuard + Auth0 + 2FA séparé) par une solution unifiée.
**Différence avec WireGuard seul** : WireGuard est juste le protocole VPN. Defguard ajoute la **couche de gestion** (qui a accès à quoi, comment il s'authentifie).
## 🚀 Installation
### Option 1 : Docker Compose (recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
defguard:
image: ghcr.io/defguard/defguard:latest
container_name: defguard
restart: unless-stopped
environment:
- DEFGUARD_URL=https://defguard.example.com
- DEFGUARD_LOG_LEVEL=INFO
- DATABASE_URL=postgres://defguard:***@db:5432/defguard
- REDIS_URL=redis://redis:6379
- SECRET_KEY=*** - COOKIE_DOMAIN=defguard.example.com
- COOKIE_SECURE=true
- JWT_SECRET=*** - RUST_LOG=info
volumes:
- defguard-data:/app/data
depends_on:
- db
- redis
labels:
- "traefik.enable=true"
- "traefik.http.routers.defguard.rule=Host(`defguard.example.com`)"
- "traefik.http.routers.defguard.entrypoints=websecure"
- "traefik.http.routers.defguard.tls.certresolver=letsencrypt"
- "traefik.http.services.defguard.loadbalancer.server.port=8000"
networks:
- proxy
db:
image: postgres:15
container_name: defguard-db
restart: unless-stopped
environment:
- POSTGRES_USER=defguard
- POSTGRES_PASSWORD=*** - POSTGRES_DB=defguard
volumes:
- defguard-db:/var/lib/postgresql/data
networks:
- proxy
redis:
image: redis:7
container_name: defguard-redis
restart: unless-stopped
networks:
- proxy
volumes:
defguard-data:
defguard-db:
networks:
proxy:
external: true
```
### Option 2 : WireGuard integration
Defguard gère **uniquement** la couche d'auth et de config. Le serveur **WireGuard réel** doit être installé séparément (sur la machine ou via un module kernel) :
```bash
# Installation WireGuard (Debian/Ubuntu)
sudo apt install wireguard
# Defguard s'occupera de :
# - Générer les clés
# - Pousser la config aux clients
# - Gérer les peer entries
```
## ⚙️ Configuration Initiale
1. **Lancer les conteneurs** (Docker Compose ci-dessus)
2. **Accéder à l'UI** sur `https://defguard.example.com`
3. **Créer le premier admin** via l'UI
4. **Configurer votre serveur WireGuard** (adresse IP publique, port, sous-réseau)
5. **Importer un réseau WireGuard** dans Defguard
6. **Créer des utilisateurs** ou connecter un LDAP/Active Directory
7. **Activer le 2FA** (TOTP, WebAuthn)
8. **Distribuer le client** Defguard aux utilisateurs
## 🔄 Alternatives
### Open Source
- **WireGuard** seul (sans couche de gestion)
- **Headscale** — Serveur Tailscale open-source
- **NetBird** — Alternative à WireGuard avec UI
- **Pritunl** — VPN open-source avec interface
### Comparaison Defguard vs autres
| Critère | Defguard | Headscale | NetBird | Pritunl |
| :--- | :--- | :--- | :--- | :--- |
| VPN | WireGuard | WireGuard | WireGuard | OpenVPN/WireGuard |
| UI intégrée | ✅ Complète | ⚠️ Basique | ✅ Moderne | ✅ Complète |
| SSO/SAML | ✅ | ❌ | ✅ | ✅ |
| 2FA intégré | ✅ | ❌ | ✅ | ✅ |
| Gestion users | ✅ | ❌ | ✅ | ✅ |
| Licence | Custom | BSD-3 | LGPL-3 | Source-available |
**Verdict** : Defguard est le plus **complet** pour une entreprise. Pour un usage perso, Headscale ou NetBird sont plus simples.
### Propriétaires (ce que Defguard remplace)
- **Tailscale Business** — 6$/user/mois
- **Cloudflare Tunnel + Access**
- **Okta + Cisco AnyConnect** — Très cher
- **Palo Alto GlobalProtect** — Très cher
## 🔐 Sécurité
- **WireGuard** : crypto state-of-the-art (Curve25519, ChaCha20)
- **2FA** : TOTP, WebAuthn, YubiKey
- **SSO** : SAML 2.0, OIDC
- **Audit log** complet
- **Code source auditable** : publié sur GitHub
## 📚 Ressources
- [Site officiel](https://defguard.net)
- [Documentation](https://docs.defguard.net)
- [GitHub DefGuard](https://github.com/DefGuard/defguard)
- [Démo en ligne](https://demo.defguard.net)
## Pages Liées
- [[cat-2fa]] — Catégorie 2FA
- [[cat-vpn]] — Catégorie VPN
- [[vpn]] — Concept VPN
- [[zero-trust]] — Modèle Zero Trust
- [[oauth-2]] — Protocole d'autorisation