Principes VPN
Tunnel chiffré : encapsule le trafic, chiffre, envoie, déchiffre à l'arrivée.
Authentification mutuelle : client et serveur se reconnaissent (clés publiques, certificats).
Pas de substitut à MFA : tunnel chiffre, mais n'authentifie que l'accès à la passerelle VPN.
WireGuard
Génération de clés (Curve25519)
Attention, effet notable. Cette commande peut écrire ou écraser un fichier. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
wg genkey | tee privatekey | wg pubkey > publickeyBloc actif : la touche C copie la commande seule, sans invite ni sortie.
Clés en base64, 44 caractères chacune. Clé privée = secret absolu.
Configuration minimale (/etc/wireguard/wg0.conf)
[Interface]
PrivateKey = [base64 privée]
Address = 192.0.2.100/32
ListenPort = 51820
[Peer]
PublicKey = [base64 publique du pair]
Endpoint = 203.0.113.1:51820
AllowedIPs = 192.0.2.0/24, 203.0.113.0/24
PersistentKeepalive = 25
AllowedIPs : quels trafics passent par ce pair (CIDR).
PersistentKeepalive : keepalive chiffré toutes les 25s (NAT/firewall).
Endpoint : optionnel si pair est aussi derrière NAT.
Activation / Vérification
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo wg-quick up wg0wg showBloc actif : la touche C copie la commande seule, sans invite ni sortie.
Lire : - latest handshake : < 2 min = OK. - transfer : compteurs paquets/octets. - persistent keepalive : configurable.
SSH
Clés Ed25519
ssh-keygen -t ed25519 -C "user@example.test" -N "passphrase" -f ~/.ssh/id_ed25519ssh-copy-id -i ~/.ssh/id_ed25519.pub user@203.0.113.10Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
Toujours mettre une passphrase (sauf démo jetable) + ssh-agent.
~/.ssh/config
Host bastion
HostName 203.0.113.2
User admin
IdentityFile ~/.ssh/id_ed25519
StrictHostKeyChecking accept-new
Host internal
HostName 192.0.2.50
ProxyJump bastion
IdentityFile ~/.ssh/id_internal
ProxyJump = tunnel via bastion (SSH 7.3+).
Port forwarding
Local : accès local à un service distant.
ssh -L 3306:192.0.2.80:3306 bastionBloc actif : la touche C copie la commande seule, sans invite ni sortie.
Connect to localhost:3306 → tunnel → 192.0.2.80:3306.
SOCKS : proxy dynamique.
ssh -D 1080 bastionBloc actif : la touche C copie la commande seule, sans invite ni sortie.
Configurer navigateur SOCKS 5 → localhost:1080.
Agent SSH
eval $(ssh-agent)ssh-add ~/.ssh/id_ed25519ssh-add -l # lister clés chargéesssh-add -D # vider l'agentBloc actif : la touche C copie la commande seule, sans invite ni sortie.
Avertissement : -A (ForwardAgent) expose la socket agent sur le serveur distant (root y accède).
Durcissement sshd_config
PasswordAuthentication no
PermitRootLogin no
AuthenticationMethods publickey
MaxAuthTries 3
AllowUsers user1 user2
DenyUsers root
ClientAliveInterval 300
GatewayPorts no
X11Forwarding no
Test + reload :
Attention, effet notable. Cette commande peut s'exécuter avec des droits élevés. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
sudo sshd -tsudo systemctl reload sshBloc actif : la touche C copie la commande seule, sans invite ni sortie.
Bastion
Hôte intermédiaire entre internet et serveurs internes.
Internet → Bastion (port 22 ouvert) → Serveur interne (réseau privé)
Avantages : concentration des logs, MFA sur le bastion, pas de port exposé sur internes.
Comparaison rapide
| VPN | Performances | Setup | Interop | Cas idéal |
|---|---|---|---|---|
| WireGuard | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Croissante | Site-à-site, léger |
| IPsec/IKEv2 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | Normes, certs |
| OpenVPN | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | Flexible, historique |
| SSH | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Accès léger, redirection |
Avant de configurer
- Quel protocole répondrait au besoin ? (Performant ? Sécurisé ? Interop ?)
- Réseau cible : qui doit accéder à quoi ?
- Authentification : clés, certificats, MFA ?
- Où mettre les clés privées ? (Chiffrées, pas en clair.)
- Journalisation et surveillance : quoi monitorer ?
Sources
Consultées le 18 octobre 2026.
- WireGuard (s’ouvre dans un nouvel onglet) · Quick Start (s’ouvre dans un nouvel onglet) · Protocol (s’ouvre dans un nouvel onglet)
- man wg (s’ouvre dans un nouvel onglet) · man wg-quick (s’ouvre dans un nouvel onglet)
- OpenSSH man (s’ouvre dans un nouvel onglet) · ssh_config (s’ouvre dans un nouvel onglet) · ssh-keygen (s’ouvre dans un nouvel onglet) · ssh (s’ouvre dans un nouvel onglet) · ssh-agent (s’ouvre dans un nouvel onglet)
- RFC 7296 (IKEv2) (s’ouvre dans un nouvel onglet)
- OpenSSH 10.6 Release Notes (s’ouvre dans un nouvel onglet)