8.14. Configurer un client WireGuard en utilisant le service wg-quick
Vous pouvez configurer un client WireGuard en créant un fichier de configuration dans le répertoire /etc/wireguard/
. Cette méthode permet de configurer le service indépendamment de NetworkManager.
Cette procédure suppose les paramètres suivants :
Client :
-
Clé privée :
aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
-
Adresse IPv4 du tunnel :
192.0.2.2/24
-
Adresse IPv6 du tunnel :
2001:db8:1::2/32
-
Clé privée :
Serveur :
-
Clé publique :
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
-
Adresse IPv4 du tunnel :
192.0.2.1/24
-
Adresse IPv6 du tunnel :
2001:db8:1::1/32
-
Clé publique :
Conditions préalables
- Vous avez généré les clés publique et privée pour le serveur et le client.
Vous connaissez les informations suivantes :
- La clé privée du client
- Les adresses IP du tunnel statique et les masques de sous-réseau du client
- La clé publique du serveur
- Les adresses IP du tunnel statique et les masques de sous-réseau du serveur
Procédure
Installez le paquetage
wireguard-tools
:# dnf install wireguard-tools
Créez le fichier
/etc/wireguard/wg0.conf
avec le contenu suivant :[Interface] Address = 192.0.2.2/24, 2001:db8:1::2/32 PrivateKey = aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A= * [Peer] PublicKey = UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= AllowedIPs = 192.0.2.1, 2001:db8:1::1 Endpoint = server.example.com:51820 PersistentKeepalive = 20
La section
[Interface]
décrit les paramètres WireGuard de l'interface sur le client :-
Address
: Une liste d'adresses IP du tunnel du client, séparées par des virgules. -
PrivateKey
: La clé privée du client.
-
La section
[Peer]
décrit les paramètres du serveur :-
PublicKey
: La clé publique du serveur. AllowedIPs
: Les adresses IP autorisées à envoyer des données à ce client. Par exemple, le paramètre est réglé sur :- Les adresses IP du tunnel du serveur pour permettre uniquement au serveur de communiquer avec ce client. La valeur indiquée dans l'exemple ci-dessus configure ce scénario.
-
0.0.0.0/0, ::/0
pour permettre à n'importe quelle adresse IPv4 et IPv6 distante de communiquer avec ce client. Utilisez ce paramètre pour acheminer tout le trafic à travers le tunnel et utiliser le serveur WireGuard comme passerelle par défaut.
-
Endpoint
: Définit le nom d'hôte ou l'adresse IP et le port du serveur. Le client utilise ces informations pour établir la connexion. -
Le paramètre optionnel
persistent-keepalive
définit un intervalle en secondes dans lequel WireGuard envoie un paquet keepalive au serveur. Définissez ce paramètre si vous utilisez le client dans un réseau avec traduction d'adresse réseau (NAT) ou si un pare-feu ferme la connexion UDP après un certain temps d'inactivité.
-
Activer et démarrer la connexion WireGuard :
# systemctl enable --now wg-quick@wg0
Le nom de l'instance systemd doit correspondre au nom du fichier de configuration dans le répertoire
/etc/wireguard/
sans le suffixe.conf
. Le service utilise également ce nom pour l'interface réseau virtuelle.
Vérification
Effectuer un sondage (ping) des adresses IP du serveur :
# ping 192.0.2.1 # ping6 2001:db8:1::1
Affichez la configuration de l'interface de l'appareil
wg0
:# wg show wg0 interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds
Pour afficher la clé privée dans la sortie, utilisez la commande
WG_HIDE_KEYS=never wg show wg0
pour afficher la clé privée dans la sortie.Notez que la sortie ne contient que les entrées
latest handshake
ettransfer
si vous avez déjà envoyé du trafic via le tunnel VPN.Affichez la configuration IP de l'appareil
wg0
:# ip address show wg0 10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32__ scope global valid_lft forever preferred_lft forever
Ressources supplémentaires
-
La page de manuel
wg(8)
-
La page de manuel
wg-quick(8)