Il est judicieux que si vous avez une sorte de cryptage de périphérique de bloc implémenté sur votre système GNU / Linux, pour crypter votre partition de swap aussi, car toutes les données décryptées peuvent être écrites en texte clair à tout moment dans le swap.
En regardant la page de manuel debian pour "crypttab", je vois un exemple de création d'une partition de swap à clé aléatoire au démarrage, de sorte que la clé est définie de manière aléatoire au fur et à mesure du démarrage et connue uniquement du système lui-même:
# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap
Dans cet exemple, le dispositif d'échange est référencé par un chemin de développement conventionnel, c'est-à-dire /dev/sda6
Les chemins d'accès absolus aux appareils sont susceptibles de changer et d'être réaffectés au démarrage si, par exemple, un lecteur USB est branché, par exemple. Un utilisateur serait très mécontent s'il se /dev/sda6
trouvait être une partition différente de celle attendue et elle a ensuite été remplacée par des données d'échange aléatoires !!
La solution semble donc être: utiliser un UUID au lieu d'un chemin de périphérique (car un UUID ne devrait pas changer), en le remplaçant /dev/sda6
par/dev/disk/by-uuid/<whatever the uuid of dev/sda6 is>
MAIS ... voici le problème: chaque fois que cryptsetup recrée la partition de swap chiffrée au démarrage, il génère un nouvel UUID pour cela! Ah!
Nous devons donc en quelque sorte conserver l'UUID de ce système de fichiers chiffré. Je pense que cryptsetup peut le faire avec son --offset
commutateur, permettant la préservation de l'en-tête LUKS et donc de l'UUID.
J'ai trouvé cette URL: https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Using_UUIDs_with_encrypted_swap_partitions
Quelqu'un sait-il comment implémenter la solution décrite pour Arch Linux sur le système d'exploitation Debian? Les scripts d'initialisation mentionnés dans le document ne semblent pas exister sur le système d'exploitation Debian
Merci!
EDIT
On pourrait utiliser ecryptfs pour atteindre les mêmes fins (espace d'échange crypté) en utilisant la commande:
ecryptfs-setup-swap
Sans les problèmes qui assaillent le cryptage des périphériques bloqués. Jetez un oeil à cette requête AskUbuntu
ecryptfs-setup-swap
c'est juste une aide qui configuredm-crypt
/crypttab
pour vous. Commeecryptfs
c'est un pilote au niveau du fichier, il ne gère pas des partitions entières, il le ferme doncdm-crypt
. Vous trouverez peut-être cette méthode plus conviviale, mais vous n'obtiendrez finalement rien de différent. Si quoi que ce soit, les caprices de cette méthode (y compris l'UUID) m'ont probablement rendu plus confus que si je venais de le faire moi-même à partir des premiers principes ... bien que j'aie appris plus.Réponses:
Dans / etc / crypttab, utilisez / dev / disk / by-id au lieu de / dev / disk / by-UUID pour faire référence à votre partition de swap. Par exemple, votre entrée / etc / fstab pour swap peut être
Ensuite, l'entrée correspondante correcte dans / etc / crypttab serait quelque chose comme
Notez que le périphérique ci-dessus est référencé par / dev / disk / by-id que vous pouvez trouver pour votre lecteur en tapant ce qui suit sur la CLI:
la source
/dev/sdaN
puis branchez un autre disque un jour et constatez que votre ordre de nommage du noyau a été changé et qu'une de vos partitions non swap a été mise à la poubelle. L'UUID serait bien aussi, mais je pense que le problème clé est qu'il est stocké dans les premiers octets de la partition, donc nous obtenons le scénario insoluble de poulet et d'œuf qui est discuté ici.Dans mon / etc / crypttab, j'ai
Ici / dev / mapper / cswap est un volume logique créé par LVM, qui se charge d'attribuer correctement les noms de volumes logiques indépendamment des noms de lettre de lecteur. Cela me permet également de redimensionner facilement ma partition de swap.
la source
Essayez d'implémenter le reste de la solution en ignorant le fichier init. Il semble que ce morceau de script d'init ne soit là que pour vous protéger. Soit Debian ne vous protège pas de cette façon, soit elle vous donnera un message d'erreur lorsque vous essayez de démarrer avec elle qui, nous l'espérons, vous mènera au bon endroit.
Je ferais également attention à ce que l'IICRC Debian et ArchLinux aient des formats différents pour / etc / crypttab (fou, je sais, mais je suis passé d'Ubuntu à Arch il y a quelques années et j'ai finalement décidé d'utiliser directement bash plutôt que de se mêler de crypttabs).
la source
exécutez ecryptfs-setup-swap ou manuellement:
Cette configuration utilise des clés générées aléatoirement au démarrage et ne prend pas en charge la mise en veille prolongée sur le disque dur! Vous devez désactiver la mise en veille prolongée via votre respectie DE Power Management Utility et le définir sur Shutdown on Critical pour éviter la perte de données!
Passer à un compte administrateur / root
su root ou sudo pour chaque commande
Désactiver l'échange
swapoff -a
Localiser la partition d'échange existante
lsblk
exemple: sda3 8: 3 0 8G 0 partie [SWAP]
Écraser l'ancien échange
dd if = / dev / zero bs = 1024000 of = / dev / sda <#>
exemple: dd if = / dev / zero bs = 1024000 of = / dev / sda3
Configuration de FSTAB
vim / etc / fstab
Remplacez l'ancien périphérique SWAP par le nom du mappeur crypttab: / dev / mapper / cswap
OLD UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdc swap swap swap defaults 0 0
NOUVEAU
/ dev / mapper / cswap aucun swap pri = 1, par défaut 0 0
Configuration Crypto
ls -lF / dev / disk / by-id
Exemple: ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
vim / etc / crypttab
cswap / dev / disk / by-id / ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 / dev / urandom swap, cipher = aes-cbc-essiv: sha256, taille = 256
Échange crypté actif
Redémarrez l'ordinateur
Vérifier les opérations de permutation activées
dmsetup -C info
Exemple: cswap 253 0 L - w 2 1 0 CRYPT-PLAIN-cswap
lsblk
Exemple ├─sda3 8: 3 0 8G 0 partie
│ └─cswap 253: 0 0 8G 0 crypt [SWAP]
chat / proc / swaps
exemple: nom de fichier type taille utilisée priorité / dev / dm-0 partition 8385532 0 -1
la source