GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer WireGuard VPN sur Ubuntu 20.04

WireGuard est un réseau privé virtuel open source et axé sur la sécurité conçu pour la simplicité et la facilité d'utilisation. Il prend en charge différents systèmes d'exploitation, notamment Linux, macOS, Windows, BSD et Android. Il s'agit d'un VPN simple et polyvalent qui peut être facilement déployé sur de petits appareils vers des serveurs haut de gamme. Il s'agit d'un serveur VPN point à point au lieu d'un modèle client-serveur. Il utilise un mécanisme d'échange de clé publique pour authentifier le client.

Si vous recherchez un VPN léger et rapide, alors le VPN WireGuard est le meilleur choix pour vous. Dans ce tutoriel, nous allons vous montrer comment installer le serveur et le client WireGuard VPN sur Ubuntu 20.04.

Prérequis

  • Deux serveurs exécutant le serveur Ubuntu 20.04.
  • Un mot de passe root est configuré sur les deux serveurs.

Mise en route

Tout d'abord, il est recommandé de mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour avec la commande suivante :

apt-get update -y

Une fois tous les packages mis à jour, vous devrez installer les Iptables sur votre système. Vous pouvez l'installer avec la commande suivante :

apt-get install iptables -y

Une fois l'installation terminée, vous pouvez passer à l'étape suivante.

Installer le serveur VPN WireGuard

Par défaut, le package WireGuard est disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous pouvez l'installer en exécutant la commande suivante :

apt-get install wireguard -y

Une fois le package WireGuard installé, vous pouvez passer à l'étape suivante.

Configurer le serveur WireGuard

WireGuard fonctionne en échangeant des clés publiques entre chaque appareil du réseau WireGuard. Vous devrez donc créer une clé publique et privée sur le serveur.

WireGuard fournit l'utilitaire de ligne de commande wg et wg-quick pour créer une clé et gérer les interfaces.

Vous pouvez créer à la fois une clé publique et une clé privée à l'aide de la commande suivante :

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Une fois les deux clés créées, vous pouvez les vérifier avec la commande suivante :

ls /etc/wireguard

Vous devriez voir le résultat suivant :

privatekey  publickey

Vous pouvez afficher le contenu de la clé privée avec la commande suivante :

cat /etc/wireguard/privatekey

Vous devriez voir le résultat suivant :

4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=

Vous pouvez afficher le contenu de la clé publique avec la commande suivante :

cat /etc/wireguard/publickey

Vous devriez voir le résultat suivant :

00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=

Ensuite, vous devrez créer une interface réseau pour WireGuard. Vous pouvez le créer avec la commande suivante :

nano /etc/wireguard/wg0.conf

Ajoutez les lignes suivantes :

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = server-private-key
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Enregistrez et fermez le fichier lorsque vous avez terminé.

:

  • Adresse : Une adresse IP privée pour l'interface wg0.
  • Port d'écoute : Spécifiez le port d'écoute de WireGuard.
  • Clé privée : Une clé privée stockée dans le fichier /etc/wireguard/privatekey.
  • Publication : Spécifiez la commande qui autorise le trafic à quitter le serveur et donne aux clients VPN l'accès à Internet. Remplacez également eth0 par le nom de votre interface réseau.

Ensuite, définissez l'autorisation appropriée pour la clé privée et le fichier wg0.

chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Ensuite, activez l'interface wg0 en exécutant la commande suivante :

wg-quick up wg0

Vous devriez obtenir le résultat suivant :

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Vous pouvez également démarrer le service WireGuard en utilisant systemd comme indiqué ci-dessous :

systemctl start [email protected]

Ensuite, activez le service WireGuard pour qu'il démarre au redémarrage du système avec la commande suivante :

systemctl enable [email protected]

Ensuite, vérifiez l'état du service WireGuard avec la commande suivante :

systemctl status [email protected]

Vous devriez obtenir le résultat suivant :

? [email protected] - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
     Active: active (exited) since Thu 2020-12-10 11:42:14 UTC; 7s ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
   Main PID: 2173 (code=exited, status=0/SUCCESS)

