[WireGuard](https://www.wireguard.com/) est une solution de communication Open source qui implémente la technique de réseau privé virtuel (VPN) pour créer des connexions point à point sécurisées. C'est une solution simple, moderne et rapide qui utilise une cryptographie moderne. Il vise à être plus rapide, plus simple et plus léger que IPsec. Il est également considérablement plus performant que OpenVPN. Initialement publié pour le noyau Linux, il est désormais multiplateforme (Windows, macOS, BSD, iOS, Android) et largement déployable. Il est déjà considéré comme la solution VPN la plus sécurisée et la plus simple à utiliser.
## Installation
Sous Debian (Kernel >= 5.6) et OpenBSD (>= 6.8), Wireguard fait désormais partie du Kernel.
## Configuration
### Manuelle sous OpenBSD
On commence par créer une interface wg en générant une clé privée et en indiquant un port d'écoute (UDP).
Côté serveur, on définit les clients autorisés. Il s'agit des adresses IP à partir desquelles le trafic entrant à déchiffrer sera autorisé. On indique donc l'adresse IP et la clé publique du client à autoriser :
On fait la même chose côté client en indiquant également l'adresse et le port à utiliser pour se connecter au serveur. Pour pouvoir envoyer tout le trafic via le tunnel VPN, les adresses IP autorisées sont définies sur 0.0.0.0/0.
On générera préalablement une clé privée à l'aide de la commande `openssl rand -base64 32`. La clé publique à indiquer pour « wgpeer » sera la sortie de `ifconfig wg0 | grep wgpubkey` sur le client.
On fait la même chose côté client à la différence que l'on omettra le paramètre « wgport ». On peut également indiquer des routes à charger lors de l'initialisation de l'interface. La clé publique à indiquer pour « wgpeer » sera la sortie de `ifconfig wg0 | grep wgpubkey` sur le serveur.