commit
bb46ceecec
@ -0,0 +1,268 @@ |
|||||||
|
# WIREGUARD-VPN |
||||||
|
|
||||||
|
## INSTALLATION ET CONFIGURATION SERVEUR (Linux): |
||||||
|
|
||||||
|
### Update et installation: |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo apt update |
||||||
|
sudo apt install wireguard |
||||||
|
``` |
||||||
|
|
||||||
|
### Création des clefs: |
||||||
|
|
||||||
|
```bash |
||||||
|
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey |
||||||
|
``` |
||||||
|
|
||||||
|
### Création de la configuration serveur: |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo nano /etc/wireguard/wg0.conf |
||||||
|
``` |
||||||
|
|
||||||
|
Dans ce fichier de configuration, CLEF_PRIVEE_SERVEUR et INTERFACE_RESEAU sont à renseigner (remplacer): |
||||||
|
|
||||||
|
```bash |
||||||
|
[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: |
||||||
|
|
||||||
|
```bash |
||||||
|
cat /etc/wireguard/privatekey |
||||||
|
``` |
||||||
|
|
||||||
|
L' 'INTERFACE_RESEAU' s'obtient avec la commande: |
||||||
|
|
||||||
|
```bash |
||||||
|
ip -o -4 route show to default | awk '{print $5}' |
||||||
|
``` |
||||||
|
|
||||||
|
Enfin, on protège l'accès aux fichiers sensibles: |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf} |
||||||
|
``` |
||||||
|
|
||||||
|
Configuration de "l'IP forwarding": |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo nano /etc/sysctl.conf |
||||||
|
``` |
||||||
|
|
||||||
|
```bash |
||||||
|
net.ipv4.ip_forward=1 |
||||||
|
``` |
||||||
|
|
||||||
|
Vérifier que le fichier /proc/sys/net/ipv4/ip_forward contienne le chiffre 1: |
||||||
|
|
||||||
|
```bash |
||||||
|
cat /proc/sys/net/ipv4/ip_forward |
||||||
|
1 |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
### Démarrer le serveur: |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo wg-quick up wg0 |
||||||
|
``` |
||||||
|
|
||||||
|
Pour activer le serveur au démarrage du système: |
||||||
|
|
||||||
|
```bash |
||||||
|
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: |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo apt update |
||||||
|
sudo apt install wireguard |
||||||
|
``` |
||||||
|
|
||||||
|
#### Création des clefs: |
||||||
|
|
||||||
|
```bash |
||||||
|
wg genkey | sudo tee /etc/wireguard/clients/clientprivatekey | wg pubkey | sudo tee /etc/wireguard/clients/clientpublickey |
||||||
|
``` |
||||||
|
|
||||||
|
#### création de la configuration: |
||||||
|
|
||||||
|
```bash |
||||||
|
nano /etc/wireguard/client.conf |
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
```bash |
||||||
|
/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": |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo nano /etc/sysctl.conf |
||||||
|
``` |
||||||
|
|
||||||
|
```bash |
||||||
|
/etc/sysctl.conf |
||||||
|
|
||||||
|
net.ipv4.ip_forward=1 |
||||||
|
``` |
||||||
|
|
||||||
|
#### Sécurisation des fichiers sensibles: |
||||||
|
```bash |
||||||
|
sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf} |
||||||
|
``` |
||||||
|
|
||||||
|
#### Pour démarrer la connection: |
||||||
|
```bash |
||||||
|
sudo wg-quick up wg0 |
||||||
|
``` |
||||||
|
|
||||||
|
#### Installation d'un plugin pour Gnome |
||||||
|
|
||||||
|
- Installer l'extension [Wireguard Indicator, by Gregos-Winus](https://extensions.gnome.org/extension/3160/wireguard-indicator/) |
||||||
|
- Suivez les indications données en cliquant sur l'applet en haut à droite. |
||||||
|
|
||||||
|
### WINDOWS: |
||||||
|
|
||||||
|
#### Télécharger l'application à l'adresse: |
||||||
|
|
||||||
|
https://download.wireguard.com/windows-client/wireguard-installer.exe |
||||||
|
|
||||||
|
#### Créer une nouvelle config: |
||||||
|
|
||||||
|
![image](docs/win1.png) |
||||||
|
|
||||||
|
![image](docs/win2.png) |
||||||
|
|
||||||
|
#### Configuration: |
||||||
|
|
||||||
|
Appliquer la configuration suivante en renseignant CLEF-PRIVEE_CLIENT, IP_PUBLIQUE_SERVEUR et CLEF_PUBLIQUE_SERVEUR: |
||||||
|
|
||||||
|
```bash |
||||||
|
/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: |
||||||
|
|
||||||
|
```bash |
||||||
|
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: |
||||||
|
|
||||||
|
```bash |
||||||
|
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: |
||||||
|
|
||||||
|
```bash |
||||||
|
sudo wg-quick down wg0 |
||||||
|
sudo wg-quick up wg0 |
||||||
|
``` |
||||||
|
|
||||||
|
#### Connection client Android via QRcode: |
||||||
|
|
||||||
|
- Commande à éffectuer sur le serveur pour afficher le QRcode: |
||||||
|
```bash |
||||||
|
sudo apt install qrencode |
||||||
|
qrencode -t ansiutf8 < /etc/wireguard/clients/client.conf |
||||||
|
``` |
||||||
|
|
||||||
|
![image](docs/QRcode.png) |
||||||
|
|
||||||
|
### 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: |
||||||
|
|
||||||
|
```bash |
||||||
|
\\ADRESSEIP.LOCALE.MACHINE.SAMBA\ |
||||||
|
``` |
||||||
|
|
||||||
|
![image](docs/win3.png) |
||||||
|
|
||||||
|
* 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. |
||||||
|
|
||||||
|
<!-- ![image de la fenêtre contextuelle de demande d'acréditation](docs/win4.png) --> |
||||||
|
|
||||||
|
#### 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: |
||||||
|
|
||||||
|
```bash |
||||||
|
smb://ADRESSEIP.LOCALE.MACHINE.SAMBA/ |
||||||
|
``` |
||||||
|
|
||||||
|
![image](docs/lin1.png) |
||||||
|
|
||||||
|
* Enfin, appuyer sur "se connecter" |
||||||
|
|
||||||
|
**Attention, sur Linux les slashs sont inversés par rapport à Windows.** |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 163 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 25 KiB |
Loading…
Reference in new issue