Dec 10 11:42:14 ubuntu2004 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/63
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Dec 10 11:42:14 ubuntu2004 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

Vous pouvez également vérifier l'état de l'interface wg0 avec la commande suivante :

wg show wg0

Vous devriez obtenir le résultat suivant :

interface: wg0
  public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  private key: (hidden)
  listening port: 51820

Vous pouvez obtenir le statut de l'adresse IP de l'interface wg0 avec la commande suivante :

ip a show wg0

Vous devriez obtenir le résultat suivant :

13: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Activer le transfert IP

Ensuite, vous devrez activer le transfert IP sur votre serveur pour acheminer les paquets entre les clients VPN et Internet. Vous pouvez l'activer en éditant le fichier /etc/sysctl.conf :

nano /etc/sysctl.conf

Modifiez la ligne suivante :

net.ipv4.ip_forward=1

Enregistrez et fermez le fichier puis exécutez la commande suivante pour appliquer les modifications de configuration :

sysctl -p

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer et configurer le client WireGuard

Tout d'abord, vous devrez installer le package WireGuard sur la machine cliente. Vous pouvez l'installer avec la commande suivante :

apt-get install wireguard -y

Après avoir installé le package WireGuard, créez une clé privée et une clé publique avec la commande suivante :

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Une fois les deux clés créées, vous devrez créer un nouveau fichier de configuration.

Vous pouvez le créer avec la commande suivante :

nano /etc/wireguard/wg0.conf

Ajoutez les lignes suivantes :

[Interface]
PrivateKey = client-private-key
Address = 10.0.0.2/24

[Peer]
PublicKey = server-public-key
Endpoint = server-ip-address:51820
AllowedIPs = 0.0.0.0/0

Enregistrez et fermez le fichier lorsque vous avez terminé.

:

  • Adresse : Une adresse IP privée pour l'interface wg0.
  • Clé privée : Spécifiez la clé privée sur la machine cliente.
  • Clé publique : Spécifiez la clé publique sur la machine serveur.
  • Point de terminaison : Spécifiez l'adresse IP du serveur.
  • IP autorisées : Spécifiez la liste des adresses IP autorisées.

Ensuite, vous devrez ajouter la clé publique et l'adresse IP du client sur la machine serveur.

Sur la machine serveur, exécutez la commande suivante pour ajouter les deux :

wg set wg0 peer client-public-key allowed-ips 10.0.0.2

Ensuite, vous devrez afficher l'interface wg0 sur la machine cliente.

Sur la machine cliente, exécutez la commande suivante pour afficher l'interface :

wg-quick up wg0

Vous devriez obtenir le résultat suivant :

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820

À ce stade, votre ordinateur client est connecté au serveur VPN WireGuard. Vous pouvez vérifier l'état de la connexion avec la commande suivante :

wg

Vous devriez obtenir le résultat suivant :

interface: wg0
  public key: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4=
  private key: (hidden)
  listening port: 38830
  fwmark: 0xca6c

peer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  endpoint: 69.87.216.36:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 41 seconds ago
  transfer: 5.27 KiB received, 12.97 KiB sent

Conclusion

Félicitations ! vous avez installé et configuré avec succès le serveur et le client WireGuard VPN sur le serveur Ubuntu 20.04. Maintenant, le trafic de votre machine cliente doit être acheminé via votre machine serveur. Vous pouvez désormais surfer sur Internet de manière anonyme et garder vos données privées.


Ubuntu
  1. Comment configurer Wireguard VPN sur CentOS 8

  2. Comment configurer WireGuard VPN sur Ubuntu (un guide étape par étape)

  3. Comment configurer WireGuard sur Ubuntu 22.04

  4. Ubuntu - Comment définir une adresse IP statique dans Ubuntu ?

  5. Comment configurer WireGuard VPN sur CentOS 8

Comment configurer le cluster RabbitMQ sur Ubuntu 20.04

Comment configurer le serveur VPN Pritunl sur Ubuntu 20.04

Comment configurer un VPN sur Ubuntu

Comment configurer un Vpn Pptp sur le propre serveur Ubuntu ?

Comment configurer WireGuard VPN sur Debian 11

Comment configurer WireGuard VPN sur Linux