Projet

Général

Profil

Wireguard » Historique » Version 45

sacha, 28/02/2024 23:48

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 43 sacha
### Config serveur (Hypnos)
35
36
* Ajouter à la mano
37
38 1 sacha
~~~
39
umask 077
40
wg genkey > /etc/wireguard/private
41
wg genkey | tee /etc/wireguard/private | wg pubkey > /etc/wireguard/publickey
42
wg set wg0 private-key /etc/wireguard/private
43
ip link set wg0 up
44 43 sacha
~~~
45 1 sacha
46 43 sacha
* /etc/wireguard/wg0.conf
47
48
~~~
49 1 sacha
[Interface]
50
ListenPort = 50000 
51
PrivateKey = `cat /etc/wireguard/private`
52
53
[Peer]
54 45 sacha
PublicKey = XRhI4WqBipwY21pxPZ9Q7EWkypnQCKKtJjqu2tUUTVo=
55 1 sacha
AllowedIPs = 10.33.33.0/24
56
Endpoint = 185.233.100.19:50000
57 43 sacha
~~~
58 1 sacha
59 43 sacha
* /etc/network/interfaces
60
61
On ajoute les informations suivantes pour Wireguard (on n'utilise pas wg-quick)
62
Chaque IP cliente est ajoutée dans la table de routage.
63
64 1 sacha
~~~
65 43 sacha
auto wg0
66
iface wg0 inet static
67
  address 185.233.101.127
68
  netmask 255.255.255.255
69
  pre-up /sbin/ip link add dev $IFACE type wireguard || true
70
  pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf || true
71
  up /sbin/ip link set $IFACE up || true
72
  up /sbin/ip route add default dev $IFACE || true
73
  down /sbin/ip link del dev $IFACE || true
74
  up /sbin/ip route add 185.233.101.120/32 dev $IFACE proto static || true
75
  down /sbin/ip route del 185.233.101.120/32 dev $IFACE proto static || true
76
  up /sbin/ip route add 185.233.101.125/32 dev $IFACE proto static || true
77
  down /sbin/ip route del 185.233.101.125/32 dev $IFACE proto static || true
78
  up /sbin/ip route add 185.233.101.126/32 dev $IFACE proto static || true
79
  down /sbin/ip route del 185.233.101.126/32 dev $IFACE proto static || true
80
~~~
81 12 louis.leveque
82
### Client
83 43 sacha
**Voir plutôt [[infrastructure:Pom_buster_install_2019-07]] pour une configuration détaillée.**
84 12 louis.leveque
~~~
85
umask 077
86
wg genkey | tee /etc/wireguard/private | wg pubkey > /etc/wireguard/publickey
87
wg set wg0 private-key /etc/wireguard/private
88
ip link add dev wg0 type wireguard
89
ip link set wg0 up
90
91
~~~
92
93
94 43 sacha
### Archives
95 44 sacha
96 12 louis.leveque
97 4 sacha
### 1er test: @Sacha's Home (Fibre Bouygues) --> @Hypnos (VM Aquilenet)
98 3 sacha
99 2 sacha
~~~
100
101
root@hypnos:/etc/wireguard# iperf3 -s
102
-----------------------------------------------------------
103
Server listening on 5201
104
-----------------------------------------------------------
105
Accepted connection from 10.33.33.2, port 60038
106
[  5] local 10.33.33.1 port 5201 connected to 10.33.33.2 port 60040
107
[ ID] Interval           Transfer     Bandwidth
108
[  5]   0.00-1.00   sec  15.1 MBytes   127 Mbits/sec                  
109
[  5]   1.00-2.00   sec  19.9 MBytes   167 Mbits/sec                  
110
[  5]   2.00-3.00   sec  20.1 MBytes   169 Mbits/sec                  
111
[  5]   3.00-4.00   sec  20.1 MBytes   169 Mbits/sec                  
112
[  5]   4.00-5.00   sec  19.7 MBytes   166 Mbits/sec                  
113
[  5]   5.00-6.00   sec  20.0 MBytes   168 Mbits/sec                  
114
[  5]   6.00-7.00   sec  20.2 MBytes   169 Mbits/sec                  
115
[  5]   7.00-8.00   sec  20.2 MBytes   170 Mbits/sec                  
116
[  5]   8.00-9.00   sec  20.1 MBytes   169 Mbits/sec                  
117
[  5]   9.00-10.00  sec  20.2 MBytes   169 Mbits/sec                  
118
[  5]  10.00-10.03  sec   566 KBytes   165 Mbits/sec                  
119
- - - - - - - - - - - - - - - - - - - - - - - - -
120
[ ID] Interval           Transfer     Bandwidth
121
[  5]   0.00-10.03  sec  0.00 Bytes  0.00 bits/sec                  sender
122
[  5]   0.00-10.03  sec   196 MBytes   164 Mbits/sec                  receiver
123
-----------------------------------------------------------
124
Server listening on 5201
125
-----------------------------------------------------------
126
~~~
127
128
129
~~~
130
root@hypnos:/etc/wireguard# wg
131
interface: wg0
132
  public key: Va0X1zOpRc9471Aa3DEUUy7UkAv5aq5SojtIPqOSqwg=
133
  private key: (hidden)
134
  listening port: 50000
135
136
peer: VEfmgnq/aXPX3qBB7Q2fgxAawQdfUYZDRKEQSPC8tnA=
137
  endpoint: 5.51.0.155:3418
138
  allowed ips: 10.33.33.0/24
139
  latest handshake: 4 minutes, 30 seconds ago
140
  transfer: 208.75 MiB received, 6.68 MiB sent
141
~~~
142 5 sacha
143
## InstallDebian sur Apu2
144
145
https://blog.pgeiser.com/posts/2017/04/installing-debian-stretch-on-a-machine-without-a-graphic-card/
146 6 sacha
147 18 xavier
~~~
148 22 sacha
apt-get install aptitude \
149 18 xavier
     dhcpd resolvconf \
150
     curl dnsutils htop iperf3 tcpdump tmux whois \
151 1 sacha
     debian-security-support debsums needrestart
152 18 xavier
~~~
153 8 sacha
154
~~~
155
#!/bin/bash
156
gw=`ip  route | awk '/default/ { print $3 }'`
157 9 sacha
sysctl -w net.ipv4.ip_forward=1
158 8 sacha
ip link add dev wg0 type wireguard
159
ip address add dev wg0 10.33.33.2/24
160
ip link set up dev wg0
161
ip route add 185.233.100.19/32 via $gw dev enp1s0
162
ip route del default
163
ip route add default dev wg0
164
wg setconf wg0 /etc/wireguard/wg0.conf
165
~~~
166 10 sacha
167
https://git.zx2c4.com/WireGuard/about/src/tools/man/wg-quick.8
168
https://git.zx2c4.com/WireGuard/about/src/tools/wg.8
169 16 sacha
170
https://vincent.bernat.ch/fr/blog/2018-vpn-wireguard-route