Создание зашифрованного swap файла
Материал из Rosalab Wiki
! Все команды должны выполняться от рута.
Создаем файл
fallocate -l 4G /home/user/.swapfile
Устанавливаем право чтения и записи только для root
chmod 600 /home/user/.swapfile
Делаем из обычного файла крипто-контейнер
cryptsetup --verbose -v luksFormat /home/user/.swapfile
Проверяем
file /home/user/.swapfile
Должно вывести что-то типа этого
/home/user/.swapfile: LUKS encrypted file, ver 2 [, , sha256] UUID: шестнадцатеричное-число
Открываем контейнер
cryptsetup luksOpen /home/user/.swapfile swapfile
Делаем из контейнера swap
mkswap -L swap /dev/mapper/swapfile
Создаем файл в который потом запишем ключ для расшифровки свопа
dd if=/dev/random bs=32 count=1 of=/root/swapfilekey
Проверяем
xxd /root/swapfilekey
Должно вывести что-то типа этого
00000000: 30db ca22 2a40 47dd f9cc 9914 dc89 2fbd 0.."*@G......./. 00000010: 65e8 ca4e 8086 a5e7 098d 7ba0 8776 c4bc e..N......{..v..
Добавляем ключ в файл
cryptsetup luksAddKey /home/user/.swapfile /root/swapfilekey
Чтобы своп автоматически расшифровывался и монтировался нужно отредактировать файлы ниже
vim /etc/crypttab
Добавляем в него
swapfile /home/user/.swapfile /root/swapfilekey # swapfile - имя которое будет в /dev/mapper когда криптоконтейнер смонтируется # /home/user/.swapfile - путь, по которому находится криптоконтейнер # /root/swapfilekey - файл-ключ для расшифровки криптоконтейнера
vim /etc/fstab
Добавляем в него
/dev/mapper/swapfile none swap defaults 0 0 # /dev/mapper/swapfile - путь по которому находится смонтированный крипто-своп
Обновляем загрузчик
update-grub2
Проверяем
Размонтируем крипто-своп
cryptsetup luksClose swapfile
Монтируем используя файл-ключ
cryptsetup --key-file=/root/swapfilekey luksOpen /home/user/.swapfile swapfile
Если смонтировался - все впорядке.