Wireguard » Historique » Version 14
« Précédent -
Version 14/23
(diff) -
Suivant » -
Version actuelle
Matthieu Herrb, 20/05/2019 18:22
Wireguard¶
Configuration pour adhérent·e·s¶
Il y a plusieurs modes d'installation possible, selon ton usage du VPN.
Le premier mode est une installation sur un PC Linux (portable ou fixe) et seul ce PC utilisera le VPN.
Installation Linux¶
- Debian TODO
- Ubuntu TODO
- Arch TODO
Génération des clés¶
$ wg genkey | tee privatekey | wg pubkey > publickey $ chmod 400 privatekey
Le fichier privatekey
contient alors la clé privée, et le fichier publickey
, surprise, la clé publique.
Une fois cette étape terminée, envoie un mail à question at tetaneutral point net
avec les informations suivantes:
Sujet: demande de VPN Nom/pseudo : ton nom ou ton pseudo No d'adérent·e: si tu le connais Clé publique: le contenu du fichier @publickey@ généré ci-dessus. <pre> Normalement, on va préparer la configuration de ton VPN coté serveur et te répondre (ça peut prendre quelques jours) en te communicant les adresses IP (v4 et v6) affectées à ton VPN. Une fois que tu as ces informations, tu peux passer à l'étape suivante h3. Fichier de configuration Créée (avec les droits de root) @/etc/wireguard/wg0.conf@ contenant <pre> [Interface] Address = <adresses données par tetaneutral.net> DNS = 91.224.148.10,91.224.149.254 PrivateKey = <clé privée> [Peer] Publickey = <clé publique> AllowedIPs = 0.0.0.0/0,::/0 EndPoint = 89.234.156.116:51820 PersistentKeepalive = 25 </pre> Assure-toi que ce fichier n'est accessible en lecture que par root: <pre> $ sudo chmod 600 /etc/wireguard/wg0.conf </pre> h3. Démarrage du VPN * Manuel : <pre> wg-quick up wg0 </pre> h2. Configuration serveur sur h10 Cette 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é. 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