Configurer RouterOS comme client WireGuard

⚠️
Les ressources de cet article ne sont pas supposées être utilisé en production, il y a une multitude de paramètres à affiner avant un passage en production.

Cet article fait suite à la configuration de RouterOS comme client OpenVPN, autant la configuration avec OpenVPN est fastidieuse que celle avec WireGuard est enfantine.

Pré-requis

Pour réaliser les étapes suivantes, nous aurons besoins de :

  • RouterOS 7.7
  • WireGuard

En dehors de ces versions, vous devrez peut-être adapter les instructions.

Obtenir une configuration cliente

La distribution d’une configuration WireGuard se fait régulièrement sous forme de QR Code.

Dans notre cas, nous avons besoin d’exploiter le contenu du fichier de configuration client, donc il faudra d’abord le décoder si l’on n'a que le QR Code.

[Interface]
PrivateKey = *REDACTED*
Address = 192.168.27.90/32
DNS = 8.8.8.8
MTU = 1360

[Peer]
PublicKey = *REDACTED*
Endpoint = wireguard.server.io:13231
AllowedIPs = 192.168.27.64/27, 192.168.0.0/24
PersistentKeepalive = 10
PresharedKey = *REDACTED*

Configurer WireGuard dans RouterOS

Avec Winbox

Ajouter l’interface WireGuard dans RouterOS

Dans le menu WireGuard à gauche, ajoutons une interface comme ce qui suit.

Dans le volet General, définissons le nom de l’interface, ainsi que le MTU, Listen Port et la Private Key tel qu’ils sont indiqués dans le fichier de configuration.

Ajouter le Peerdans RouterOS

Toujours dans la fenêtre WireGuard, dans le volet Peers, ajoutons un nouveau Peer.

Sélectionnons l’interface WireGuard créée juste avant et indiquons la Public Key du fichier de configuration, indiquons de même le Endpoint.

Pour chaque AllowedIPsdu fichier, mettre une des IP autorisée à transiter par le VPN, chaque ligne est une adresse CIDR unique et la flèche vers le bas permet d’en ajouter d’autres.

Indiquons la Preshared key puisque le serveur en fournie une.

Il faut aussi reporter la valeur de maintien de connexion, Persistent Keepalive, exprimée en secondes dans le fichier de configuration et à indiquer dans la fenêtre.

Ajouter l’adresse dans RouterOS

Dans le menu IP, Addresses, ajoutons l’IP telle qu’indiquée dans le fichier de configuration et le segment CIDR ici. Dans mon exemple, le client à l’ip 192.168.27.90 et le masque /27.

Et z’est parti 🎉

📃
Si pour raison inconnue, cela ne fonctionne pas, regardez les logs de RouterOS et ceux du serveur WireGuard.
Il suffit normalement de reporter toutes les valeurs du fichier de configuration client que vous avez.

Avec la console

Voici la version console des étapes ci-dessus.

Ces étapes impliquent que nous ayons accès à la console de RouterOS.

Ajouter l’interface WireGuard dans RouterOS

/interface/wireguard/add \
    name=wireguard_interface \
    listen-port=13231 \
    mtu=1360 \
    private-key="**REDACTED**"

Ajouter le Peerdans RouterOS

/interface/wireguard/peers/add \
    allowed-address=192.168.167.0/24,0.0.0.0/0 \
    endpoint-address=wireguard.server.io \
    endpoint-port=13231 \
    interface=wireguard_interface \
    persistent-keepalive=10s \
    preshared-key="**REDACTED**" \
    public-key="**REDACTED**"

Ajouter l’adresse dans RouterOS

/ip/address/add \
    address=192.168.27.90/27 \
    interface=wireguard_interface

Et z’est parti 🎉