Wireguard

De Wiki doc

Révision datée du 14 avril 2019 à 18:53 par Ycharbi (discussion | contributions) (Page créée avec « Category:vpn Wireguard est une solution de VPN libre à source ouverte se voulant plus simple et sécurisée qu'OpenVPN. {{info|Wireguard n'est actuelleme... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Wireguard est une solution de VPN libre à source ouverte se voulant plus simple et sécurisée qu'OpenVPN.

INFORMATION

Wireguard n'est actuellement (14/04/19) disponible que dans la branche Sid de Debian. Il est toutefois possible de l'obtenir via un dépôt dédié avec les commandes suivantes:
echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Nous utiliserons une Debian Sid pour cette documentation.

Partie serveur

Installation

apt install wireguard

Génération des clés

wg genkey | tee /etc/wireguard/clé_privée_serveur | wg pubkey > /etc/wireguard/clé_publique_serveur

Afficher vos clés

cat /etc/wireguard/clé_privée_serveur /etc/wireguard/clé_publique_serveur

Le résultat vous sera utile pour remplir les fichiers de configuration serveur et client.

Configuration du serveur

vim /etc/wireguard/wg0.conf
[Interface]
Address = 10.100.100.1/24
SaveConfig = true
PrivateKey = INSÉRER_LA_CLÉ_PRIVÉE_DU_SERVEUR
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = INSÉRER_LA_CLÉ_PUBLIQUE_DU_CLIENT
AllowedIPs = 10.100.100.2/32

Activer le routage

sed -i '/net.ipv4.ip_forward/s/^#//g' /etc/sysctl.conf
sysctl -p

Appliquer les bons droits

chown -v root:root /etc/wireguard/wg0.conf
chmod -v 600 /etc/wireguard/wg0.conf

Démarrer le tunnel

wg-quick up wg0

Une interface wg0 est créée avec l'adresse IP fournie dans le fichier de configuration.

Arrêter le tunnel

wg-quick down wg0

Activer le tunnel au démarrage

Il existe un service Systemd pré-installé mais désactivé par défaut. Il suffit de l'activer pour lancer automatiquement Wireguard au démarrage du système.

systemctl enable wg-quick@wg0.service

Partie cliente

installation

apt install wireguard

Génération des clés

wg genkey | tee /etc/wireguard/clé_privée_client | wg pubkey > /etc/wireguard/clé_publique_client

Afficher vos clés

cat /etc/wireguard/clé_privée_serveur /etc/wireguard/clé_publique_serveur

Configuration du client

[Interface]
Address = 10.100.100.2/32
PrivateKey = 8BOBheDTB8I0FpYfX4MM0OVRcchfPMPw1epH+rTaEm0=

[Peer]
PublicKey = sX3l46346afcqNeCUgXOY7dxfGat0/pO7O2g75vtGhU=
Endpoint = wg.toto.fr:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Démarrer le tunnel

wg-quick up wg0-client

Arrêter le tunnel

wg-quick down wg0-client

Faire passer la route par défaut dans le tunnel

Il faudra trouver comment le faire automatiquement mais pour le moment on ce contentera de le faire via la méthode traditionnelle.

Ajout de la route statique pour joindre le serveur

ip r a IP_SERVEUR via IP_PASSERELLE

Suppression de la route par défaut

ip r d default

Ajout de la route par défaut via le tunnel

ip r a default via 10.100.100.1

Après extinction du tunnel, il suffit de remettre la route par défaut via la passerelle

ip r a default via IP_PASSERELLE

Sources