
# Chiffrement non persistant pour un swap sur plusieurs partitions

Il est possible de combiner un chiffrement **non persistant** avec un swap réparti sur plusieurs partitions. Chaque partition sera chiffrée individuellement avec une clé aléatoire générée au démarrage (via `/dev/urandom`), puis ces partitions seront activées comme des espaces de swap indépendants.

## Configuration d'un swap chiffré non persistant sur plusieurs partitions

### **1. Désactiver les swaps existants**

Avant de configurer le nouveau swap, désactivez toutes les partitions swap actuellement actives :

```bash
sudo swapoff -a
```

### **2. Chiffrer chaque partition de manière non persistante**

Pour chaque partition de swap (par exemple `/dev/sdb1`, `/dev/sdc1`, `/dev/sdd1`), configurez un chiffrement non persistant avec **dm-crypt**.

#### Exemple pour une partition `/dev/sdb1` :

1. **Créer une couche de chiffrement temporaire :**
   ```bash
   sudo cryptsetup open --type plain --cipher aes-xts-plain64 --key-file /dev/urandom /dev/sdb1 cryptswap1
   ```
   - **`--type plain`** : Utilise un chiffrement simple (sans métadonnées).
   - **`--cipher aes-xts-plain64`** : Définit l'algorithme de chiffrement (AES avec XTS, souvent recommandé pour les performances).
   - **`--key-file /dev/urandom`** : Génère une clé aléatoire à chaque démarrage.
2. **Formater le périphérique mappé en swap :**
   ```bash
   sudo mkswap /dev/mapper/cryptswap1
   ```
3. **Activer le swap :**
   ```bash
   sudo swapon /dev/mapper/cryptswap1
   ```
4. **Répétez les étapes 1 à 3 pour chaque partition** (par exemple `/dev/sdc1`, `/dev/sdd1`), en remplaçant `cryptswap1` par des noms uniques comme `cryptswap2`, `cryptswap3`, etc.


### **3. Ajouter une configuration automatique (optionnelle)**

Pour automatiser cette configuration au démarrage, modifiez les fichiers suivants :

#### **Dans `/etc/crypttab` :**

Ajoutez une ligne pour chaque partition swap chiffrée, comme suit :

```plaintext
cryptswap1 /dev/sdb1 /dev/urandom cipher=aes-xts-plain64,size=256
cryptswap2 /dev/sdc1 /dev/urandom cipher=aes-xts-plain64,size=256
cryptswap3 /dev/sdd1 /dev/urandom cipher=aes-xts-plain64,size=256
```

#### **Dans `/etc/fstab` :**

Ajoutez une ligne pour chaque périphérique mappé :

```plaintext
/dev/mapper/cryptswap1 none swap sw 0 0
/dev/mapper/cryptswap2 none swap sw 0 0
/dev/mapper/cryptswap3 none swap sw 0 0
```

### **4. Activer et vérifier la configuration**

1. Rechargez les configurations et activez les swaps :
   ```bash
   sudo systemctl restart systemd-cryptsetup@cryptswap1.service
   sudo systemctl restart systemd-cryptsetup@cryptswap2.service
   sudo systemctl restart systemd-cryptsetup@cryptswap3.service
   ```

2. Vérifiez l'état des swaps :
   ```bash
   swapon --show
   lsblk -o NAME,TYPE,SIZE,MOUNTPOINT,FSTYPE
   ```

Vous devriez voir que chaque partition chiffrée est activée en tant que swap.

## Avantages de cette configuration :

1. **Chiffrement sécurisé** :
   - Le swap est chiffré avec une clé aléatoire à chaque démarrage, garantissant que les données précédentes ne sont pas récupérables.
2. **Utilisation simultanée des partitions** :
   - Linux répartira automatiquement les écritures entre les différentes partitions de swap (en fonction de leur priorité).
3. **Simplicité d'automatisation** :
   - Une fois configurée, cette solution fonctionne automatiquement sans intervention de l'utilisateur.

## Points à surveiller :

- **Performances** :
  - Si les partitions sont sur des disques de vitesses différentes, le disque le plus lent peut devenir un goulot d'étranglement.
- **Priorités** :
  - Vous pouvez définir des priorités dans `/etc/fstab` pour influencer la répartition de la charge entre les partitions. Par exemple :
    ```plaintext
    /dev/mapper/cryptswap1 none swap sw,pri=10 0 0
    /dev/mapper/cryptswap2 none swap sw,pri=5 0 0
    /dev/mapper/cryptswap3 none swap sw,pri=1 0 0
    ```

Avec cette approche, votre swap sera réparti sur plusieurs partitions, sécurisé par chiffrement non persistant, et configuré pour un usage optimal par le système.
