Projet

Général

Profil

Wireguard » Historique » Version 11

Matthieu Herrb, 15/04/2019 08:10
ajout config client debian

1 10 Matthieu Herrb
{{>toc}}
2 10 Matthieu Herrb
3 1 Matthieu Herrb
h1. Wireguard
4 1 Matthieu Herrb
5 1 Matthieu Herrb
h2. test VPN tetaneutral sur h9
6 1 Matthieu Herrb
7 9 Matthieu Herrb
h3. Configuration
8 10 Matthieu Herrb
9 11 Matthieu Herrb
Sur h7: router les IP via h9:
10 1 Matthieu Herrb
<pre>
11 11 Matthieu Herrb
ip r add 185.119.170.3/32 via 91.224.148.143 dev eth3.3131
12 11 Matthieu Herrb
ip -6 r add 2a03:7220:8087:300::/56 via fe80::80:8f dev eth3.3131
13 11 Matthieu Herrb
</pre>
14 11 Matthieu Herrb
15 11 Matthieu Herrb
Sur h9 config globale:
16 11 Matthieu Herrb
17 11 Matthieu Herrb
<pre>
18 1 Matthieu Herrb
# modprobe wireguard
19 1 Matthieu Herrb
# umask 077
20 1 Matthieu Herrb
# wg genkey > /etc/wireguard/private
21 1 Matthieu Herrb
# wg pubkey < /etc/wireguard/private > /etc/wireguard/public
22 1 Matthieu Herrb
# ip link add dev wg0 type wireguard
23 1 Matthieu Herrb
# ip a add dev wg0 10.99.0.1/32
24 1 Matthieu Herrb
# ip -6 a add dev wg0 fe80::31/128
25 6 Matthieu Herrb
# wg set wg0 private-key ./private listen-port 55769
26 1 Matthieu Herrb
# ip link set wg0 up
27 1 Matthieu Herrb
</pre>
28 1 Matthieu Herrb
29 11 Matthieu Herrb
30 1 Matthieu Herrb
Pour chaque client, sur h9:
31 1 Matthieu Herrb
32 1 Matthieu Herrb
<pre>
33 1 Matthieu Herrb
# wg set wg0 peer <clé publique du client> allowed-ips 185.119.170.3/32,2a03:7220:8087:300::/56
34 1 Matthieu Herrb
# ip r add 185.119.170.3/32 dev wg0
35 2 Matthieu Herrb
# ip -6 r add 2a03:7220:8087:300::/56 dev wg0
36 1 Matthieu Herrb
</pre>
37 1 Matthieu Herrb
38 11 Matthieu Herrb
h4. Config client openwrt
39 11 Matthieu Herrb
40 11 Matthieu Herrb
Dans @/etc/config/network@
41 11 Matthieu Herrb
42 1 Matthieu Herrb
<pre>
43 1 Matthieu Herrb
config interface 'vpn0'
44 1 Matthieu Herrb
        option proto 'wireguard'
45 5 Matthieu Herrb
        option private_key '<clé privée>'
46 1 Matthieu Herrb
        list addresses '185.119.170.3/32'
47 5 Matthieu Herrb
        list addresses '2a03:7220:8087:300::1/56'
48 1 Matthieu Herrb
49 1 Matthieu Herrb
config wireguard_vpn0
50 1 Matthieu Herrb
        option public_key 'DsIeOCRs/5uYdi8rLiBzRNmN4zUzKCQRqY3Sbl8NS0A=' # La clé publique de h9
51 1 Matthieu Herrb
        option route_allowed_ips '1'
52 1 Matthieu Herrb
        option endpoint_host '91.224.148.143'
53 1 Matthieu Herrb
        option endpoint_port '55769'
54 4 Matthieu Herrb
        option persistent_keepalive '25'
55 2 Matthieu Herrb
        list allowed_ips '0.0.0.0/0'
56 3 Matthieu Herrb
        list allowed_ips '::/0'
57 1 Matthieu Herrb
</pre>
58 1 Matthieu Herrb
59 11 Matthieu Herrb
.h4 Config client debian 
60 11 Matthieu Herrb
61 11 Matthieu Herrb
Dans @/etc/rc.local@ pas de route par défaut configurée
62 11 Matthieu Herrb
63 1 Matthieu Herrb
<pre>
64 11 Matthieu Herrb
# wireguard
65 11 Matthieu Herrb
# route vers h9 
66 11 Matthieu Herrb
/bin/ip route add 91.224.148.143/32 via 192.168.31.200 dev eth0
67 11 Matthieu Herrb
68 11 Matthieu Herrb
/sbin/modprobe wireguard
69 11 Matthieu Herrb
/bin/ip link add dev wg0 type wireguard
70 11 Matthieu Herrb
/bin/ip a add dev wg0 185.119.170.2
71 11 Matthieu Herrb
/bin/ip -6 a add dev wg0 2a03:7220:8087:200::1/56
72 11 Matthieu Herrb
/usr/bin/wg set wg0 private-key /etc/wireguard/private 
73 11 Matthieu Herrb
/usr/bin/wg set wg0 peer DsIeOCRs/5uYdi8rLiBzRNmN4zUzKCQRqY3Sbl8NS0A= \
74 11 Matthieu Herrb
        endpoint  91.224.148.143:55769 \
