OffshoreVps
Sécurité19 oct. 20269 min de lecturePar l’équipe OffshoreVps

Chiffrer un VPS avec LUKS : mise en place et limites

Mettre en place le chiffrement de disque LUKS sur un serveur loué : un volume de données chiffré, le fonctionnement du déverrouillage à distance du disque racine et un modèle de menace honnête.

Le chiffrement de disque protège les données au repos. Sur un VPS, l’hébergeur contrôle l’hyperviseur ; il ne peut donc pas empêcher un fournisseur déterminé de lire la mémoire. Ce qu’il fait bien, c’est protéger contre les sauvegardes perdues, les disques recyclés et le stockage volé ou saisi. Sachez contre lesquels de ces risques vous vous défendez avant d’y consacrer du temps.

Fenêtre de terminal sur un VPS montrant les commandes utilisées pour chiffrer un VPS avec LUKS, à commencer par « sudo apt install -y cryptsetup »
Le type de commandes que vous exécuterez sur votre serveur dans ce guide.

Décider contre quoi vous vous protégez

  • Disques retirés ou copiés : le chiffrement aide beaucoup.
  • Instantanés divulgués : le chiffrement aide si la clé n’est pas stockée avec l’instantané.
  • Un attaquant actif sur le système en cours d’exécution : le chiffrement n’aide pas, car le volume est déverrouillé.
  • Un hyperviseur malveillant : le chiffrement n’aide pas sur un VPS. Un serveur dédié avec un contrôle complet du matériel est l’option la plus solide.

Option 1 : un volume de données chiffré

C’est le plus sûr pour commencer. Attachez un second disque ou créez un fichier loop, et gardez-y les données sensibles. L’exemple utilise un périphérique vide nommé /dev/vdb. Vérifiez deux fois le nom du périphérique, car le formatage détruit son contenu.

sudo apt install -y cryptsetup
sudo cryptsetup luksFormat /dev/vdb
sudo cryptsetup open /dev/vdb secure
sudo mkfs.ext4 /dev/mapper/secure
sudo mkdir -p /srv/secure
sudo mount /dev/mapper/secure /srv/secure

Pour le refermer : sudo umount /srv/secure && sudo cryptsetup close secure.

Les étapes de ce guide dans l’ordre : 1. Décider contre quoi vous vous protégez ; 2. Option 1 : un volume de données chiffré ; 3. Option 2 : un conteneur sous forme de fichier ; 4. Option 3 : le disque racine avec déverrouillage à distance ; 5. Gérer correctement la clé
Les étapes de ce guide, dans l’ordre.

Option 2 : un conteneur sous forme de fichier

Quand vous n’avez pas de disque de rechange, utilisez un fichier comme conteneur.

sudo fallocate -l 20G /root/vault.img
sudo cryptsetup luksFormat /root/vault.img
sudo cryptsetup open /root/vault.img vault
sudo mkfs.ext4 /dev/mapper/vault
sudo mount /dev/mapper/vault /srv/vault

Option 3 : le disque racine avec déverrouillage à distance

Chiffrer le disque racine exige un moyen de saisir la phrase secrète au démarrage, avant que le réseau ne soit actif. La solution habituelle est un petit serveur SSH (dropbear) dans l’initramfs. Cela suppose que votre fournisseur vous laisse installer une image personnalisée ou réinstaller avec votre propre partitionnement ; vérifiez donc cela d’abord. De nombreux panneaux de VPS ne le permettent pas, et une erreur peut rendre le serveur impossible à démarrer ; gardez donc une option de secours prête.

En résumé : installez avec une racine chiffrée, ajoutez dropbear-initramfs, placez votre clé publique SSH dans /etc/dropbear/initramfs/authorized_keys, régénérez l’initramfs, puis redémarrez et déverrouillez via SSH avec cryptroot-unlock.

Gérer correctement la clé

  • Utilisez une longue phrase secrète et gardez-la dans un gestionnaire de mots de passe, pas sur le serveur.
  • Sauvegardez l’en-tête LUKS : sudo cryptsetup luksHeaderBackup /dev/vdb --header-backup-file header.img. Conservez-le hors ligne.
  • Ne déverrouillez pas automatiquement avec un fichier de clé stocké sur le même disque. Cela annule tout l’intérêt.
  • N’oubliez pas que déverrouiller au démarrage signifie qu’un redémarrage exige votre présence.

Associez le chiffrement à de solides sauvegardes chiffrées et aux bases du durcissement en 15 minutes.