29/03/2020

Wireguard

Installation

Debian

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

Ubuntu

add-apt-repository ppa:wireguard/wireguard
apt update
apt install wireguard wireguard-dkms wireguard-tools iptables

Générer vos clefs :

umask 077
wg genkey | tee privatekey | wg pubkey > publickey

Si vous avez des problème RTL…. je sais plus, il faut installer les linux-headers-[kernel] Pour savoir la version de son kernel

uname -r
apt install linux-headers-$(uname -r)

Et ensuite

dpkg-reconfigure wireguard-dkms

Configuration

Server

La configuration se situe dans le fichier /etc/wireguard/wg0.conf

[Interface]
Address = [ip du server (dans le vpn)]/32
SaveConfig = true
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
ListenPort = 51820
PrivateKey = [Clef privée du serveur]

[Peer]
PublicKey = [Clef publique du client]
AllowedIPs = [ip routé vers le client]/32
Endpoint = [ip du client (met au pif ensuite ça se mettre automatiquement)]:51820

Client

[Interface]
PrivateKey = [Clef privée du client]
Address = [ip du client (dans le vpn)]/32
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 = [Clef public du serveur]
AllowedIPs = [ip qui seront routé vers le vpn]/24
Endpoint = [ip du serveur]:51820
PersistentKeepalive = 25

Lancer wireguard :

wg-quick up wg0
ou
systemctl start wg-quick@wg0.service

Stopper wireguard

wg-quick down wg0
ou
systemctl stop wg-quick@wg0.service

Smartphone

Installer l’application wireguard et remplissez avec les même infos et bing bing.

source : https://f-droid.org/en/packages/com.wireguard.android/

Lancer wireguard au démarrage

systemctl enable wg-quick@wg0.service
systemctl daemon-reload

Exemple

Dans un premier temps il nous faut 2 machines avec wireguard d’installé. Pour ce tuto j’ai pris 2 container debian buster avec lxc :

Les containers communique dans le réseau 10.0.33.0/24 et nous nous voulons qu’il communique dans le réseau vpn 192.168.2.0/24

Schémas

Configuration

Server

[Interface]
Address = 192.168.2.1/32
SaveConfig = true
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
ListenPort = 51820
PrivateKey = aAJ1iDdQ8vQ0Y+QdtWd+zO1oXFGsOgYTA86+6w9+zGU=

[Peer]
PublicKey = 3MEW+qq0W33wmo1kTvOjIG75xmsNKNNfloNBHvNUrHQ=
AllowedIPs = 192.168.2.2/32
Endpoint = 10.0.33.7:51820

Client

[Interface]
PrivateKey = OJTuGsQv8iCXRjRJV/YHZrloKD7ZeGIeRbTJK1zQH3o=
Address = 192.168.2.2/32
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 = QlcQslwTp+5KODdcRnfnit6bF1jCSUBw0u3tS9Fv0Ts=
AllowedIPs = 192.168.2.0/24
Endpoint = 10.0.33.6:51820
PersistentKeepalive = 25