Outils pour utilisateurs

Outils du site


doc:formations:hebergement:service:wireguard

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
doc:formations:hebergement:service:wireguard [2024/02/22 09:53] – [Serveur] jeremiedoc:formations:hebergement:service:wireguard [2025/01/08 15:05] (Version actuelle) – [Ajouter un client via "wg"] jeremie
Ligne 1: Ligne 1:
 +
 ====== VPN Wireguard ====== ====== VPN Wireguard ======
  
Ligne 28: Ligne 29:
 (vous obtiendrez des clés de la forme ''PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg='') (vous obtiendrez des clés de la forme ''PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg='')
  
 +:!: voyez ci-dessous l'usage futé de [[https://github.com/warner/wireguard-vanity-address|cette ruse]] pour dé-anonymiser les clés générées, c'est probablement utile.
 ====== Serveur ====== ====== Serveur ======
- 
-Sur le serveur, créer ''/etc/wireguard/wg0.conf'', par exemple ci-desous. Les blocs "peer" sont les (futurs) clients, vous avez besoin de leurs clés publiques. 
  
   apt install ufw  # requis coté server   apt install ufw  # requis coté server
  
-Ci-dessous le ''ens2'' est l'interface réseau publique que vous utilisez, que vous pourrez obtenir avec ''ip route list default''.+Sur le serveur, créer ''/etc/wireguard/wg0.conf'', par exemple ci-desous. Les blocs "peer" sont les (futurs) clients, vous avez besoin de leurs clés publiques. Le ''ens2'' est l'interface réseau publique que vous utilisez, que vous pourrez obtenir avec ''ip route list default''.
  
- +<code ->
-<code>+
 [Interface] [Interface]
 Address = 10.0.0.1 Address = 10.0.0.1
 ListenPort = 51820 ListenPort = 51820
-# PresharedKey = [PresharedKey]   # si utilisé 
 # DNS = 1.1.1.1   # si voulu # DNS = 1.1.1.1   # si voulu
 PrivateKey = [ServerPrivateKey] PrivateKey = [ServerPrivateKey]
Ligne 50: Ligne 48:
 PreDown = ufw route delete allow in on wg0 out on ens2 PreDown = ufw route delete allow in on wg0 out on ens2
  
-## Si les peers doivent pouvoir sortir vers l'internet travers le serveur (proxy VPN)+## Si les peers doivent pouvoir sortir vers l'internet à travers 
 +## le serveur, qui agira alors comme un proxy VPN:
 PostUp = iptables -t nat -I POSTROUTING -o ens2 -j MASQUERADE PostUp = iptables -t nat -I POSTROUTING -o ens2 -j MASQUERADE
 PreDown = iptables -t nat -D POSTROUTING -o ens2 -j MASQUERADE PreDown = iptables -t nat -D POSTROUTING -o ens2 -j MASQUERADE
  
-## Si les peers doivent pouvoir communiquer entre eux (attention, cette approche est laxiste, préférez ufw)+## Si les peers doivent pouvoir communiquer entre eux
 +## attention, cette approche est laxiste, préférez plutôt "ufw"
 #PostUp = iptables -A FORWARD -i wg0 -j ACCEPT #PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
 #PostDown = iptables -D FORWARD -i wg0 -j ACCEPT #PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
Ligne 60: Ligne 60:
  
 Pensez aussi à configurer la ligne ''net.ipv4.ip_forward=1'' dans ''/etc/sysctl.conf'' (ou bien seulement dans ''/etc/ufw/sysctl.conf'') Pensez aussi à configurer la ligne ''net.ipv4.ip_forward=1'' dans ''/etc/sysctl.conf'' (ou bien seulement dans ''/etc/ufw/sysctl.conf'')
 +
  
 ==== Ajouter un client via "wg" ==== ==== Ajouter un client via "wg" ====
Ligne 68: Ligne 69:
   wg   # pour vérifier la config   wg   # pour vérifier la config
  
-:!: si les clés contiennent un slash "/" alors wg pensera parfois que ce sont des fichiers et non des valeurs immédiates. Il indiquera une erreur relative à ''fopen'' dans ce cas !+:!: si la key contient un slash "/"wg pensera parfois que ce sont des fichiers et non des valeurs immédiates. Il indiquera une erreur relative à ''fopen'' dans ce cas. vous pouvez parfois éviter le bug en fournissant le nom du fichier qui contient la clé (souvent le PreSharedKey ci-dessous)
  
 Cela va créer des paragraphes supplémentaires dans la configuration serveur de wireguard: Cela va créer des paragraphes supplémentaires dans la configuration serveur de wireguard:
Ligne 75: Ligne 76:
 [Peer] [Peer]
 PublicKey = [Peer1PublicKey] PublicKey = [Peer1PublicKey]
 +# PresharedKey = [Peer1PresharedKey]   # si utilisé, voir ci-dessous
 AllowedIPs = 10.0.0.10/32 AllowedIPs = 10.0.0.10/32
  
Ligne 84: Ligne 86:
 ==== Pre-shared key ==== ==== Pre-shared key ====
  
-Vous auriez pu ajouté à la sécurité une clé symétrique, généralement //spécifique à un client donné//:+Vous auriez pu ajouter à la sécurité une clé symétrique, généralement //spécifique à un client donné// et indiquées chez le client et chez le serveur.
  
-  wg genpsk > preshared.clientAbc+  wg genpsk > Peer1PubKey
      
-Elle devra être spécifié dans le ''[Peer]'' du serveur pour le client Abc, ainsi qu'être mentionnée dans le ''[Interface]]'' du client. On pourrait utiliser la même clé pour tous les client, mais c'est moins recommandé.+Elle devra être spécifié dans le ''[Peer]'' du serveur pour le client ''Peer1'' ainsi qu'être mentionnée dans le ''[Interface]'' du client. On pourrait utiliser la même clé pour tous les client, mais c'est moins recommandé.
  
 Dans ce cas l'ajout d'un client sur le serveur se fait avec: Dans ce cas l'ajout d'un client sur le serveur se fait avec:
  
-  wg set wg0 peer <ClientPublicHexKey> preshared-key <ClientPreSharedKey> allowed-ips 10.0.0.x/32+  wg set wg0 peer <Peer1PubKey> preshared-key <Peer1PreKey> allowed-ips 10.0.0.x/32
  
 ==== Retirer un client ==== ==== Retirer un client ====
doc/formations/hebergement/service/wireguard.1708595581.txt.gz · Dernière modification : 2024/02/22 09:53 de jeremie