8.5. Configuration d'un serveur WireGuard à l'aide de nmcli
Vous pouvez configurer le serveur WireGuard en créant un profil de connexion dans NetworkManager. Utilisez cette méthode pour laisser NetworkManager gérer la connexion WireGuard.
Cette procédure suppose les paramètres suivants :
Serveur :
-
Clé privée :
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
-
Adresse IPv4 du tunnel :
192.0.2.1/24
-
Adresse IPv6 du tunnel :
2001:db8:1::1/32
-
Clé privée :
Client :
-
Clé publique :
bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
-
Adresse IPv4 du tunnel :
192.0.2.2/24
-
Adresse IPv6 du tunnel :
2001:db8:1::2/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 serveur
- Les adresses IP du tunnel statique et les masques de sous-réseau du client
- La clé publique du client
- Les adresses IP du tunnel statique et les masques de sous-réseau du serveur
Procédure
Ajouter un profil de connexion NetworkManager WireGuard :
# nmcli connection add type wireguard con-name server-wg0 ifname wg0 autoconnect no
Cette commande crée un profil nommé
server-wg0
et lui affecte l'interface virtuellewg0
. Pour éviter que la connexion ne démarre automatiquement après l'avoir ajoutée sans finaliser la configuration, désactivez le paramètreautoconnect
.Définissez l'adresse IPv4 du tunnel et le masque de sous-réseau du serveur :
# nmcli connection modify server-wg0 ipv4.method manual ipv4.addresses 192.0.2.1/24
Définissez l'adresse IPv6 du tunnel et le masque de sous-réseau du serveur :
# nmcli connection modify server-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::1/32
Ajouter la clé privée du serveur au profil de connexion :
# nmcli connection modify server-wg0 wireguard.private-key "YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg="
Définir le port pour les connexions WireGuard entrantes :
# nmcli connection modify server-wg0 wireguard.listen-port 51820
Définissez toujours un numéro de port fixe sur les hôtes qui reçoivent les connexions entrantes de WireGuard. Si vous ne définissez pas de port, WireGuard utilise un port libre aléatoire à chaque fois que vous activez l'interface
wg0
.Ajoutez des configurations d'homologues pour chaque client que vous souhaitez autoriser à communiquer avec ce serveur. Vous devez ajouter ces paramètres manuellement, car l'utilitaire
nmcli
ne permet pas de définir les propriétés de connexion correspondantes.Modifiez le fichier
/etc/NetworkManager/system-connections/server-wg0.nmconnection
et ajouter :[wireguard-peer.bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=] allowed-ips=192.0.2.2;2001:db8:1::2;
-
L'entrée
[wireguard-peer.<public_key_of_the_client>]
définit la section de l'homologue du client, et le nom de la section contient la clé publique du client. Le paramètre
allowed-ips
définit les adresses IP du tunnel du client qui sont autorisées à envoyer des données à ce serveur.Ajouter une section pour chaque client.
-
L'entrée
Recharger le profil de connexion
server-wg0
:# nmcli connection load /etc/NetworkManager/system-connections/server-wg0.nmconnection
Optionnel : Configurez la connexion pour qu'elle démarre automatiquement, entrez :
# nmcli connection modify server-wg0 autoconnect yes
Réactiver la connexion
server-wg0
:# nmcli connection up server-wg0
Prochaines étapes
Vérification
Affichez la configuration de l'interface de l'appareil
wg0
:# wg show wg0 interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128
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.Affichez la configuration IP de l'appareil
wg0
:# ip address show wg0 20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::3ef:8863:1ce2:844/64 scope link noprefixroute valid_lft forever preferred_lft forever
Ressources supplémentaires
-
La page de manuel
wg(8)
-
La section
WireGuard setting
dans la page de manuelnm-settings(5)