<divclass="col-main cell cell--auto"><!-- start custom main top snippet --><divid="results-container"class="search-result js-search-result"></div><!-- end custom main top snippet -->
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) nommé <strong>time4vps</strong> pour une liaison SSH avec le serveur KVM.</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/time4vps
</code></pre></div></div>
<p>Envoyer les clés publiques sur le serveur KVM</p>
Installer acme: <ahref="https://blog.cinay.xyz/2017/08/Acme-Certficats-Serveurs.html">Serveur , installer et renouveler les certificats SSL Let’s encrypt via Acme</a></p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>[Thu Nov 9 08:18:04 PM CET 2023] Your cert is in: /home/ian//.acme.sh/xoyaz.xyz_ecc/xoyaz.xyz.cer
[Thu Nov 9 08:18:04 PM CET 2023] Your cert key is in: /home/ian//.acme.sh/xoyaz.xyz_ecc/xoyaz.xyz.key
[Thu Nov 9 08:18:04 PM CET 2023] The intermediate CA cert is in: /home/ian//.acme.sh/xoyaz.xyz_ecc/ca.cer
[Thu Nov 9 08:18:04 PM CET 2023] And the full chain certs is there: /home/ian//.acme.sh/xoyaz.xyz_ecc/fullchain.cer
</code></pre></div></div>
<p>Installer les certificats</p>
<p>nous stockons les fichiers dans le répertoire /etc/ssl/private/ (qui doit être créé au préalable), la commande serait :</p>
<em>UFW, ou pare - feu simple , est une interface pour gérer les règles de pare-feu dans Arch Linux, Debian ou Ubuntu. UFW est utilisé via la ligne de commande (bien qu’il dispose d’interfaces graphiques disponibles), et vise à rendre la configuration du pare-feu facile (ou simple).</em></p>
<p><em>Par défaut, les jeux de règles d’UFW sont vides, de sorte qu’il n’applique aucune règle de pare-feu, même lorsque le démon est en cours d’exécution.</em></p>
<p>Les règles</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo ufw allow 55156/tcp # port SSH , 55156
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
</code></pre></div></div>
<p>Status</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code> sudo ufw status verbose
</code></pre></div></div>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>Status: active
<p>Créer le fichier de configuration <codeclass="language-plaintext highlighter-rouge">/etc/unbound/unbound.conf.d/unbound-ian.conf</code> en tenant compte des adresses privées</p>
<p><em>unbound-checkconf: no errors in /etc/unbound/unbound.conf.d/unbound-ian.conf</em></p>
<p>Toutes les règles disponibles sont détaillées dans le manuel <codeclass="language-plaintext highlighter-rouge">man 5 unbound.conf</code> ou <ahref="https://nlnetlabs.nl/documentation/unbound/unbound.conf/">dans le manuel en ligne</a>.</p>
<p>S’assurer que tout fonctionne bien à l’aide de la commande
<codeclass="language-plaintext highlighter-rouge">dig</code> disponible dans le paquet <codeclass="language-plaintext highlighter-rouge">bind9-dnsutils</code> ou <codeclass="language-plaintext highlighter-rouge">dnsutils</code>. Pour cela il
suffit de spécifier l’adresse de notre résolveur, ici <codeclass="language-plaintext highlighter-rouge">127.0.0.1</code> ou <codeclass="language-plaintext highlighter-rouge">::1</code> et
d’effectuer une requête DNS. Ici on demande à Unbound de récupérer
l’enregistrement <codeclass="language-plaintext highlighter-rouge">AAAA</code> associé au nom de domaine <codeclass="language-plaintext highlighter-rouge">afnic.fr</code>.</p>
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;afnic.fr. IN AAAA
;; ANSWER SECTION:
afnic.fr. 1800 IN AAAA 2001:67c:2218:302::51:231
;; Query time: 816 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Mon Nov 13 14:11:42 CET 2023
;; MSG SIZE rcvd: 65
</code></pre></div></div>
<p>Une réponse est bien renvoyée. Le résolveur fonctionne.Vérifier que tout est opérationnel en IPv4, et en utilisant UDP et TCP.</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>$ dig +notcp @127.0.0.1 AAAA afnic.fr # connexion UDP en IPv4 au résolveur
$ dig +tcp @127.0.0.1 AAAA afnic.fr # connexion TCP en IPv4 au résolveur
</code></pre></div></div>
<pclass="info">À ce stade, un résolveur Unbound est configuré en local et écoute sur le port
<codeclass="language-plaintext highlighter-rouge">53</code>. Il peut donc être utilisé pour résoudre toutes les requêtes en provenance
de la machine.</p>
<h3id="envoi-de-message-postfix">Envoi de message (postfix)</h3>
<ul>
<li><ahref="/2022/08/27/Debian_Postfix_serveur_SMTP_envoi_uniquement.html">Envoi de message - Installer et configurer Postfix comme serveur SMTP d’envoi uniquement</a></li>
<h3id="générer-jeu-de-clés-privée-et-publique">Générer jeu de clés privée et publique</h3>
<p>Générer une jeu de clés privée et publique pour le serveur</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>wg genkey | sudo tee /etc/wireguard/private.key
sudo chmod go= /etc/wireguard/private.key
</code></pre></div></div>
<p>La commande <codeclass="language-plaintext highlighter-rouge">sudo chmod go=…</code> supprime toutes les autorisations sur le fichier pour les utilisateurs et les groupes autres que l’utilisateur root pour garantir que lui seul peut accéder à la clé privée.<br/>
Vous devriez recevoir une seule ligne de sortie codée base64, qui est la clé privée. Une copie de la sortie est également stockée dans le fichier /etc/wireguard/private.key pour référence future par la partie de la commande tee. <u>Notez soigneusement la clé privée générée</u>, car vous devrez l’ajouter au fichier de configuration de WireGuard plus loin dans cette section.</p>
<p>Utilisez la commande suivante pour créer le fichier de clé publique</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
</code></pre></div></div>
<h3id="adresses-ip-privées">Adresses IP privées</h3>
<p>Les plages d’adresses privées utilisées</p>
<p>IPV4 : 10.22.1.0/24</p>
<p>Pour la plage IPV6, il faut la générer à partir de l’horodatage qui correspond au nombre de secondes (le %s dans la commande date) et de nanosecondes (le %N) depuis le 1970-01-01 00:00:00 UTC combinés</p>
<p>L’algorithme de la RFC ne nécessite que les 40 bits les moins significatifs (de fin), ou 5 octets, de la sortie hachée. Utilisez la commande cut pour imprimer les 5 derniers octets codés en hexadécimal du hachage</p>
<p>L’argument -c indique à la commande cut de sélectionner uniquement un jeu de caractères spécifié. L’ argument 31- indique à cut d’imprimer tous les caractères de la position 31 jusqu’à la fin de la ligne de saisie.</p>
<p>Résultat: dba8d37f3a soit db a8 d3 7f 3a</p>
<p>Vous pouvez maintenant créer votre préfixe réseau IPv6 unique en ajoutant les 5 octets que vous avez générés avec le préfixe <codeclass="language-plaintext highlighter-rouge">fd</code>, en séparant tous les 2 octets par deux points <codeclass="language-plaintext highlighter-rouge">:</code> pour plus de lisibilité. Étant donné que chaque sous-réseau de votre préfixe unique peut contenir un total de 18446744073709551616 adresses IPv6 possibles, vous pouvez limiter le sous-réseau à une taille standard de /64 pour plus de simplicité.
En utilisant les octets générés précédemment avec la taille /64 du sous-réseau, le préfixe résultant sera le suivant</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>Unique Local IPv6 Address Prefix
fddb:a8d3:7f3a::/64
</code></pre></div></div>
<p>Cette plage <codeclass="language-plaintext highlighter-rouge">fddb:a8d3:7f3a::/64</code> est ce que vous utiliserez pour attribuer des adresses IP individuelles à vos interfaces de tunnel WireGuard sur le serveur et les «peers». Pour attribuer une IP au serveur, ajoutez un <codeclass="language-plaintext highlighter-rouge">1</code> après les derniers caractères <codeclass="language-plaintext highlighter-rouge">::</code>. L’adresse résultante sera <codeclass="language-plaintext highlighter-rouge">fddb:a8d3:7f3a::1/64</code></p>
<p>Les «Peers» peuvent utiliser n’importe quelle adresse de la plage IP, mais vous incrémentez généralement la valeur de un à chaque fois que vous ajoutez un «Peers», par exemple <codeclass="language-plaintext highlighter-rouge">fddb:a8d3:7f3a::2/64</code></p>
<h3id="configuration-du-serveur-wireguard">Configuration du serveur WireGuard</h3>
<p>Avant de créer la configuration de votre serveur WireGuard,</p>
<ol>
<li>Vous disposez de la clé privée</li>
<li>WireGuard avec IPv4, adresse IP : <codeclass="language-plaintext highlighter-rouge">10.22.1.1/24</code></li>
<li>WireGuard avec IPv6, adresse IP : <codeclass="language-plaintext highlighter-rouge">fddb:a8d3:7f3a::1/64</code></li>
</ol>
<p>Une fois que vous disposez de la clé privée et des adresses IP requises, créez un nouveau fichier de configuration à l’aide de votre éditeur préféré nano en exécutant la commande suivante</p>
<p>base64_encoded_private_key_goes_here est égal au contenu du fichier <codeclass="language-plaintext highlighter-rouge">/etc/wireguard/private.key</code><br/>
La ligne <codeclass="language-plaintext highlighter-rouge">SaveConfig</code> garantit que lorsqu’une interface WireGuard est arrêtée, toutes les modifications seront enregistrées dans le fichier de configuration.</p>
<p>Si vous souhaitez acheminer le trafic Internet de votre homologue WireGuard via le serveur WireGuard, vous devrez alors configurer le transfert IP en suivant cette section du didacticiel.
Pour configurer le transfert, ouvrez le fichier <codeclass="language-plaintext highlighter-rouge">/etc/sysctl.conf</code> à l’aide de nano ou de votre éditeur préféré:</p>
<p>Votre serveur WireGuard sera désormais capable de transférer le trafic entrant du périphérique Ethernet VPN virtuel vers d’autres sur le serveur, et de là vers l’Internet public. L’utilisation de cette configuration vous permettra d’acheminer tout le trafic Web de votre WireGuard Peer via l’adresse IP de votre serveur, et l’adresse IP publique de votre client sera effectivement masquée.</p>
<p><em>modifier la configuration du serveur WireGuard pour ajouter des règles de pare-feu qui garantiront que le trafic vers et depuis le serveur et les clients est correctement acheminé</em></p>
<p>Cependant, avant que le trafic puisse être acheminé correctement via votre serveur, vous devrez configurer certaines règles de pare-feu. Ces règles garantiront que le trafic vers et depuis votre serveur WireGuard et vos «peers» circulent correctement.</p>
<p>Pour autoriser le trafic VPN WireGuard à travers le pare-feu du serveur, vous devrez activer le masquage, qui est un concept iptables qui fournit une traduction d’adresses réseau (NAT) dynamique à la volée pour acheminer correctement les connexions client.<br/>
Recherchez d’abord l’interface réseau publique de votre serveur WireGuard à l’aide de la sous-commande <codeclass="language-plaintext highlighter-rouge">ip route</code></p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>ip route list default
</code></pre></div></div>
<p>L’interface publique est la chaîne trouvée dans la sortie de cette commande qui suit le mot « dev ». Par exemple, ce résultat montre l’interface nommée ens3, qui est mise en évidence ci-dessous</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>default via 169.254.0.1 dev ens3
</code></pre></div></div>
<p>Pour ajouter des règles de pare-feu à votre serveur WireGuard, ouvrir à nouveau le fichier <codeclass="language-plaintext highlighter-rouge">/etc/wireguard/wg0.conf</code></p>
<p>Les lignes <codeclass="language-plaintext highlighter-rouge">PostUp</code> s’exécuteront lorsque le serveur WireGuard démarrera le tunnel VPN virtuel. Dans l’exemple ici, il en ajoutera trois règles<codeclass="language-plaintext highlighter-rouge">ufw</code> et <codeclass="language-plaintext highlighter-rouge">iptables</code></p>
<ol>
<li><codeclass="language-plaintext highlighter-rouge">ufw route allow in on wg0 out on ens3</code> - Cette règle permettra de transférer le trafic IPv4 et IPv6 entrant sur l’interface VPN wg0 vers l’interface réseau ens3 du serveur. Il fonctionne conjointement avec les valeurs sysctl <codeclass="language-plaintext highlighter-rouge">net.ipv4.ip_forward</code> et <codeclass="language-plaintext highlighter-rouge">net.ipv6.conf.all.forwarding</code> que vous avez configurées dans la section précédente.</li>
<li><codeclass="language-plaintext highlighter-rouge">iptables -t nat -I POSTROUTING -o ens3 -j MASQUERADE</code> - Cette règle configure le masquage et réécrit le trafic IPv4 entrant sur l’interface VPN wg0 pour le faire apparaître comme s’il provenait directement de l’adresse IPv4 publique du serveur WireGuard.</li>
<li><codeclass="language-plaintext highlighter-rouge">ip6tables -t nat -I POSTROUTING -o ens3 -j MASQUERADE</code> - Cette règle configure le masquage et réécrit le trafic IPv6 entrant sur l’interface VPN wg0 pour le faire apparaître comme s’il provenait directement de l’adresse IPv6 publique du serveur WireGuard.</li>
</ol>
<p>Les règles <codeclass="language-plaintext highlighter-rouge">PreDown</code> s’exécutent lorsque le serveur WireGuard arrête le tunnel VPN virtuel. Ces règles sont l’inverse des règles <codeclass="language-plaintext highlighter-rouge">PostUp</code> et fonctionnent pour annuler les règles de transfert et de masquage de l’interface VPN lorsque le VPN est arrêté.<br/>
Dans les deux cas, modifiez la configuration pour inclure ou exclure les règles IPv4 et IPv6 appropriées à votre VPN. Par exemple, si vous utilisez uniquement IPv4, vous pouvez exclure les lignes avec les commandes ip6tables.
À l’inverse, si vous utilisez uniquement IPv6, modifiez la configuration pour inclure uniquement les commandes ip6tables. Les lignes ufw doivent exister pour toute combinaison de réseaux IPv4 et IPv6.</p>
<p>La dernière partie de la configuration du pare-feu sur votre serveur WireGuard consiste à autoriser le trafic vers et depuis le port WireGuard UDP lui-même. Si vous n’avez pas modifié le port dans le fichier /etc/wireguard/wg0.conf du serveur, le port que vous ouvrirez est 51820. Si vous avez choisi un port différent lors de la modification de la configuration, assurez-vous de le remplacer dans la commande UFW suivante.</p>
<p>Après avoir ajouté ces règles, désactivez et réactivez UFW pour le redémarrer et charger les modifications de tous les fichiers que vous avez modifiés:</p>
<h3id="démarrage-du-serveur-wireguard">Démarrage du serveur WireGuard</h3>
<p>WireGuard peut être configuré pour fonctionner comme un service systemd en utilisant son script wg-quick intégré. Bien que vous puissiez utiliser manuellement la commande wg pour créer le tunnel à chaque fois que vous voulez utiliser le VPN, c’est un processus manuel qui devient répétitif et sujet aux erreurs. Au lieu de cela, vous pouvez utiliser systemctl pour gérer le tunnel avec l’aide du script <codeclass="language-plaintext highlighter-rouge">wg-quick</code>.</p>
<p>Le fichier complet de configuration wireguard à ce stade</p>
<p><imgsrc="/images/wg_xoyaz01.png"alt=""/></p>
<p>L’utilisation d’un service systemd signifie que vous pouvez configurer WireGuard pour qu’il démarre au démarrage afin que vous puissiez vous connecter à votre VPN à tout moment tant que le serveur est en cours d’exécution. Pour ce faire, activer et démarrer le service <codeclass="language-plaintext highlighter-rouge">wg-quick</code> pour le tunnel <codeclass="language-plaintext highlighter-rouge">wg0</code> que vous avez défini en l’ajoutant à systemctl</p>
<pclass="info">Notez que la commande spécifie le nom du périphérique <strong>wg0</strong> du tunnel en tant que partie du nom du service. Ce nom correspond au fichier de configuration <strong>/etc/wireguard/.conf</strong>. Cette approche du nommage signifie que vous pouvez créer autant de tunnels VPN distincts que vous le souhaitez à l’aide de votre serveur.</p>
<p>Par exemple, vous pourriez avoir un périphérique de tunnel et un nom de <strong>prod</strong> et son fichier de configuration serait <strong>/etc/wireguard/prod.conf</strong>. Chaque configuration de tunnel peut contenir différents paramètres IPv4, IPv6 et de pare-feu client. De cette manière, vous pouvez prendre en charge plusieurs connexions de pairs différentes, chacune avec ses propres adresses IP et règles de routage.</p>
<p>Vérifiez que le service WireGuard est actif avec la commande suivante. Vous devriez voir actif (running) dans la sortie</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo systemctl status wg-quick@wg0.service
</code></pre></div></div>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
Nov 14 13:40:00 xoyaz.xyz systemd[1]: Finished wg-quick@wg0.service - WireGuard via wg-quick(8) fo>
</code></pre></div></div>
<p>La sortie montre les commandes ip qui sont utilisées pour créer le périphérique virtuel wg0 et lui attribuer les adresses IPv4 et IPv6 que vous avez ajoutées au fichier de configuration. Vous pouvez utiliser ces règles pour dépanner le tunnel, ou avec la commande wg elle-même si vous souhaitez essayer de configurer manuellement l’interface VPN.</p>
<pclass="info">Une fois le serveur configuré et en marche, l’étape suivante consiste à configurer votre machine cliente en tant que WireGuard Peer et à se connecter au serveur WireGuard.</p>
<h3id="générer-des-clés-pour-chaque-peer">Générer des clés pour chaque “peer”</h3>
<divclass="language-bash highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="nb">umask </span>077<spanclass="p">;</span> wg genkey | <spanclass="nb">tee </span>peer_A.key | wg pubkey <spanclass="o">></span> peer_A.pub
<spanclass="nb">umask </span>077<spanclass="p">;</span> wg genkey | <spanclass="nb">tee </span>peer_B.key | wg pubkey <spanclass="o">></span> peer_B.pub
<spanclass="nb">umask </span>077<spanclass="p">;</span> wg genkey | <spanclass="nb">tee </span>peer_C.key | wg pubkey <spanclass="o">></span> peer_C.pub
</code></pre></div></div>
<p>umask, les valeurs des autorisations en octal :</p>
<ul>
<li>0: Lire, écrire et exécuter</li>
<li>1: Lire et écrire</li>
<li>2: Lire et exécuter</li>
<li>3: Lire uniquement</li>
<li>4: Écrire et exécuter</li>
<li>5: Écrire uniquement</li>
<li>6: Exécuter uniquement</li>
<li>7: Aucune autorisation</li>
</ul>
<p>notre umask est défini sur 077</p>
<table>
<thead>
<tr>
<thstyle="text-align: left">Bit</th>
<thstyle="text-align: left">Cible</th>
<thstyle="text-align: left">Permissions sur les fichiers</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align: left">0</td>
<tdstyle="text-align: left">Propriétaires</td>
<tdstyle="text-align: left">Lire, écrire et exécuter</td>
</tr>
<tr>
<tdstyle="text-align: left">7</td>
<tdstyle="text-align: left">Groupe</td>
<tdstyle="text-align: left">Pas de permissions</td>
</tr>
<tr>
<tdstyle="text-align: left">7</td>
<tdstyle="text-align: left">Autres</td>
<tdstyle="text-align: left">Pas de permissions</td>
</tr>
</tbody>
</table>
<h3id="création-du-fichier-de-configuration-du-peer-wireguard">Création du fichier de configuration du Peer WireGuard</h3>
<p>Maintenant que vous avez une paire de clés et une clé preshared , vous pouvez créer un fichier de configuration pour chaque pair qui contient toutes les informations dont il a besoin pour établir une connexion au serveur WireGuard.</p>
<p>Vous aurez besoin de quelques informations pour le fichier de configuration :</p>
<ul>
<li>La clé privée encodée en base64 que vous avez générée sur le pair (contenu fichier /etc/wireguard/peer_A.key)</li>
<li>Les plages d’adresses IPv4 et IPv6 que vous avez définies sur le serveur WireGuard (10.22.1.0/24 et fddb:a8d3:7f3a::/64)</li>
<li>La clé publique encodée en base64 du serveur WireGuard (contenu fichier /etc/wireguard/public.key)</li>
<li>La clé preshared pour le peer (contenu fichier /etc/wireguard/preshared_A.psk)</li>
<li>L’adresse IP publique et le numéro de port du serveur WireGuard. Habituellement, il s’agit de l’adresse IPv4, mais si votre serveur a une adresse IPv6 et que votre machine cliente a une connexion IPv6 à Internet, vous pouvez l’utiliser à la place de l’adresse IPv4.</li>
</ul>
<p>Avec toutes ces informations en main, ouvrez un nouveau fichier /etc/wireguard/peer_A.conf sur la machine WireGuard Peer en utilisant nano ou votre éditeur préféré :</p>
PrivateKey = base64_encoded_peer_private_key (contenu de /etc/wireguard/peer_A.key, clé privée PEER A)
Address = 10.22.1.2/24
Address = fddb:a8d3:7f3a::2/64
[Peer]
PublicKey = base64_encoded_peer_public_key (contenu de /etc/wireguard/public.key, clé publique du serveur)
# AllowedIPs = 10.22.1.0/24, fddb:a8d3:7f3a::/64
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = IPV4_serveur:51820
</code></pre></div></div>
<p>Si vous souhaitez envoyer tout le trafic de votre pair via le VPN et utiliser le serveur WireGuard comme passerelle pour tout le trafic, vous pouvez utiliser 0.0.0.0/0, qui représente l’ensemble de l’espace d’adressage IPv4, et ::/0 pour l’ensemble de l’espace d’adressage IPv6.</p>
<p>Si vous utilisez le serveur WireGuard comme passerelle VPN pour tout le trafic de votre pair, vous devrez ajouter une ligne à la section <codeclass="language-plaintext highlighter-rouge">[Interface]</code> qui spécifie les résolveurs DNS. Si vous n’ajoutez pas ce paramètre, vos requêtes DNS pourraient ne pas être sécurisées par le VPN, ou elles pourraient être révélées à votre fournisseur d’accès Internet ou à d’autres tiers.</p>
<p>Avant la ligne <codeclass="language-plaintext highlighter-rouge">[Peer]</code>, ajouter ce qui suit</p>
<p>Au final, vous disposez d’un fichier de configuration <codeclass="language-plaintext highlighter-rouge">peer_A.conf</code> qui sera renommé <codeclass="language-plaintext highlighter-rouge">wg0.conf</code> à déposer dans le dossier /etc/wireguard/ du client sur lequel vous aurez prélablement installé wireguard</p>
<p>Le fichier complet de configuration wireguard du client PEER A pour une utilisation avec accès internet</p>
<p><imgsrc="/images/wg_xoyaz02.png"alt=""/></p>
<p>Répéter la même opérations pour les PEER B et C</p>
<h3id="ajout-de-la-clé-publique-du-peer-au-serveur-wireguard">Ajout de la clé publique du Peer au serveur WireGuard</h3>
<p>Avant de connecter le peer au serveur, il est important d’ajouter la clé publique du peer au serveur WireGuard. Cette étape garantit que vous serez en mesure de vous connecter et d’acheminer le trafic sur le VPN. Sans cette étape, le serveur WireGuard ne permettra pas à l’homologue d’envoyer ou de recevoir du trafic sur le tunnel.</p>
<p>Assurez-vous que vous avez une copie de la clé publique encodée en base64 pour le client Peer WireGuard</p>
<p>Sur le serveur WireGuard et exécutez la commande suivante</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.22.1.2,fddb:a8d3:7f3a::2
</code></pre></div></div>
<p>Si le fichier client PEER est sur le serveur</p>
wg <spanclass="nb">set </span>wg0 peer <spanclass="si">$(</span><spanclass="nb">cat</span> /etc/wireguard/peer_A.pub<spanclass="si">)</span> allowed-ips <spanclass="s1">'10.22.1.2,fddb:a8d3:7f3a::2'</span>
</code></pre></div></div>
<p>Notez que la partie <codeclass="language-plaintext highlighter-rouge">allowed-ips</code> de la commande prend une liste d’adresses IPv4 et IPv6 séparées par des virgules. Vous pouvez spécifier des adresses IP individuelles si vous souhaitez restreindre l’adresse IP qu’un homologue peut s’attribuer, ou une plage comme dans l’exemple si vos homologues peuvent utiliser n’importe quelle adresse IP dans la plage VPN. Notez également que deux homologues ne peuvent pas avoir le même paramètre d’adresses IP autorisées.</p>
<p>Si vous souhaitez mettre à jour les adresses IP autorisées pour un client PEER existant, vous pouvez exécuter la même commande à nouveau, mais en changeant les adresses IP. Les adresses IP multiples sont supportées. Par exemple, pour modifier le Peer WireGuard que vous venez d’ajouter pour ajouter une IP comme 10.8.0.100 aux IP existantes 10.8.0.2 et fd0d:86fa:c3bc::2, vous devez exécuter ce qui suit :</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.22.1.2,10.22.1.100,fd0d:86fa:c3bc::2
</code></pre></div></div>
<p>Une fois que vous avez exécuté la commande pour ajouter le pair, vérifiez l’état du tunnel sur le serveur à l’aide de la commande wg :</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo wg
</code></pre></div></div>
<p><imgsrc="/images/wg_xoyaz03.png"alt=""/></p>
<p>Notez que la ligne peer montre la clé publique du WireGuard Peer, et les adresses IP, ou les plages d’adresses qu’il est autorisé à utiliser pour s’assigner une IP.</p>
<p>Répéter la même opérations pour les PEER B et C</p>
<p>le fichier <codeclass="language-plaintext highlighter-rouge">/etc/unbound/unbound.conf.d/unbound-ian.conf</code> au final</p>
<p><imgsrc="/images/wg_xoyaz11.png"alt=""/></p>
<h3id="connexion-du-client-peer-wireguard-au-tunnel">Connexion du client Peer WireGuard au tunnel</h3>
<p><codeclass="language-plaintext info highlighter-rouge">Si vos fichiers PEER sont le serveur, il convient de les dupliquer sur le client dans un fichier /etc/wireguard/wg0.conf</code></p>
<p>Maintenant que votre serveur et votre pair sont tous deux configurés pour supporter votre choix d’IPv4, IPv6, le transfert de paquets, et la résolution DNS, il est temps de connecter le pair au tunnel VPN.</p>
<p>Puisque vous ne souhaitez que le VPN soit activé pour certains cas d’utilisation, nous utiliserons la commande wg-quick pour établir la connexion manuellement. Si vous souhaitez automatiser le démarrage du tunnel comme vous l’avez fait sur le serveur, suivez les étapes de la section <em>Démarrage du serveur WireGuard</em> au lieu d’utiliser la commande wq-quick.</p>
<p>Dans le cas où vous acheminez tout le trafic à travers le VPN et que vous avez configuré la redirection DNS, vous devrez installer l’utilitaire resolvconf sur le client WireGuard Peer avant de démarrer le tunnel.</p>
<p>Si le client utilise systemd-network pour la configuration réseau, il faut vérifier que le fichier /etc/resolv.conf existe et contient un nameserver pour la DNS</p>
<p>Pour démarrer le tunnel</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo wg-quick up wg0
</code></pre></div></div>
<p>Si vous définissez les adresses IP autorisées client PEER sur 0.0.0.0/0 et ::/0 (ou si vous utilisez d’autres plages que celles que vous avez choisies pour le VPN), votre résultat ressemblera à ce qui suit</p>
<p><imgsrc="/images/wg_xoyaz05.png"alt=""/></p>
<p>Vous pouvez vérifier l’état du tunnel sur le client peer à l’aide de la commande wg</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo wg
</code></pre></div></div>
<p><imgsrc="/images/wg_xoyaz07.png"alt=""/></p>
<p>Vous pouvez également vérifier à nouveau l’état du serveur et vous obtiendrez un résultat similaire.</p>
<p>Vérifiez que votre client peer utilise le VPN en utilisant les commandes <codeclass="language-plaintext highlighter-rouge">ip route</code> et <codeclass="language-plaintext highlighter-rouge">ip -6 route</code>. Si vous utilisez le VPN comme passerelle pour tout votre trafic Internet, vérifiez quelle interface sera utilisée pour le trafic destiné aux résolveurs DNS <codeclass="language-plaintext highlighter-rouge">1.1.1.1</code> et <codeclass="language-plaintext highlighter-rouge">2606:4700:4700::1111</code> de CloudFlare.</p>
<p>Si vous n’utilisez WireGuard que pour accéder aux ressources du VPN, substituez une adresse IPv4 ou IPv6 valide comme la passerelle elle-même dans ces commandes. Par exemple 10.22.1.1 ou fd0d:86fa:c3bc::1.</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>ip route get 1.1.1.1
</code></pre></div></div>
<p><imgsrc="/images/wg_xoyaz08.png"alt=""/></p>
<p>Remarquez que le périphérique wg0 est utilisé et que l’adresse IPv4 10.22.1.2 que vous avez attribuée au client PEER est utilisée. De même, si vous utilisez IPv6, exécutez ce qui suit :</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>ip -6 route get 2606:4700:4700::1111
</code></pre></div></div>
<p><imgsrc="/images/wg_xoyaz09.png"alt=""/></p>
<p>Notez à nouveau l’interface wg0 et l’adresse IPv6 fddb:a8d3:7f3a::2 que vous avez attribuée au client PEER</p>
<p>Si votre client PEER dispose d’un navigateur, vous pouvez également visiter ipleak.net et ipv6-test.com pour confirmer que votre homologue achemine son trafic via le VPN.</p>
<p>Pour se déconnecter</p>
<divclass="language-plaintext highlighter-rouge"><divclass="highlight"><preclass="highlight"><code>sudo wg-quick down wg0
</code></pre></div></div>
<p><imgsrc="/images/wg_xoyaz10.png"alt=""/></p>
<p>L’utilisation d’un service systemd signifie que vous pouvez configurer WireGuard pour qu’il démarre au démarrage afin que vous puissiez vous connecter à votre VPN à tout moment tant que le serveur est en cours d’exécution. Pour ce faire, activer et démarrer le service <codeclass="language-plaintext highlighter-rouge">wg-quick</code> pour le tunnel <codeclass="language-plaintext highlighter-rouge">wg0</code> que vous avez défini en l’ajoutant à systemctl</p>
</span><spanclass="nl">"isp_name"</span><spanclass="p">:</span><spanclass="w"></span><spanclass="s2">"UAB Interneto vizija"</span><spanclass="p">,</span><spanclass="w">
<p>Les fichiers de configuration peer_A.conf, peer_B.conf et peer_C.conf des clients “peer” sont dans le dossier <codeclass="language-plaintext highlighter-rouge">/etc/wireguard/</code> du serveur</p>
<p>Si le client est un appareil mobile tel qu’un téléphone, qrencode peut être utilisé pour générer le code QR de configuration du client et l’afficher dans le terminal</p>
<divclass="article__section-navigator clearfix"><divclass="previous"><span>PRÉCÉDENT</span><ahref="/2023/11/03/Archlinux-PACMAN_Liste_des_paquets_installes_et_reinstallation.html">PACMAN Créer une liste des paquets installés et les installer plus tard dans Arch Linux</a></div><divclass="next"><span>SUIVANT</span><ahref="/2023/11/19/Qemu-KVM-Machine_virtuelle_debian_12_image_cloud_Qcow2.html">Lenovo KVM - Machine virtuelle debian 12 (vm-debian12)</a></div></div></div>
</div>
<script>(function(){
var SOURCES = window.TEXT_VARIABLES.sources;
window.Lazyload.js(SOURCES.jquery, function() {
$(function() {
var $this ,$scroll;
var $articleContent = $('.js-article-content');
var hasSidebar = $('.js-page-root').hasClass('layout--page--sidebar');
var scroll = hasSidebar ? '.js-page-main' : 'html, body';