Project

General

Profile

Wireguard

Cette page concerne les bénévoles qui veulent aider, ou les curieu·ses·x qui veulent voir comment c'est fait de l'autre coté.

Configuration serveur sur h10

Routage

Sur h7: router les IP via h10:

Exemple:

ip r add 185.119.170.3/32 via 91.224.148.143 dev eth3.3131
ip -6 r add 2a03:7220:8087:300::/56 via fe80::80:8f dev eth3.3131

C'est fait automatiquement en indiquant wireguard dans ip_ttnn.txt comme route pour une IPv4

h3.Config globale sur h10

# modprobe wireguard
# umask 077
# wg genkey > /etc/wireguard/private
# wg pubkey < /etc/wireguard/private > /etc/wireguard/public
# ip link add dev wg0 type wireguard
# ip a add dev wg0 10.99.0.1/32
# ip -6 a add dev wg0 fe80::31/128
# wg set wg0 private-key ./private listen-port 51820
# ip link set wg0 up

Pour chaque client, sur h10:

Exemple:

# wg set wg0 peer <clé publique du client> allowed-ips 185.119.170.3/32,2a03:7220:8087:300::/56
# ip r add 185.119.170.3/32 dev wg0
# ip -6 r add 2a03:7220:8087:300::/56 dev wg0

Old tests VPN tetaneutral sur h9

Configuration

Sur h7: router les IP via h9:

ip r add 185.119.170.3/32 via 91.224.148.143 dev eth3.3131
ip -6 r add 2a03:7220:8087:300::/56 via fe80::80:8f dev eth3.3131

Sur h9 config globale:

# modprobe wireguard
# umask 077
# wg genkey > /etc/wireguard/private
# wg pubkey < /etc/wireguard/private > /etc/wireguard/public
# ip link add dev wg0 type wireguard
# ip a add dev wg0 10.99.0.1/32
# ip -6 a add dev wg0 fe80::31/128
# wg set wg0 private-key ./private listen-port 55769
# ip link set wg0 up

Pour chaque client, sur h9:

# wg set wg0 peer <clé publique du client> allowed-ips 185.119.170.3/32,2a03:7220:8087:300::/56
# ip r add 185.119.170.3/32 dev wg0
# ip -6 r add 2a03:7220:8087:300::/56 dev wg0

Config client openwrt

Dans /etc/config/network

config interface 'vpn0'
        option proto 'wireguard'
        option private_key '<clé privée>'
        list addresses '185.119.170.3/32'
        list addresses '2a03:7220:8087:300::1/56'

config wireguard_vpn0
        option public_key 'DsIeOCRs/5uYdi8rLiBzRNmN4zUzKCQRqY3Sbl8NS0A=' # La clé publique de h9
        option route_allowed_ips '1'
        option endpoint_host '91.224.148.143'
        option endpoint_port '55769'
        option persistent_keepalive '25'
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::/0'

Config client debian

Dans /etc/rc.local pas de route par défaut configurée

# wireguard
# route vers h9 
/bin/ip route add 91.224.148.143/32 via 192.168.31.200 dev eth0

/sbin/modprobe wireguard
/bin/ip link add dev wg0 type wireguard
/bin/ip a add dev wg0 185.119.170.2
/bin/ip -6 a add dev wg0 2a03:7220:8087:200::1/56
/usr/bin/wg set wg0 private-key /etc/wireguard/private 
/usr/bin/wg set wg0 peer DsIeOCRs/5uYdi8rLiBzRNmN4zUzKCQRqY3Sbl8NS0A= \
        endpoint  91.224.148.143:55769 \
        allowed-ips 0.0.0.0/0,::/0 \
        persistent-keepalive 25
/bin/ip link set wg0 up

/bin/ip route add 10.99.0.1 dev wg0
/bin/ip route add default via 10.99.0.1 dev wg0
/bin/ip -6 route add default via fe80::31 dev wg0

Status

root@h9:~# wg show
interface: wg0
  public key: DsIeOCRs/5uYdi8rLiBzRNmN4zUzKCQRqY3Sbl8NS0A=
  private key: (hidden)
  listening port: 55769

peer: y4ydCem0bUQpryyiTxS2eMPtoHLD5iOGqth1f9xkfww=
  endpoint: 176.158.4.203:57103
  allowed ips: 185.119.170.3/32, 2a03:7220:8087:300::/56
  latest handshake: 1 minute, 27 seconds ago
  transfer: 1.08 MiB received, 1.92 MiB sent

peer: hUT6WhmUw6yRpwLX3R9Rh/8x1lZDk9JeX56We7zVvWc=
  endpoint: 176.158.4.203:57658
  allowed ips: 185.119.170.2/32, 2a03:7220:8087:200::/56
  latest handshake: 1 minute, 38 seconds ago
  transfer: 107.09 KiB received, 208.19 KiB sent

Déploiement

Remarque: clé privée des clients à garder privée...

Deux modes possibles :

  1. sur un PC de l'adhérent·e
    • iel installe wireguard
    • iel génère la clé privé et envoie à ttnn la clé publique
    • ttnn envoie la config à l'adhérent·e
    • Avantages :
      • performance
      • utilisable en mobilité
    • Inconvénients :
      • difficulté assistance installation initiale / dépannage
  2. Sur un routeur fourni par l'association
    • routeur un peu costaud (ZBT ou Archer C7)
    • on génère un firmware avec la config en dur
    • on fournit le routeur à l'adhérent·e (comme pour un accès radio)
    • Avantages :
      • simplicité pour l'adhérent·e
      • assistance
    • Inconvénients :
      • performances (à confirmer)
      • moins mobile