Ce que vous saurez faire à la fin
- Choisir entre OpenVPN, WireGuard, IPsec, Tailscale et SD-WAN.
- Installer un serveur WireGuard sur un VPS pour 5-50 utilisateurs.
- Configurer les clients Windows, Mac, Linux, iOS, Android.
- Sécuriser avec MFA, certificats et révocations.
- Déployer un VPN site-à-site entre 2 bureaux.
Durée : 1 journée pour un déploiement de base. Pré-requis : 1 serveur Linux Ubuntu 22.04 LTS (VPS chez Contabo, OVH, AWS, ~5-30 €/mois selon scale), nom de domaine pour DNS, 1 administrateur Linux confirmé, configuration réseau bureau accessible.
Étape 1 — Choisir le bon protocole VPN
| Protocole | Forces | Faiblesses | Cas d’usage |
|---|---|---|---|
| WireGuard | Très rapide, simple, moderne | Adoption récente | 2026 : choix par défaut |
| OpenVPN | Mature, stable, audité | Lent vs WireGuard | Compatibilité existante |
| IPsec / IKEv2 | Natif iOS / Windows | Configuration complexe | Site-à-site fixe |
| Tailscale (Wireguard managé) | Zéro config, mesh, MFA inclus | SaaS payant pour features | PME sans IT dédié |
| NetBird, Twingate | Open source, zero trust | Setup +long | Alternatives à Tailscale |
| SD-WAN (Cisco, Aruba) | Multi-sites entreprise | Coût élevé | 50+ sites |
Étape 2 — Provisionner le VPS pour le serveur WireGuard
Commande : 1 vCPU + 1 Go RAM suffit pour 50 utilisateurs. Distribution : Ubuntu 22.04 LTS ou Debian 12. Configurez :
# Mise à jour et hardening initial
sudo apt update && sudo apt upgrade -y
sudo apt install -y wireguard ufw qrencode
# Pare-feu : autoriser SSH (changez 22 vers un port custom) et WireGuard
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp comment 'SSH custom'
sudo ufw allow 51820/udp comment 'WireGuard'
sudo ufw enable
Étape 3 — Générer les clés serveur
cd /etc/wireguard
sudo wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey
sudo chmod 600 privatekey
# Affichez la clé publique pour les configs clients
cat publickey
Étape 4 — Créer le fichier de config serveur
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <CLE_PRIVEE_SERVEUR>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Premier client (à dupliquer pour chaque utilisateur)
[Peer]
PublicKey = <CLE_PUBLIQUE_CLIENT_1>
AllowedIPs = 10.10.0.2/32
Étape 5 — Activer le forwarding IP et démarrer WireGuard
# Activer IP forwarding
sudo sed -i 's/^#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sudo sysctl -p
# Démarrer et activer au boot
sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0
sudo wg show
Étape 6 — Générer une config par utilisateur
Script bash add-client.sh pour automatiser. Il prend en paramètres le nom et l’IP, génère les clés, écrit la config client, ajoute le peer côté serveur, recharge WireGuard et affiche un QR code pour mobile. Vous le distribuez à votre admin réseau qui lance ./add-client.sh awa.diop 10.10.0.5 pour chaque nouvel utilisateur.
Étape 7 — Installer le client Windows
Téléchargez WireGuard pour Windows sur wireguard.com/install. Lancez. Importez le fichier .conf généré (Add Tunnel > Import tunnel from file). Cliquez Activate. Vérifiez : ipconfig dans cmd doit montrer une interface WireGuard avec IP 10.10.0.X.
Étape 8 — Installer le client Mac, iOS, Android
- macOS : WireGuard sur App Store. Drag & drop du fichier .conf.
- iOS : WireGuard sur App Store. Scannez le QR code généré (étape 6).
- Android : WireGuard sur Play Store. Scannez QR ou importez .conf.
- Linux :
sudo apt install wireguardpuiswg-quick up client.conf
Étape 9 — Configurer le DNS et le split-tunneling
Décidez du périmètre :
FULL TUNNEL (tout passe par VPN) :
AllowedIPs = 0.0.0.0/0
+ Sécurité maximale
- Plus lent (latence supplémentaire)
SPLIT TUNNEL (seulement réseaux pro via VPN) :
AllowedIPs = 10.10.0.0/24, 192.168.1.0/24
+ Performance
+ Économie de bande passante
- Pas de protection navigation perso
Étape 10 — Ajouter MFA avec un agent (zero-trust)
WireGuard pur n’a pas de MFA. Pour ajouter MFA :
- Tailscale : intègre Google / Microsoft / Okta SSO + MFA natif (8 $/user/mois)
- NetBird : alternative open-source avec SSO
- Twingate : zero-trust avec MFA + posture check
- WireGuard + Wg-meshconf + script auth : setup complexe
Pour PME < 30 utilisateurs : Tailscale est souvent le meilleur compromis.
Étape 11 — Configurer un VPN site-à-site (2 bureaux)
Cas : reliez bureau Dakar (192.168.1.0/24) à bureau Saint-Louis (192.168.2.0/24). Sur chaque routeur ou serveur Linux, installez WireGuard. Le serveur Dakar a en peer le serveur Saint-Louis :
[Peer]
# Bureau Saint-Louis
PublicKey = <PUB_SAINTLOUIS>
Endpoint = saintlouis.votredomaine.com:51820
AllowedIPs = 192.168.2.0/24, 10.20.0.2/32
PersistentKeepalive = 25
Symétrique côté Saint-Louis. Routes statiques côté pare-feu de chaque bureau.
Étape 12 — Surveiller les connexions VPN
Commandes utiles :
# Liste des peers connectés et trafic
sudo wg show
# Logs WireGuard (errors + handshakes)
sudo journalctl -u wg-quick@wg0 -f
# Monitor temps réel avec wg-easy (UI web)
docker run -d --name wg-easy -e PASSWORD=changeme -e WG_HOST=vpn.votredomaine.com -p 51820:51820/udp -p 51821:51821/tcp -v ~/.wg-easy:/etc/wireguard --cap-add=NET_ADMIN ghcr.io/wg-easy/wg-easy
Interface web admin sur port 51821 : add / remove clients, voir trafic.
Étape 13 — Révoquer un utilisateur compromis
En cas de départ ou compromission :
# Identifier le peer dans /etc/wireguard/wg0.conf
sudo nano /etc/wireguard/wg0.conf
# Supprimer le bloc [Peer] de l'utilisateur
# Recharger sans interruption
sudo wg syncconf wg0 <(sudo wg-quick strip wg0)
# Vérifier qu'il est bien out
sudo wg show
Procédure documentée + délai SLA < 30 min après notification RH.
Étape 14 — Auditer la sécurité du VPN trimestriellement
Checklist :
- Patches OS serveur à jour
- Logs analysés (handshakes anormaux, pic de trafic)
- Liste utilisateurs vs effectifs RH
- Test de coupure : VPN inaccessible 5 min, comportement clients
- Backup des configs et clés (chiffrées)
- Test restauration sur serveur de test
Erreurs courantes en VPN d’entreprise
- Mot de passe SSH faible sur le serveur VPN : on perd tout.
- Clés privées partagées entre utilisateurs : impossible de tracer / révoquer.
- VPN sans MFA : 1 mot de passe volé = accès LAN complet.
- Pas de monitoring : brute force ou exfil non détectés.
- Pas de plan B : serveur VPN tombe = télétravailleurs hors-ligne.
Checklist VPN entreprise
✓ Protocole choisi (WireGuard recommandé)
✓ Serveur Ubuntu sécurisé (firewall, SSH custom, no-root login)
✓ Configs clients par utilisateur (1 clé / personne)
✓ DNS interne + split-tunnel défini
✓ Clients déployés (Win, Mac, Linux, iOS, Android)
✓ MFA ajoutée (Tailscale ou agent SSO)
✓ Site-à-site configuré entre bureaux
✓ Monitoring temps réel (wg-easy ou similaire)
✓ Procédure de révocation documentée et testée
✓ Logs centralisés et alertes
✓ Backup des configs chiffrées
✓ Audit trimestriel calé
✓ Plan B (2e VPS, 4G d'urgence)