2 - Via l'utilisation du package Linux
Via l'utilisation du package Wireguard
Sur le client
1/ Tout d'abord vous devez installer wireguard sur la machine :
sudo apt-get install wireguard
Puis se déplacer dans le répertoire de wireguard, par défaut le dossier est vide :
root@linux: cd /etc/wireguard/
root@linux: ls -al
total 28
drwx------ 2 root root 4096 juin 13 12:03 ./
drwxr-xr-x 166 root root 12288 juin 13 11:24 ../
2/ Maintenant nous allons générer la clé privé et la clé publique :
wg genkey | tee privatekey | wg pubkey | tee publickey
Nous avons maintenant 2 fichiers dans le dossier wireguard :
root@linux: wg genkey | tee privatekey | wg pubkey | tee publickey
WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM=
root@linux: ls -al
total 28
drwx------ 2 root root 4096 juin 14 15:55 .
drwxr-xr-x 166 root root 12288 juin 13 11:24 ..
-rw-r--r-- 1 root root 45 juin 14 15:55 privatekey
-rw-r--r-- 1 root root 45 juin 14 15:55 publickey
3/ Pour continuer la configuration il faut noter le contenu des 2 clés générés :
root@linux: cat privatekey
iApdu05JqNGSp/r7PSpJ5Zqxs4kWSR6qYv9onitvsmo=
root@linux: cat publickey
WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM=
Attention ne partagez jamais votre clé privé !!
Clé privé : iApdu05JqNGSp/r7PSpJ5Zqxs4kWSR6qYv9onitvsmo=
Clé publique : WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM=
4/a) Création du fichier de configuration Wireguard client :
touch wg0.conf
4/b) Préparer dans un bloc note la configuration suivante :
Il faut bien veiller à remplacer les variables :
<private_key_client>-> Clé privé généré précédemment<range_ip_vpn>-> Adresse IP VPN du client<public_key_server>-> Clé publique du serveur (A récupérer sur le serveur)<ip_server>-> Adresse IP du serveur<port_server>-> Port écoutant sur le serveur
[Interface]
PrivateKey = <private_key_client>
Address = <range_ip_vpn>
[Peer]
###Public of the WireGuard VPN Server
PublicKey = <public_key_server>
### IP and Port of the WireGuard VPN Server
Endpoint = <ip_server>:<port_server>
### Allow all traffic
AllowedIPs = 0.0.0.0/0
4/c) Editer le fichier de configuration en collant la configuration complété :
nano wg0.conf
# ou
vim wg0.conf
Ce qui donne :
[Interface]
PrivateKey = iApdu05JqNGSp/r7PSpJ5Zqxs4kWSR6qYv9onitvsmo=
Address = 192.168.10.15/24
[Peer]
###Public of the WireGuard VPN Server
PublicKey = <public_key_server>
### IP and Port of the WireGuard VPN Server
Endpoint = vpn.domaine-name.com:51820
### Allow all traffic
AllowedIPs = 0.0.0.0/0
Le reste de la configuration continue sur la partie serveur
Sur le serveur
wg0est l'interface référençant tous les appareils pouvant se connecter au VPN.
Préparer la commande suivante :
wg set wg0 peer <public_key_client> allowed-ips <adress_ip_vpn_client>
Ce qui donne :
wg set wg0 peer WKtF71pM6wObswaXkbxJgwPhk8a6lqrPb9oKFjaGOmM= allowed-ips 192.168.10.15
Puis exécuter la commande.
Pour être sur du bon fonctionnement de la commande précédente, nous pouvons lister les clients enregistré dans le fichier de conf du serveur :
wg show wg0
Maintenant il faut confirmer et enregistrer la modification du fichier de configuration :
wg-quick save wg0
Sur le client
Nous avons créer le client et nous l'avons enregistré dans la configuration serveur. Maintenant il nous reste plus qu'a démarrer le VPN sur le client :
root@linux: wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.13.13.6/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63
Vérification du fonctionnement du VPN côté client :
ifconfig
Vérification du fonctionnement du nouveau client côté serveur :
wg show wg0
No comments to display
No comments to display