En effet, la page décrit la mise en place d'une partition, mais c'est similaire pour un fichier d'échange :
dd if=/dev/urandom of=swapfile.crypt bs=1M count=64
loop=$(losetup -f)
losetup ${loop} swapfile.crypt
cryptsetup open --type plain --key-file /dev/urandom ${loop} swapfile
mkswap /dev/mapper/swapfile
swapon /dev/mapper/swapfile
Le résultat :
# swapon -s
Filename Type Size Used Priority
/dev/mapper/swap0 partition 4000176 0 -1
/dev/mapper/swap1 partition 2000084 0 -2
/dev/mapper/swapfile partition 65528 0 -3
swap0 et swap1 sont de vraies partitions.
Cette configuration utilise des clés générées aléatoirement au démarrage et ne prend pas en charge l'hibernation sur le disque dur ! Vous devez désactiver l'hibernation via votre respectie DE Power Management Utility et le régler sur Shutdown on Critical pour éviter la perte de données !
Assurez-vous d'exécuter sudo -s
ou su
avant d'exécuter ce qui suit.
-
Désactiver l'échange :
# swapoff -a
-
Localisez la partition d'échange existante
# lsblk
Vous obtiendrez quelque chose comme ceci :
sda3 8:3 0 8G 0 part [SWAP]
-
Remplacer l'ancien swap
# dd if=/dev/zero bs=1024000 of=/dev/sda<#>
par exemple :
# dd if=/dev/zero bs=1024000 of=/dev/sda3
-
fstab
configuration# vim /etc/fstab
Remplacez l'ancien périphérique SWAP par le nom du mappeur crypttab :
/dev/mapper/cswap
#<file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/cswap none swap pri=1,defaults 0 0
-
Configuration du chiffrement
# ls -lF /dev/disk/by-id
Par exemple :
ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3 # vim /etc/crypttab # <name> <device> <password> <options> cswap /dev/disk/by-id/ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256
-
Échange chiffré actif
# reboot
-
Vérifier les opérations d'échange cryptées
Par exemple :
# dmsetup -C info cswap 253 0 L--w 2 1 0 CRYPT-PLAIN-cswap # lsblk ├─sda3 8:3 0 8G 0 part │ └─cswap 253:0 0 8G 0 crypt [SWAP] # cat /proc/swaps Filename Type Size Used Priority /dev/dm-0 partition 8385532 0 -1
Si vous utilisez dd if=/dev/zero of=/swapfile bs=8G count=1
, suivi de mkswap /swapfile
et swapon /swapfile
, vous devriez avoir un fichier d'échange fonctionnel sur votre système de fichiers racine. (nous utilisons dd
pour s'assurer qu'il n'y a pas de trous dans le fichier d'échange)
Cela évite d'avoir à jouer avec les périphériques en boucle et/ou le crypttab et place simplement le fichier d'échange dans votre système de fichiers déjà crypté. (Nous supposons que vous utilisez le cryptage pour l'ensemble du lecteur ici. Ajoutez le /swapfile
paramètre avec le chemin vers votre répertoire chiffré s'il est ailleurs)
Voir man mkswap
et man swapon
pour plus d'informations.