Projet

Général

Profil

Wireguard » Historique » Version 19

Version 18 (Matthieu Herrb, 21/05/2019 11:31) → Version 19/23 (Matthieu Herrb, 21/05/2019 11:47)

{{>toc}}

h1. Wireguard

h2. Configuration serveur sur h10


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

h2. Configuration serveur sur h10


h3. Routage

Sur h7: router les IP via h10:

Exemple:
<pre>
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
</pre>

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

h3.Config globale sur h10

<pre>
# 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
</pre>

h3. Pour chaque client, sur h10:

Exemple:
<pre>
# 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
</pre>

h2. Old tests VPN tetaneutral sur h9

h3. Configuration

Sur h7: router les IP via h9:
<pre>
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
</pre>

Sur h9 config globale:

<pre>
# 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
</pre>

Pour chaque client, sur h9:

<pre>
# 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
</pre>

h4. Config client openwrt

Dans @/etc/config/network@

<pre>
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'
</pre>

h4. Config client debian

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

<pre>
# 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
</pre>

h3. Status

<pre>
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
</pre>

h3. Déploiement

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

Deux modes possibles :

# 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
# 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