deploy your own vpn endpoint with Wireguard
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
GregLebreton bb46ceecec push 2 years ago
docs push 2 years ago
README.md push 2 years ago

README.md

WIREGUARD-VPN

INSTALLATION ET CONFIGURATION SERVEUR (Linux):

Update et installation:

sudo apt update
sudo apt install wireguard

Création des clefs:

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

Création de la configuration serveur:

sudo nano /etc/wireguard/wg0.conf

Dans ce fichier de configuration, CLEF_PRIVEE_SERVEUR et INTERFACE_RESEAU sont à renseigner (remplacer):

[Interface]
# Adresse interne du serveur
Address = 10.0.0.1/24
ListenPort = 51820
# Clef privée du serveur
PrivateKey = 'CLEF_PRIVEE_SERVEUR'

# Routing vers l'interface réseau
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o 'INTERFACE_RESEAU' -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o 'INTERFACE_RESEAU' -j MASQUERADE

[Peer]
# Ajouter les clients
PublicKey = 'CLE_PUBLIQUE_CLIENT_1'
AllowedIPs = 10.0.0.2/32

[Peer]
# Ajouter les clients
PublicKey = 'CLE_PUBLIQUE_CLIENT_2'
AllowedIPs = 10.0.0.3/32

La 'CLEF_PRIVEE_SERVEUR' s'obtient avec la commande:

cat /etc/wireguard/privatekey

L' 'INTERFACE_RESEAU' s'obtient avec la commande:

ip -o -4 route show to default | awk '{print $5}'

Enfin, on protège l'accès aux fichiers sensibles:

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

Configuration de "l'IP forwarding":

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1

Vérifier que le fichier /proc/sys/net/ipv4/ip_forward contienne le chiffre 1:

cat /proc/sys/net/ipv4/ip_forward
1

Démarrer le serveur:

sudo wg-quick up wg0

Pour activer le serveur au démarrage du système:

sudo systemctl enable wg-quick@wg0.service

**NOTE:

  • Si le serveur se trouve dérrière un routeur ou box internet, ne pas oublier de faire la redirection de port (ici dans l'exemple, le 51820) de la box vers l-IP du serveur (sur le réseau interne)
  • L'adresse publique du serveur devient alors celle du routeur/box dans la configuration client:
    Endpoint = SERVER_IP_ADDRESS:51820

INSTALLATION ET CONFIGURATION CLIENT:

LINUX:

Update et installation:

sudo apt update
sudo apt install wireguard

Création des clefs:

wg genkey | sudo tee /etc/wireguard/clients/clientprivatekey | wg pubkey | sudo tee /etc/wireguard/clients/clientpublickey

création de la configuration:

nano /etc/wireguard/client.conf
/etc/wireguard/client.conf

[Interface]
# Clef privée du client
PrivateKey = 'CLIENT_PRIVATE_KEY'
# Adresse interne du client (en cohérence avec l'IP interne du serveur)
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
# Clef publique du serveur
PublicKey = 'SERVER_PUBLIC_KEY'
# Adresse IP publique du serveur
Endpoint = 'SERVER_IP_ADDRESS':51820
AllowedIPs = 0.0.0.0/0

Configuration de "l'IP forwarding":

sudo nano /etc/sysctl.conf
/etc/sysctl.conf

net.ipv4.ip_forward=1

Sécurisation des fichiers sensibles:

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

Pour démarrer la connection:

sudo wg-quick up wg0

Installation d'un plugin pour Gnome

WINDOWS:

Télécharger l'application à l'adresse:

https://download.wireguard.com/windows-client/wireguard-installer.exe

Créer une nouvelle config:

image

image

Configuration:

Appliquer la configuration suivante en renseignant CLEF-PRIVEE_CLIENT, IP_PUBLIQUE_SERVEUR et CLEF_PUBLIQUE_SERVEUR:

/etc/wireguard/clients/client.conf

[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
  • Note: La port et les adresses IP internes au réseau peuvent également être modifiées (en cohérence avec la configuration du serveur)

Ajouter un client:

Commande à effectuer SUR LE SERVEUR:

sudo wg set wg0 peer 'CLEF_PUBLIQUE_CLIENT' allowed-ips 'IP_INTERNE_CLIENT'
  • NOTE: Après l'arret du serveur, l'ajout du client est réinitialisé. Privilégier l'ajout du client dans la configuration du serveur au niveau de "[Peer]"

La CLEF_PUBLIQUE_CLIENT s'obtient SUR LE CLIENT avec la commande:

sudo cat /etc/wireguard/publickey

Pour l'IP interne, elle doit être cohérente avec l'adresse IP interne du serveur. Dans cet exemple, le serveur a pour IP interne 10.0.0.1 et le client 10.0.0.2

Après l'ajout d'un client redémarrer le serveur:

sudo wg-quick down wg0
sudo wg-quick up wg0

Connection client Android via QRcode:

  • Commande à éffectuer sur le serveur pour afficher le QRcode:
sudo apt install qrencode
qrencode -t ansiutf8 < /etc/wireguard/clients/client.conf

image

Accès partage SAMBA:

Pour accéder au partage samba d'une machine sur le même réseaux que le serveur:

A) pour un client Windows:

  • Dans le barre d'adresse de l'explorateur windows, entrer l'adresse de la machine partageant du contenu via samba:
\\ADRESSEIP.LOCALE.MACHINE.SAMBA\

image

  • Entrer les acréditations (nom d'utilisateur et mot de passe de la session utilisateur) de la machine partageant le contenu samba lors de l'apparition de la fenêtre contextuelle.

B) pour un client Linux:

  • Dans l'explorateur de fichiers, choisir autre emplacements; en bas de la fenêtre, un champs de connexion serveur attend une URL, y entrer l'adresse de la machine partageant du contenu via samba:
smb://ADRESSEIP.LOCALE.MACHINE.SAMBA/

image

  • Enfin, appuyer sur "se connecter"

Attention, sur Linux les slashs sont inversés par rapport à Windows.