Projet

Général

Profil

Wireguard » Historique » Révision 44

Révision 43 (sacha, 20/06/2021 20:13) → Révision 44/46 (sacha, 20/06/2021 20:16)

{{>toc}} 

 # Wireguard 

 Le VPN Kiss, utilisant les dernières règles de l'art, construit pour être audité & performant ! au revoir IPSec & OpenVPN ! 

 Aquilenet utilise Wireguard avec succès depuis mi-2019, pour interconnecter une partie de ses [[îlots]] à son [[infrastructure:|cœur de réseau]]. 

 ## *Work In Progress* 

 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. 

 D'ici là le site officiel de Wireguard est clair -- c'est pas sec, même si ça marche bien : 

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

 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. 


 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. 


 ## Chez Aquilenet 


 ## Installation 

 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). 

 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. 

 ## Configuration 




 ### Config serveur (Hypnos) 

 * Ajouter à la mano 

 ~~~ 
 umask 077 
 wg genkey > /etc/wireguard/private 
 wg genkey | tee /etc/wireguard/private | wg pubkey > /etc/wireguard/publickey 
 wg set wg0 private-key /etc/wireguard/private 
 ip link set wg0 up 
 ~~~ 

 * /etc/wireguard/wg0.conf 

 ~~~ 
 [Interface] 
 ListenPort = 50000  
 PrivateKey = `cat /etc/wireguard/private` 

 [Peer] 
 PublicKey = Va0X1zOpRc9471Aa3DEUUy7UkAv5aq5SojtIPqOSqwg= 
 AllowedIPs = 10.33.33.0/24 
 Endpoint = 185.233.100.19:50000 
 ~~~ 

 * /etc/network/interfaces 

 On ajoute les informations suivantes pour Wireguard (on n'utilise pas wg-quick) 
 Chaque IP cliente est ajoutée dans la table de routage. 

 ~~~ 
 auto wg0 
 iface wg0 inet static 
   address 185.233.101.127 
   netmask 255.255.255.255 
   pre-up /sbin/ip link add dev $IFACE type wireguard || true 
   pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf || true 
   up /sbin/ip link set $IFACE up || true 
   up /sbin/ip route add default dev $IFACE || true 
   down /sbin/ip link del dev $IFACE || true 
   up /sbin/ip route add 185.233.101.120/32 dev $IFACE proto static || true 
   down /sbin/ip route del 185.233.101.120/32 dev $IFACE proto static || true 
   up /sbin/ip route add 185.233.101.125/32 dev $IFACE proto static || true 
   down /sbin/ip route del 185.233.101.125/32 dev $IFACE proto static || true 
   up /sbin/ip route add 185.233.101.126/32 dev $IFACE proto static || true 
   down /sbin/ip route del 185.233.101.126/32 dev $IFACE proto static || true 
 ~~~ 

 ### Client 
 **Voir plutôt [[infrastructure:Pom_buster_install_2019-07]] pour une configuration détaillée.** 
 ~~~ 
 umask 077 
 wg genkey | tee /etc/wireguard/private | wg pubkey > /etc/wireguard/publickey 
 wg set wg0 private-key /etc/wireguard/private 
 ip link add dev wg0 type wireguard 
 ip link set wg0 up 

 ~~~ 


 ### Archives 


 
 ~~~ 

 ### 1er test: @Sacha's Home (Fibre Bouygues) --> @Hypnos (VM Aquilenet) 

 ~~~ 

 root@hypnos:/etc/wireguard# iperf3 -s 
 ----------------------------------------------------------- 
 Server listening on 5201 
 ----------------------------------------------------------- 
 Accepted connection from 10.33.33.2, port 60038 
 [    5] local 10.33.33.1 port 5201 connected to 10.33.33.2 port 60040 
 [ ID] Interval             Transfer       Bandwidth 
 [    5]     0.00-1.00     sec    15.1 MBytes     127 Mbits/sec                   
 [    5]     1.00-2.00     sec    19.9 MBytes     167 Mbits/sec                   
 [    5]     2.00-3.00     sec    20.1 MBytes     169 Mbits/sec                   
 [    5]     3.00-4.00     sec    20.1 MBytes     169 Mbits/sec                   
 [    5]     4.00-5.00     sec    19.7 MBytes     166 Mbits/sec                   
 [    5]     5.00-6.00     sec    20.0 MBytes     168 Mbits/sec                   
 [    5]     6.00-7.00     sec    20.2 MBytes     169 Mbits/sec                   
 [    5]     7.00-8.00     sec    20.2 MBytes     170 Mbits/sec                   
 [    5]     8.00-9.00     sec    20.1 MBytes     169 Mbits/sec                   
 [    5]     9.00-10.00    sec    20.2 MBytes     169 Mbits/sec                   
 [    5]    10.00-10.03    sec     566 KBytes     165 Mbits/sec                   
 - - - - - - - - - - - - - - - - - - - - - - - - - 
 [ ID] Interval             Transfer       Bandwidth 
 [    5]     0.00-10.03    sec    0.00 Bytes    0.00 bits/sec                    sender 
 [    5]     0.00-10.03    sec     196 MBytes     164 Mbits/sec                    receiver 
 ----------------------------------------------------------- 
 Server listening on 5201 
 ----------------------------------------------------------- 
 ~~~ 


 ~~~ 
 root@hypnos:/etc/wireguard# wg 
 interface: wg0 
   public key: Va0X1zOpRc9471Aa3DEUUy7UkAv5aq5SojtIPqOSqwg= 
   private key: (hidden) 
   listening port: 50000 

 peer: VEfmgnq/aXPX3qBB7Q2fgxAawQdfUYZDRKEQSPC8tnA= 
   endpoint: 5.51.0.155:3418 
   allowed ips: 10.33.33.0/24 
   latest handshake: 4 minutes, 30 seconds ago 
   transfer: 208.75 MiB received, 6.68 MiB sent 
 ~~~ 

 ## InstallDebian sur Apu2 

 https://blog.pgeiser.com/posts/2017/04/installing-debian-stretch-on-a-machine-without-a-graphic-card/ 

 ~~~ 
 apt-get install aptitude \ 
      dhcpd resolvconf \ 
      curl dnsutils htop iperf3 tcpdump tmux whois \ 
      debian-security-support debsums needrestart 
 ~~~ 

 ~~~ 
 #!/bin/bash 
 gw=`ip    route | awk '/default/ { print $3 }'` 
 sysctl -w net.ipv4.ip_forward=1 
 ip link add dev wg0 type wireguard 
 ip address add dev wg0 10.33.33.2/24 
 ip link set up dev wg0 
 ip route add 185.233.100.19/32 via $gw dev enp1s0 
 ip route del default 
 ip route add default dev wg0 
 wg setconf wg0 /etc/wireguard/wg0.conf 
 ~~~ 

 https://git.zx2c4.com/WireGuard/about/src/tools/man/wg-quick.8 
 https://git.zx2c4.com/WireGuard/about/src/tools/wg.8 

 https://vincent.bernat.ch/fr/blog/2018-vpn-wireguard-route