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)
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:
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.**