Projet

Général

Profil

Wireguard » Historique » Version 44

sacha, 20/06/2021 20:16

1 21 xavier
{{>toc}}
2
3 1 sacha
# Wireguard
4
5 14 sacha
Le VPN Kiss, utilisant les dernières règles de l'art, construit pour être audité & performant ! au revoir IPSec & OpenVPN !
6 20 xavier
7 25 xavier
Aquilenet utilise Wireguard avec succès depuis mi-2019, pour interconnecter une partie de ses [[îlots]] à son [[infrastructure:|cœur de réseau]].
8
9 26 xavier
## *Work In Progress*
10
11 38 xavier
Le 8 décembre 2019, Wireguard [a enfin fait son entrée dans la branche 'net-next' du noyau Linux](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?id=e7096c131e5161fa3b8e52a650d7719d2857adfd) et pourrait donc faire partie intégrante de la version 5.6 prévue début 2020.
12
13
D'ici là le site officiel de Wireguard est clair -- c'est pas sec, même si ça marche bien :
14 27 xavier
15
> WireGuard is not yet complete. You should not rely on this code. It has not undergone proper degrees of security auditing and the protocol is still subject to change. We're working toward a stable 1.0 release, but that time has not yet come. There are experimental snapshots tagged with "0.0.YYYYMMDD", but these should not be considered real releases and they may contain security vulnerabilities (which would not be eligible for CVEs, since this is pre-release snapshot software). If you are packaging WireGuard, you must keep up to date with the snapshots.
16
17
Le principal auteur de Wireguard recommande aux utilisateurs de ne **pas** employer le client [TunSafe](http://tunsafe.com/), dont le [code source](https://github.com/TunSafe/TunSafe) est à cette date (août 2019) à l'arrêt depuis au moins 7 mois.
18
19 36 xavier
20 40 xavier
Enfin, **Wireguard n'est pas un remplacement complet d'une solution comme OpenVPN** : c'est une solution conçue en « pair à pair » et de « niveau 3 » ( notamment, pas de DHCP possible au sien du tunnel ) ;  le protocole n'offre pas ( encore ? ) d'alternative pour l'adressage des hôtes.
21
22
23 29 xavier
## Chez Aquilenet
24
25 27 xavier
26 1 sacha
## Installation
27
28 37 xavier
Pour l'instant (2019-08-15), via DKMS dans le noyau Linux et en userspace écrit en GO (en cours de migration en Rust) sur les autres plateformes (*BSD, OpenWRT, Android, Windows).
29 35 xavier
30
Pour Debian stable, au départ « Stretch » 9.8 et dorénavant « Buster » 10.0, des paquets `wireguard{,-dkms,-modules}` sont installables depuis le dépôt `unstable` (uniquement).  Les mises à jour y sont fréquentes, par exemple les versions disponibles au 2019-03-07 étaient les 0.0.20190227-1, celles disponibles au 2019-07-19 étaient les 0.0.20190702-1.
31 24 xavier
32 1 sacha
## Configuration
33
34
35
36 41 xavier
37 43 sacha
### Config serveur (Hypnos)
38
39
* Ajouter à la mano
40
41 1 sacha
~~~
42
umask 077
43
wg genkey > /etc/wireguard/private
44
wg genkey | tee /etc/wireguard/private | wg pubkey > /etc/wireguard/publickey
45
wg set wg0 private-key /etc/wireguard/private
46
ip link set wg0 up
47 43 sacha
~~~
48 1 sacha
49 43 sacha
* /etc/wireguard/wg0.conf
50
51
~~~
52 1 sacha
[Interface]
53
ListenPort = 50000 
54
PrivateKey = `cat /etc/wireguard/private`
55
56
[Peer]
57
PublicKey = Va0X1zOpRc9471Aa3DEUUy7UkAv5aq5SojtIPqOSqwg=
58
AllowedIPs = 10.33.33.0/24
59
Endpoint = 185.233.100.19:50000
60 43 sacha
~~~
61 1 sacha
62 43 sacha
* /etc/network/interfaces
63
64
On ajoute les informations suivantes pour Wireguard (on n'utilise pas wg-quick)
65
Chaque IP cliente est ajoutée dans la table de routage.
66
67 1 sacha
~~~
68 43 sacha
auto wg0
69
iface wg0 inet static
70
  address 185.233.101.127
71
  netmask 255.255.255.255
72
  pre-up /sbin/ip link add dev $IFACE type wireguard || true
73
  pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf || true
74
  up /sbin/ip link set $IFACE up || true
75
  up /sbin/ip route add default dev $IFACE || true
76
  down /sbin/ip link del dev $IFACE || true
77
  up /sbin/ip route add 185.233.101.120/32 dev $IFACE proto static || true
78
  down /sbin/ip route del 185.233.101.120/32 dev $IFACE proto static || true
79
  up /sbin/ip route add 185.233.101.125/32 dev $IFACE proto static || true
80
  down /sbin/ip route del 185.233.101.125/32 dev $IFACE proto static || true
81
  up /sbin/ip route add 185.233.101.126/32 dev $IFACE proto static || true
82
  down /sbin/ip route del 185.233.101.126/32 dev $IFACE proto static || true
83
~~~
84 12 louis.leveque
85
### Client
86 43 sacha
**Voir plutôt [[infrastructure:Pom_buster_install_2019-07]] pour une configuration détaillée.**
87 12 louis.leveque
~~~
88
umask 077
89
wg genkey | tee /etc/wireguard/private | wg pubkey > /etc/wireguard/publickey
90
wg set wg0 private-key /etc/wireguard/private
91
ip link add dev wg0 type wireguard
92
ip link set wg0 up
93
94
~~~
95
96
97 43 sacha
### Archives
98 44 sacha
99 12 louis.leveque
100 4 sacha
### 1er test: @Sacha's Home (Fibre Bouygues) --> @Hypnos (VM Aquilenet)
101 3 sacha
102 2 sacha
~~~
103
104
root@hypnos:/etc/wireguard# iperf3 -s
105
-----------------------------------------------------------
106
Server listening on 5201
107
-----------------------------------------------------------
108
Accepted connection from 10.33.33.2, port 60038
109
[  5] local 10.33.33.1 port 5201 connected to 10.33.33.2 port 60040
110
[ ID] Interval           Transfer     Bandwidth
111
[  5]   0.00-1.00   sec  15.1 MBytes   127 Mbits/sec                  
112
[  5]   1.00-2.00   sec  19.9 MBytes   167 Mbits/sec                  
113
[  5]   2.00-3.00   sec  20.1 MBytes   169 Mbits/sec                  
114
[  5]   3.00-4.00   sec  20.1 MBytes   169 Mbits/sec                  
115
[  5]   4.00-5.00   sec  19.7 MBytes   166 Mbits/sec                  
116
[  5]   5.00-6.00   sec  20.0 MBytes   168 Mbits/sec                  
117
[  5]   6.00-7.00   sec  20.2 MBytes   169 Mbits/sec                  
118
[  5]   7.00-8.00   sec  20.2 MBytes   170 Mbits/sec                  
119
[  5]   8.00-9.00   sec  20.1 MBytes   169 Mbits/sec                  
120
[  5]   9.00-10.00  sec  20.2 MBytes   169 Mbits/sec                  
121
[  5]  10.00-10.03  sec   566 KBytes   165 Mbits/sec                  
122
- - - - - - - - - - - - - - - - - - - - - - - - -
123
[ ID] Interval           Transfer     Bandwidth
124
[  5]   0.00-10.03  sec  0.00 Bytes  0.00 bits/sec                  sender
125
[  5]   0.00-10.03  sec   196 MBytes   164 Mbits/sec                  receiver
126
-----------------------------------------------------------
127
Server listening on 5201
128
-----------------------------------------------------------
129
~~~
130
131
132
~~~
133
root@hypnos:/etc/wireguard# wg
134
interface: wg0
135
  public key: Va0X1zOpRc9471Aa3DEUUy7UkAv5aq5SojtIPqOSqwg=
136
  private key: (hidden)
137
  listening port: 50000
138
139
peer: VEfmgnq/aXPX3qBB7Q2fgxAawQdfUYZDRKEQSPC8tnA=
140
  endpoint: 5.51.0.155:3418
141
  allowed ips: 10.33.33.0/24
142
  latest handshake: 4 minutes, 30 seconds ago
143
  transfer: 208.75 MiB received, 6.68 MiB sent
144
~~~
145 5 sacha
146
## InstallDebian sur Apu2
147
148
https://blog.pgeiser.com/posts/2017/04/installing-debian-stretch-on-a-machine-without-a-graphic-card/
149 6 sacha
150 18 xavier
~~~
151 22 sacha
apt-get install aptitude \
152 18 xavier
     dhcpd resolvconf \
153
     curl dnsutils htop iperf3 tcpdump tmux whois \
154 1 sacha
     debian-security-support debsums needrestart
155 18 xavier
~~~
156 8 sacha
157
~~~
158
#!/bin/bash
159
gw=`ip  route | awk '/default/ { print $3 }'`
160 9 sacha
sysctl -w net.ipv4.ip_forward=1
161 8 sacha
ip link add dev wg0 type wireguard
162
ip address add dev wg0 10.33.33.2/24
163
ip link set up dev wg0
164
ip route add 185.233.100.19/32 via $gw dev enp1s0
165
ip route del default
166
ip route add default dev wg0
167
wg setconf wg0 /etc/wireguard/wg0.conf
168
~~~
169 10 sacha
170
https://git.zx2c4.com/WireGuard/about/src/tools/man/wg-quick.8
171
https://git.zx2c4.com/WireGuard/about/src/tools/wg.8
172 16 sacha
173
https://vincent.bernat.ch/fr/blog/2018-vpn-wireguard-route