# 04 - Préparation de l'environnement

Cette étape consiste à préparer l'environnement de travail du serveur WireGuard.

Les clés cryptographiques du serveur seront générées puis stockées dans un répertoire dédié afin de faciliter la maintenance et les sauvegardes.

---

## Pourquoi stocker les clés dans `/opt/network` ?

Par défaut, WireGuard ne fournit aucune arborescence permettant d'organiser les clés des différents clients.

L'infrastructure Numericare utilise donc un répertoire dédié afin de centraliser toutes les informations liées au VPN.

> **Avantages**
> 
> - Organisation claire des fichiers.
> - Sauvegarde facilitée.
> - Séparation entre la configuration système et les données.
> - Stockage des QR Codes des clients.
> - Gestion simplifiée des futurs clients VPN.

---

## Arborescence retenue

```
/opt/network/

└── wireguard
    ├── server
    │     ├── server.key
    │     └── server.pub
    │
    ├── clients
    │     ├── iphone/
    │     ├── windows/
    │     ├── ubuntu/
    │     └── ...
    │
    └── qr
          ├── iphone.png
          ├── windows.png
          └── ...

```

---

## Création de l'arborescence

```
sudo mkdir -p /opt/network/wireguard/server

sudo mkdir -p /opt/network/wireguard/clients

sudo mkdir -p /opt/network/wireguard/qr

```

---

## Vérification

```
tree /opt/network

```

**Résultat attendu**

```
/opt/network
└── wireguard
    ├── clients
    ├── qr
    └── server

```

---

## Création des clés du serveur

Les clés WireGuard utilisent la cryptographie à clé publique.

- Une clé privée reste exclusivement sur le serveur.
- Une clé publique sera communiquée à tous les clients.

---

## Se placer dans le répertoire du serveur

```
cd /opt/network/wireguard/server

```

---

## Sécuriser les permissions par défaut

Avant de générer les clés, il est recommandé de limiter automatiquement les droits des nouveaux fichiers.

```
umask 077

```

Les fichiers créés seront uniquement accessibles au propriétaire.

---

## Génération des clés

```
wg genkey | tee server.key | wg pubkey > server.pub

```

---

## Contenu du répertoire

```
ls -lh

```

**Résultat attendu**

```
server.key
server.pub

```

---

## Afficher les clés

```
cat server.key

cat server.pub

```

> **Important**
> 
> - La clé privée (`server.key`) ne doit jamais être transmise.
> - La clé publique (`server.pub`) pourra être utilisée dans la configuration des clients VPN.

---

## Vérification des permissions

```
ls -l

```

**Résultat attendu**

```
-rw------- server.key
-rw------- server.pub

```

---

## Sauvegarde recommandée

Les clés du serveur sont les éléments les plus importants de l'infrastructure WireGuard.

Une copie hors du serveur est fortement recommandée.

> **Bonnes pratiques**
> 
> - Copie sur le NAS Synology.
> - Sauvegarde chiffrée.
> - Ne jamais envoyer la clé privée par e-mail ou messagerie.
> - Conserver une copie hors site.

---

## Vérifications complémentaires

Calculer l'empreinte SHA256 des clés permet de vérifier ultérieurement leur intégrité.

```
sha256sum server.key

sha256sum server.pub

```

---

## Résumé de cette étape

<table id="bkmrk-%C3%89l%C3%A9ment-statut-arbor"><thead><tr><th>Élément</th><th>Statut</th></tr></thead><tbody><tr><td>Arborescence créée</td><td>✅</td></tr><tr><td>Répertoire serveur</td><td>✅</td></tr><tr><td>Répertoire clients</td><td>✅</td></tr><tr><td>Répertoire QR Codes</td><td>✅</td></tr><tr><td>Clé privée générée</td><td>✅</td></tr><tr><td>Clé publique générée</td><td>✅</td></tr><tr><td>Permissions vérifiées</td><td>✅</td></tr></tbody></table>

---

> À l'issue de cette étape, le serveur possède désormais son identité cryptographique. La page suivante sera consacrée à l'activation du routage IP et à la création de l'interface WireGuard (`wg0`).