Passerelle OpenWrt WireGuard

Avec cette méthode, on établit le VPN Rézine avec un routeur OpenWrt, et ce routeur distribue ensuite le réseau Rézine à tous les appareils connectés dessus (en filaire, en Wi-Fi…). Ça fonctionne à la fois en IPv4 (NAT) et en IPv6 (distribution automatique d’adresse IPv6 Rézine aux appareils connectés).

Il n’existe pas de méthode graphique. Méthode copiée depuis la doc OpenWrt et adaptée pour Rézine.

Installation

Préparation

Installation des paquets

opkg update
opkg install wireguard

Configuration des paramètres

# Configuration parameters
WG_IF="wg0"
WG_SERV="193.33.56.19"
WG_PORT="51820"
WG_ADDR="<IPv4 VPN rezine>/32"
WG_ADDR6="<IPv6 VPN rezine>/128"
WG_PREFIX6="<prefixe IPv6 VPN rezine>/60"
  • <IPv4 VPN rezine> est une information que l’on trouve sous la dénomination ‘Adresse IPv4’ dans son espace membre.

  • <prefixe IPv6 VPN rezine> est une information que l’on trouve sous la dénomination ‘Adresse IPv6’ dans son espace membre.

Gestion des clés

# Generate keys
umask go=
wg genkey | tee wgclient.key | wg pubkey > wgclient.pub
wg genpsk > wgclient.psk

# Client private key
WG_KEY="$(cat wgclient.key)"
WG_PUB="D58L/Gkx0R0n90HpNCY5iMOZMsQ1OIEmGGr7iGchwAk="

Partager le contenu de wgclient.pub sur Ambre.

Firewall

On considère que le VPN est un réseau public, donc on l’ajoute à la zone WAN, ce qui simplifie la configuration.

uci rename firewall.@zone[0]="lan"
uci rename firewall.@zone[1]="wan"
uci del_list firewall.wan.network="${WG_IF}"
uci add_list firewall.wan.network="${WG_IF}"
uci commit firewall
/etc/init.d/firewall restart

Network

Configuration du réseau WireGuard

uci -q delete network.${WG_IF}
uci set network.${WG_IF}="interface"
uci set network.${WG_IF}.proto="wireguard"
uci set network.${WG_IF}.private_key="${WG_KEY}"
uci add_list network.${WG_IF}.addresses="${WG_ADDR}"
uci add_list network.${WG_IF}.addresses="${WG_ADDR6}"
uci set network.${WG_IF}.ip6prefix="${WG_PREFIX6}"

Ajout du serveur VPN (peer wireguard)

uci -q delete network.wgserver
uci set network.wgserver="wireguard_${WG_IF}"
uci set network.wgserver.public_key="${WG_PUB}"
uci set network.wgserver.endpoint_host="${WG_SERV}"
uci set network.wgserver.endpoint_port="${WG_PORT}"
uci set network.wgserver.route_allowed_ips="1"
uci set network.wgserver.persistent_keepalive="25"
uci add_list network.wgserver.allowed_ips="0.0.0.0/0"
uci add_list network.wgserver.allowed_ips="::/0"
uci commit network
/etc/init.d/network restart

DNS

TODO

Tests

traceroute openwrt.org
traceroute6 openwrt.org

Hardware

Voici quelques routeurs

Tests effectués sur fibre Orange

TP-LINK Archer C7

5 ports Gbit + wifi

Page sur openwrt.org

  • ping 17 ms
  • download 72 Mb/s
  • upload 68 Mb/s

Ubiquity EdgeRouter-X

5 ports Gbit. Plus performant mais pas de wifi.

Page sur openwrt.org

  • ping 16 ms
  • download 190 Mb/s
  • upload 150 Mb/s