---
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