75 11 Matthieu Herrb
        allowed-ips 0.0.0.0/0,::/0 \
76 11 Matthieu Herrb
        persistent-keepalive 25
77 11 Matthieu Herrb
/bin/ip link set wg0 up
78 11 Matthieu Herrb
79 11 Matthieu Herrb
/bin/ip route add 10.99.0.1 dev wg0
80 11 Matthieu Herrb
/bin/ip route add default via 10.99.0.1 dev wg0
81 11 Matthieu Herrb
/bin/ip -6 route add default via fe80::31 dev wg0
82 9 Matthieu Herrb
</pre>
83 9 Matthieu Herrb
84 9 Matthieu Herrb
h3. Status
85 9 Matthieu Herrb
86 9 Matthieu Herrb
<pre>
87 9 Matthieu Herrb
root@h9:~# wg show
88 9 Matthieu Herrb
interface: wg0
89 9 Matthieu Herrb
  public key: DsIeOCRs/5uYdi8rLiBzRNmN4zUzKCQRqY3Sbl8NS0A=
90 9 Matthieu Herrb
  private key: (hidden)
91 9 Matthieu Herrb
  listening port: 55769
92 9 Matthieu Herrb
93 9 Matthieu Herrb
peer: y4ydCem0bUQpryyiTxS2eMPtoHLD5iOGqth1f9xkfww=
94 9 Matthieu Herrb
  endpoint: 176.158.4.203:57103
95 9 Matthieu Herrb
  allowed ips: 185.119.170.3/32, 2a03:7220:8087:300::/56
96 9 Matthieu Herrb
  latest handshake: 1 minute, 27 seconds ago
97 9 Matthieu Herrb
  transfer: 1.08 MiB received, 1.92 MiB sent
98 9 Matthieu Herrb
99 9 Matthieu Herrb
peer: hUT6WhmUw6yRpwLX3R9Rh/8x1lZDk9JeX56We7zVvWc=
100 9 Matthieu Herrb
  endpoint: 176.158.4.203:57658
101 9 Matthieu Herrb
  allowed ips: 185.119.170.2/32, 2a03:7220:8087:200::/56
102 3 Matthieu Herrb
  latest handshake: 1 minute, 38 seconds ago
103 7 Matthieu Herrb
  transfer: 107.09 KiB received, 208.19 KiB sent
104 7 Matthieu Herrb
</pre>
105 7 Matthieu Herrb
106 8 Matthieu Herrb
h3. Déploiement
107 8 Matthieu Herrb
108 8 Matthieu Herrb
Remarque: clé privée des clients à garder privée...
109 8 Matthieu Herrb
110 8 Matthieu Herrb
Deux modes possibles :
111 8 Matthieu Herrb
112 8 Matthieu Herrb
# sur un PC de l'adhérent·e
113 8 Matthieu Herrb
114 8 Matthieu Herrb
 * iel installe wireguard
115 8 Matthieu Herrb
 * iel génère la clé privé et envoie à ttnn la clé publique
116 8 Matthieu Herrb
 * ttnn envoie la config à l'adhérent·e
117 8 Matthieu Herrb
 * Avantages :
118 8 Matthieu Herrb
119 8 Matthieu Herrb
  * performance
120 8 Matthieu Herrb
  * utilisable en mobilité
121 8 Matthieu Herrb
 * Inconvénients :
122 8 Matthieu Herrb
123 8 Matthieu Herrb
  * difficulté assistance installation initiale / dépannage
124 8 Matthieu Herrb
# Sur un routeur fourni par l'association
125 8 Matthieu Herrb
126 8 Matthieu Herrb
 * routeur un peu costaud (ZBT ou Archer C7)
127 8 Matthieu Herrb
 * on génère un firmware avec la config en dur
128 8 Matthieu Herrb
 * on fournit le routeur à l'adhérent·e (comme pour un accès radio)
129 8 Matthieu Herrb
 * Avantages :
130 8 Matthieu Herrb
131 8 Matthieu Herrb
  * simplicité pour l'adhérent·e
132 8 Matthieu Herrb
  * assistance
133 8 Matthieu Herrb
 * Inconvénients :
134 8 Matthieu Herrb
135 8 Matthieu Herrb
  * performances (à confirmer)
136 1 Matthieu Herrb
  * moins mobile