178 lines
5.5 KiB
Markdown
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
|