Complete the French mirror of the remaining articles
This commit is contained in:
@@ -6,6 +6,11 @@ description: Ancien guide WireGuard 14 conservé à titre archivé, voir le guid
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
::note{to="/serveex/core/wireguard"}
|
||||
|
||||
wg-easy 15 est devenu bien plus compliqué, « not so easy » dirait-on. C'est justement pour ça que ce vieux tutoriel v14 vaut la peine d'être gardé sous le coude : c'est toujours la façon la plus simple de monter un serveur WireGuard si vous n'avez pas besoin de ce qu'apporte la nouvelle version.
|
||||
::
|
||||
|
||||
## Introduction
|
||||
L'utilisation d'un VPN permet d'accéder à distance aux ressources locales du serveur sans les exposer sur internet. C'est notamment une manière propre de sécuriser l'accès à la console SSH, plutot que d'exposer le port sur internet. C'est pouvoir se connecter à son réseau où que l'on soit, de maniere sécurisée, et de faire dialoguer des machines qui sont sur des réseaux différents.
|
||||
|
||||
@@ -40,34 +45,39 @@ Ainsi, sur le réseau virtuel, seules les machines directement reliées pourront
|
||||
|
||||
## Côté serveur
|
||||
::note
|
||||
📋 __A vérifier au préalable :__
|
||||
📋 __À vérifier au préalable :__
|
||||
|
||||
- Vérifiez si le port `51820 UDP` estlibre sur votre serveur, et bien routé dans le NAT de la box `Source 51820 UDP -> Destination 51820 UDP -> Serveur`. En effet, votre serveur étant derrière votre box, le port de votre box doit etre joignable et rediriger vers le port de votre serveur connecté à votre VPN.
|
||||
- Vérifiez aussi que le port `51821 TCP` est libre sur le serveur pour accéder à la web ui.
|
||||
- Vérifiez que le port `51820 UDP` est disponible et correctement redirigé par votre box vers le serveur (`Source 51820 UDP -> Destination 51820 UDP -> Serveur`).
|
||||
- Vérifiez que le port `51821 TCP` est disponible pour l'interface web.
|
||||
::
|
||||
|
||||
::warning
|
||||
::warning{to="https://wg-easy.github.io/wg-easy/latest/"}
|
||||
|
||||
__Attention :__ Cette documentation utilise la version `14` de [wg-easy](https://wg-easy.github.io/wg-easy/latest/). La version `15`comporte des breaking changes qui ne sont pas compatibles avec les configurations proposées ici.
|
||||
__Attention :__ ce tutoriel utilise la version `14` de **wg-easy**. La version `15` introduit des changements incompatibles avec cette configuration.
|
||||
::
|
||||
|
||||
Structure des dossiers
|
||||
::file-tree
|
||||
---
|
||||
tree:
|
||||
/:
|
||||
- srv:
|
||||
- docker:
|
||||
- wg-easy:
|
||||
- config:
|
||||
- etc_wireguard/
|
||||
- compose.yaml
|
||||
- .env
|
||||
---
|
||||
::
|
||||
|
||||
```text [Arborescence]
|
||||
root
|
||||
└── docker
|
||||
└── wg-easy
|
||||
├── config
|
||||
│ └── etc_wireguard
|
||||
├── compose.yaml
|
||||
└── .env
|
||||
```
|
||||
Le conteneur tourne en mode `HOST`, c'est-à-dire qu'il utilise directement la pile réseau de l'hôte.
|
||||
|
||||
Le conteneur sera en mode `HOST`, c'est à dire qu'il occupera les ports de votre host comme s'il n'etait pas dans un conteneur mais directement installé sur la machine, sans passer par un sous-réseau.
|
||||
::steps{level="3"}
|
||||
### Déployer la stack
|
||||
|
||||
Ouvrez Dockge, cliquez sur `compose` et nommez la stack `wg_easy`.
|
||||
Ouvrez Dockge, cliquez sur `compose`, et nommez la stack `wg_easy`.
|
||||
|
||||
Copiez la configuration suivante :
|
||||
Collez la configuration suivante :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
@@ -77,7 +87,7 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- LANG=en
|
||||
- LANG=fr
|
||||
- WG_HOST=${HOST}
|
||||
- PASSWORD_HASH=${PW}
|
||||
- WG_DEFAULT_ADDRESS=${ADDRESS}
|
||||
@@ -95,22 +105,24 @@ services:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
```
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__
|
||||
✨ __Astuce :__
|
||||
|
||||
- Vous pouvez personnaliser le port de wireguard avec `WG_PORT` au lieu du port par defaut `51820`
|
||||
- Ajoutez le label de watchtower afin d'automatiser les mises à jour
|
||||
- Vous pouvez aussi indiquer votre propre port WireGuard avec `WG_PORT`
|
||||
- Ajoutez le label Watchtower pour activer les mises à jour automatiques
|
||||
|
||||
```yaml [compose.yaml]
|
||||
services:
|
||||
wg-easy:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
wg-easy:
|
||||
#...
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
::
|
||||
|
||||
Dans `.env` :
|
||||
Dans le `.env` :
|
||||
|
||||
```properties [.env]
|
||||
HOST=
|
||||
@@ -119,81 +131,95 @@ ADDRESS=
|
||||
IPS=
|
||||
```
|
||||
|
||||
| Variable | Valeur | Exemples |
|
||||
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
|
||||
| `HOST`{lang=properties} | IP publique de votre box internet (elle doit etre fixe) | `80.72.136.27` |
|
||||
| `PW`{lang=properties} | Hash du mot de passe, [à générer ici](https://bcrypt-generator.com/). **ATTENTION:** doubler les `$` | `$$2a$$12$$FF6T4QqSP9Ho`|
|
||||
| `ADDRESS`{lang=properties} | Plage d'adresse que le DHCP du VPN peut attribuer, le `x` doit etre présent, on peut changer les autres chiffres ou les remplacer par `x` aussi | `10.8.0.x` |
|
||||
| `IPS`{lang=properties} | les IPs qui doivent etre routées par les clients vers le VPN. Dans notre cas, on veut que seul le traffic vers le serveur et clients du VPN soit routé, on veut pas de leurs réseau local et on veut conserver l'accès à internet direct sans passer par le VPN.Si vous voulez tout de meme ajouter toutes les machines connectées aux appareils en local, ajoutez la plage `192.168.0.0/16` en séparant les deux plages par une virgule. | `10.8.0.0/24` |
|
||||
| Variable | Description | Exemple |
|
||||
|--------------|-------------|---------|
|
||||
| `HOST` | IP publique d'accès à votre hôte (l'IP de la box si c'est chez vous) | `80.75.137.27` |
|
||||
| `PW` | Hash bcrypt du mot de passe, [à générer ici](https://bcrypt-generator.com/). **ATTENTION :** doublez les `$` | `$$2a$$12$$FF6T4QqSP9Ho` |
|
||||
| `ADDRESS` | Plage d'adresses DHCP du VPN, le `x` doit rester, les autres chiffres peuvent varier | `10.8.0.x` |
|
||||
| `IPS` | Les IP routées par les clients dans le VPN. Utilisez `10.8.0.0/24` pour ne router que le trafic du VPN. Pour inclure le réseau local, ajoutez `192.168.0.0/16` séparé par une virgule. | `10.8.0.0/24` |
|
||||
|
||||
Puis déployez la stack.
|
||||
Déployez la stack.
|
||||
|
||||
### Activation du forwarding depuis l'host
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
Pour que l'host autorise les clients à communiquer entre eux, vous devez activer les paramèttres suivants :
|
||||
### Activer le forwarding sur l'hôte
|
||||
|
||||
Pour permettre la communication entre les clients du VPN, activez :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo sysctl net.ipv4.ip_forward=1
|
||||
sudo sysctl net.ipv4.conf.all.src_valid_mark=1
|
||||
```
|
||||
|
||||
### Recuperation des fichiers de conf
|
||||
### Récupérer les fichiers de configuration
|
||||
|
||||
Afin de configurer les clients, vous devez télécharger les fichiers de conf générés par l'host :
|
||||
Pour configurer les clients, téléchargez les fichiers de configuration depuis le serveur :
|
||||
|
||||
- Connectez vous via le web en local sur `http://ipduserveur:51821`
|
||||
- Allez sur `http://ipdevotreserveur:51821`
|
||||
- Créez un client
|
||||
- Téléchargez le fichier de conf
|
||||
- Renommez le en `wg0.conf`
|
||||
- Téléchargez le fichier de configuration
|
||||
- Renommez-le en `wg0.conf`
|
||||
|
||||
::caution
|
||||
|
||||
En cas d'échec, vérifiez les règles du pare-feu.
|
||||
En cas d'échec, vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
## Sur le serveur client
|
||||
---
|
||||
::note
|
||||
|
||||
Nous partons du principe que le serveur client est un serveur linux avec Docker installé
|
||||
Nous partons du principe que le client est un serveur Linux avec Docker installé
|
||||
::
|
||||
|
||||
Structure des dossiers
|
||||
::file-tree
|
||||
---
|
||||
tree:
|
||||
/:
|
||||
- srv:
|
||||
- docker:
|
||||
- wireguard:
|
||||
- config:
|
||||
- wg_confs/
|
||||
- compose.yaml
|
||||
---
|
||||
::
|
||||
|
||||
```text [Arborescence]
|
||||
root
|
||||
└── docker
|
||||
└── wireguard
|
||||
└── config
|
||||
│ └── wg_confs
|
||||
└── compose.yaml
|
||||
```
|
||||
::steps{level="3"}
|
||||
### Créer le dossier de configuration
|
||||
|
||||
Creez le dossier `/srv/docker/wireguard/config/wg_confs`.
|
||||
Créez le dossier `/srv/docker/wireguard/config/wg_confs` :
|
||||
|
||||
::tip{icon="" to="/serveex/files/file-browser-quantum"}
|
||||
✨ __Astuce pour les allergiques au terminal :__
|
||||
vous pouvez utiliser **File Browser Quantum** pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
|
||||
✨ __Astuce :__ utilisez **File Browser** pour parcourir et modifier vos fichiers sans terminal
|
||||
::
|
||||
|
||||
```bash [Terminal]
|
||||
sudo mkdir -p /srv/docker/wireguard/config/wg_confs
|
||||
```
|
||||
|
||||
Copiez le fichier` wg0.conf` téléchargé précédemment.
|
||||
### Copier le fichier de configuration
|
||||
|
||||
Copiez le fichier `wg0.conf` téléchargé précédemment :
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ Le moyen le plus simple est de transférer le fichier par sftp dans le dossier `/home/nomdutilisateur` puis de le copier dans le bon dossier :
|
||||
✨ __Astuce :__ le plus simple est de transférer le fichier en SFTP dans `/home/votreutilisateur`, puis de le déplacer :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo cp ~/wg0.conf /srv/docker/wireguard/config/wg_confs
|
||||
```bash [Terminal]
|
||||
sudo cp ~/wg0.conf /srv/docker/wireguard/config/wg_confs
|
||||
```
|
||||
::
|
||||
|
||||
Creez le `compose.yaml` dans `/srv/docker/wireguard `:
|
||||
### Déployer le conteneur
|
||||
|
||||
Créez le `compose.yaml` dans `/srv/docker/wireguard` :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /srv/docker/wireguard/compose.yaml
|
||||
```
|
||||
Appuyez sur `i` pour rentrer en modification et copiez la configuration ci-dessous
|
||||
|
||||
Collez :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
@@ -203,37 +229,43 @@ services:
|
||||
network_mode: host
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE #optional
|
||||
- SYS_MODULE #facultatif
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
volumes:
|
||||
- /srv/docker/wireguard/config:/config
|
||||
- /lib/modules:/lib/modules #optional
|
||||
- /lib/modules:/lib/modules #facultatif
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
Démarrez le conteneur :
|
||||
|
||||
Lancez le conteneur :
|
||||
```bash [Terminal]
|
||||
cd /srv/docker/wireguard
|
||||
sudo docker compose up -d
|
||||
```
|
||||
|
||||
::note
|
||||
|
||||
A répéter pour chaque client
|
||||
Répétez pour chaque client
|
||||
::
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
## Autres appareils
|
||||
|
||||
- **Téléphone :** installer wireguard et scanner le QR code via le webui (http://ipduserveur:51821)
|
||||
- **PC :** Installer wireguard client et mettre directement le fichier de conf téléchargé via le webui
|
||||
- **Téléphone :** installez Wireguard et scannez le QR code depuis l'interface web (`http://ipdevotreserveur:51821`)
|
||||
- **PC :** installez le client Wireguard et importez le fichier de configuration
|
||||
|
||||
::warning
|
||||
|
||||
__Attention :__ Si des machines clientes sont sur le meme réseau local que le serveur (derriere la box), éditez le fichier `wg0.conf` uploadé sur cette machine en changeant avec l'adresse locale du serveur : `Endpoint = ipduserveur:51820`{lang=properties}
|
||||
__Attention :__ si un appareil client est sur le même réseau local que le serveur, modifiez `wg0.conf` et remplacez l'endpoint par l'IP locale du serveur :
|
||||
`Endpoint = ip-de-votre-serveur:51820`
|
||||
::
|
||||
|
||||
Et voilà ce que cela peut donner !
|
||||
Et voici le résultat :
|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user