Configuration WireGuard pour GNU/Linux

Installer Wireguard

 # apt install wireguard

Récupération de la configuration nécessaire

Depuis notre système d’information (Ambre), il vous est possible de générer automatiquement les fichiers de configuration nécessaire et de flasher le code QR sur votre smartphone, en cliquant sur l’icône de téléchargement :


Générer ses propres clés

$ (umask 0077; wg genkey > wg_rezine.key)
$ wg pubkey < wg_rezine.key > wg_rezine.pub

GNU/Linux - Ligne de commandes

Manuellement

Configurer l’interface wireguard

# ip link add dev wg0 type wireguard
# ip address add dev wg0 <IP Rézine personnelle>/32
# ip address add dev wg0 <IPv6 Rézine personnelle::1>/128
# wg set wg0 private-key /etc/wireguard/rezine.key peer D58L/Gkx0R0n90HpNCY5iMOZMsQ1OIEmGGr7iGchwAk= endpoint 193.33.56.19:51820 allowed-ips 0.0.0.0/0,::/0
# ip link set wg0 up

Mettre en place les routes

default_route=$(ip route list default | cut -d' ' -f2-)
ip -4 route del default
ip -4 route add default dev wg0
ip -4 route add 193.33.56.19/32 $default_route
ip -6 route del default
ip -6 route add default dev wg0

Configurer les DNS (les résolveurs DNS de Rézine sont trouvables sous le nom ns-cache.rezine.org) :

TODO
ipv4
193.33.57.30 193.33.56.30

ipv6
2001:912:1000:1::30 2001:912:1100:1::30

wg-quick

/etc/wireguard/wg0

[Interface]
Address = @PRIVATE_IPV4@/32, @PRIVATE_IPV6@/128
PrivateKey = @PRIVATE_KEY@
DNS=193.33.56.30, 80.67.169.12

[Peer]
PublicKey = D58L/Gkx0R0n90HpNCY5iMOZMsQ1OIEmGGr7iGchwAk=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 193.33.56.19:51820

Remplacer @PRIVATE_IPV4@, @PRIVATE_IPV6@ et @PRIVATE_KEY@.

Lancer avec wg-quick :

# wg-quick up wg0

ou systemd :

# systemctl start wg-quick@wg0.service

NetworkManager

/etc/NetworkManager/system-connections/wgRezine.nmconnection

[connection]
id=WireGuard Rezine
type=wireguard
interface-name=wg0

[wireguard]
private-key=@PRIVATE_KEY@

[wireguard-peer.D58L/Gkx0R0n90HpNCY5iMOZMsQ1OIEmGGr7iGchwAk=]
endpoint=193.33.56.19:51820
allowed-ips=0.0.0.0/0;::/0;

[ipv4]
address1=@PRIVATE_IPV4@/32
dns=193.33.56.30;193.33.57.30;
dns-search=
method=manual

[ipv6]
addr-gen-mode=stable-privacy
address1=@PRIVATE_IPV6@/128
dns-search=
ip6-privacy=0
method=manual

[proxy]

Remplacer @PRIVATE_IPV4@, @PRIVATE_IPV6@ et @PRIVATE_KEY@.

Configurer les permissions pour que seul root ait les droits en lecture et en écriture sur le fichier :

# chmod 600 /etc/NetworkManager/system-connections/wgRezine.nmconnection

Forcer le chargement de la configuration par Network-Manager :

# nmcli connection load /etc/NetworkManager/system-connections/wgRezine.nmconnection

Systemd-networkd

TODO : tester + ajouter config DNS + routage IPv6 alátoire (préférer wg-quick)

/etc/systemd/networkd/99-wg0.netdev

[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuard Rezine

[WireGuard]
PrivateKey=@PRIVATE_KEY@

[WireGuardPeer]
PublicKey=D58L/Gkx0R0n90HpNCY5iMOZMsQ1OIEmGGr7iGchwAk=
AllowedIPs=0.0.0.0/0
AllowedIPs=::/0
Endpoint=193.33.56.19:51820

/etc/systemd/network/99-wg0.network

[Match]
Name=wg0

[Network]
Address=@PRIVATE_IPV4@/32
Address=@PRIVATE_IPV6@/128

GNU/Linux - Graphique

Dans le gestionnaire de réseaux, ajouter une interface virtuelle WireGuard en cliquant sur le « + » en bas de cette fenêtre, puis dans la fenêtre déroulante, chercher « Wireguard » en bas de la catégorie « Virtuel » (et non VPN) :



Renseigner le nom de la connexion, le nom de l’interface, votre clé privée.



Cliquer sur Ajouter pour ajouter le serveur. Renseigner la clé publique du serveur : D58L/Gkx0R0n90HpNCY5iMOZMsQ1OIEmGGr7iGchwAk=

Et renseigner les autres informations comme ceci :



Dans l’onglet IPv4, remplir comme ceci en renseignant bien votre adresse IP dans la colonne Adresse.



Puis renseigner les serveurs DNS (ne pas mettre 80.67.188.188).



Idem dans l’onglet IPv6 :

2001:912:1000:1::30,2001:912:1100:1::30



Enfin, dans l’onglet Général, activer l’option pour se connecter automatiquement :