Wireguard : mettez un peu de VPN dans votre vie
Pour celles et ceux qui entendent parler de VPN sans savoir exactement ce que c'est, un VPN (Virtual Private Network) est une technologie qui permet de créer une connexion sécurisée et chiffrée sur un réseau public, protégeant ainsi la confidentialité et la sécurité des données transmises. Cela permet aux entreprises de fournir des accès à leurs ressources internes en toute sécurité (si la connexion VPN n'est pas compromise) mais alors pour un particulier, qu'est-ce que ça amène ?
- Par BDHT • Le
- #Informatique #Tutoriels

Pour celles et ceux qui entendent parler de VPN sans savoir exactement ce que c’est, un VPN (Virtual Private Network) est une technologie qui permet de créer une connexion sécurisée et chiffrée sur un réseau public, protégeant ainsi la confidentialité et la sécurité des données transmises. Cela permet aux entreprises de fournir des accès à leurs ressources internes en toute sécurité (si la connexion VPN n’est pas compromise) mais alors pour un particulier, qu’est-ce que ça amène ?
Vu que vous faites un lien sécurisé d’un point A à un point B, il vous est possible de sécuriser au maximum les données échangées, en installant votre « serveur » VPN sur un petit serveur (VPS par exemple) que vous louez chez un hébergeur, vous pouvez utiliser ce serveur comme point de sortie vers l’internet et donc contourner des restrictions potentiellement en place sur les adresses IP par exemple, cela peut être pratique si vous êtes en déplacement à l’étranger
Un peu de Wireguard
Nativement intégré dans le Kernel Linux, et supporté par Windows et Mac OS X, il vous faudra installer le paquet wireguard sous Linux avec le gestionnaire de paquets de votre choix. Pour Windows et Mac OS X, un petit tour sur le site de l’éditeur et vous pourrez le télécharger gratuitement
Dans notre cas, ayant choisi d’utiliser un serveur VPS que vous louerez chez un hébergeur de votre choix, il vous faut également l’installer sur votre serveur
Génération des clés
Wireguard fonctionne sur le principe d’un clé privée et d’une clé publique. Surtout vous gardez bien la clé privée … privée !
# Génération de la clé privée
wg genkey > private/server.key
# Génération de la clé publique
wg pubkey < private/server.key > public/server.keyCes opérations sont à faire sur chaque client et sur le serveur
Mise en place de la configuration de base
Configuration côté serveur
[Interface]
Address = 192.168.250.1/24
ListenPort = 51820 # listener port
PrivateKey = XXXXXXXXX <- clé privée de votre serveur
Table = off
[Peer]
AllowedIPs = 192.168.250.2/32
PublicKey = XXXXXXXXX <- clé publique de votre client
[Peer]
AllowedIPs = 192.168.250.3/32
PublicKey = XXXXXXXXXXPour chaque Peer, vous devez renseigner la clé publique et mettre la clé privée concerné. Pour faire simple, ici, on écoute sur le port 51820 et notre adresse IP privée sera 192.168.250.1/24
Configuration côté client :
[Interface]
PrivateKey = XXXXXXXXXX <- clé privée de votre client
Address = 192.168.250.2/24
DNS = 192.168.250.1, 1.1.1.1
[Peer]
PublicKey = XXXXXXXXX <- clé publique de votre serveur
AllowedIPs = 0.0.0.0/0
Endpoint = IP_publique_du_serveur:51820En enregistrant ces fichiers de configuration, vous devriez avoir un tunnel VPN Wireguard qui s’établit sans difficulté
Et pour finir, on fait une NAT(te) vers Internet
Vos paquets arrivent sur votre serveur mais si vous souhaitez consulter votre banque en ligne en passant par celui-ci, vos paquets ne vont pas arriver à la bonne destination, pour cela, nous allons configurer le firewall du Linux qui est sur votre VPS, pour qu’il fasse la translation entre votre adresse IP privée du VPN et votre adresse publique de votre serveur
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain prerouting {
type nat hook prerouting priority -100;
}
chain postrouting {
type nat hook postrouting priority 100;
ip saddr 192.168.251.0/24 oifname "eth0" masquerade
}
}Il faut bien entendu remplacer eth0 par le nom de l’interface publique de votre serveur
Ces règles peuvent être mises dans le fichier /etc/nftables.conf et pour appliquer la configuration, rien de plus simple que cette commande : nft -f /etc/nftables.conf
Pour finir
On aura vu comment mettre en place un « concentrateur VPN » que vous pouvez désormais utiliser pour divers choses. Il vous est même possible d’héberger des données / applications sur votre VPS, de les publier uniquement en interne sur votre VPS et d’utiliser le VPN comme moyen d’accès à ces données, ainsi, elles restent cloisonnées et vous n’avez pas besoin de vous casser la tête pour les sécuriser.
