Разумно, что если в вашей системе GNU / Linux реализовано какое-либо шифрование блочных устройств, нужно также зашифровать свой раздел подкачки, поскольку любые расшифрованные данные могут быть в любой момент записаны в виде открытого текста.
Просматривая справочную страницу debian для "crypttab", я вижу пример создания раздела подкачки со случайным ключом при загрузке, поэтому ключ устанавливается случайным образом в процессе загрузки и известен только самой системе:
# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap
В этом примере на сменное устройство ссылается обычный путь разработки, т.е. /dev/sda6
Абсолютные пути к устройствам могут быть изменены и переназначены при загрузке, например, если подключен USB-накопитель. Пользователь будет очень недоволен, если /dev/sda6
окажется, что раздел отличается от ожидаемого, и впоследствии он был перезаписан случайными данными свопинга !!
Таким образом, решение может выглядеть следующим образом: использовать UUID вместо пути к устройству (так как UUID не должен изменяться), заменяя /dev/sda6
на/dev/disk/by-uuid/<whatever the uuid of dev/sda6 is>
НО ... вот в чем проблема: каждый раз, когда cryptsetup воссоздает зашифрованный раздел подкачки во время загрузки, он генерирует для него новый UUID! Doh!
Поэтому нам нужно как-то сохранить UUID этой зашифрованной файловой системы. Я думаю, что cryptsetup может сделать это с помощью своего --offset
переключателя, что позволяет сохранить заголовок LUKS и, следовательно, UUID.
Я нашел этот URL: https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Using_UUIDs_with_encrypted_swap_partitions
Кто-нибудь знает, как реализовать решение, описанное для Arch Linux на ОС Debian? Сценарии инициализации, упомянутые в документе, похоже, не существуют в ОС Debian.
Спасибо!
РЕДАКТИРОВАТЬ
Можно использовать ecryptfs для достижения тех же целей (зашифрованного пространства подкачки) с помощью команды:
ecryptfs-setup-swap
без проблем, которые препятствуют шифрованию блочного устройства. Посмотрите на этот вопрос AskUbuntu
ecryptfs-setup-swap
это просто помощник, который настраиваетdm-crypt
/crypttab
для вас. Какecryptfs
и драйвер на уровне файлов, он не обрабатывает целые разделы, поэтому он переходит на этоdm-crypt
. Этот метод может показаться вам более удобным, но в конечном итоге вы не добьетесь ничего другого. Во всяком случае, причуды этого метода (включая UUID), вероятно, запутали меня больше, чем если бы я сам сделал это из первых принципов ... хотя я узнал больше.Ответы:
В / etc / crypttab используйте / dev / disk / by-id вместо / dev / disk / by-UUID для ссылки на раздел подкачки. Например, ваша запись / etc / fstab для swap может быть
Тогда правильная соответствующая запись в / etc / crypttab будет выглядеть примерно так:
Обратите внимание, что указанное выше устройство называется / dev / disk / by-id, который вы можете узнать для своего диска, набрав в CLI следующее:
источник
/dev/sdaN
раздел подкачки, а затем подключите другой диск и обнаружите, что порядок именования вашего ядра был смещен, а один из разделов без подкачки был уничтожен. UUID тоже подойдет, но я думаю, что ключевая проблема заключается в том, что он хранится в первых нескольких байтах раздела, поэтому мы получаем сценарий неразрешимой курицы и яйца, который обсуждается здесь.В моем / etc / crypttab у меня есть
Здесь / dev / mapper / cswap - это логический том, созданный LVM, который заботится о правильном назначении имен логических томов независимо от имен букв дисков. Это также позволяет мне легко изменить размер раздела подкачки.
источник
Попробуйте реализовать оставшуюся часть решения, игнорируя файл инициализации. Похоже, что этот скрипт инициализации только для того, чтобы защитить вас. Либо Debian не защищает вас таким образом, либо при попытке загрузки с ним вы получите сообщение об ошибке, которое, мы надеемся, приведет вас в нужное место.
Я также был бы осторожен с тем, что IIRC Debian и ArchLinux имеют разные форматы для / etc / crypttab (я знаю, что это безумие, но я перешел из Ubuntu в Arch пару лет назад и в итоге решил использовать прямой bash, а не вмешиваться в crypttabs).
источник
запустите ecryptfs-setup-swap или вручную:
Эта конфигурация использует случайно сгенерированные ключи при загрузке и не поддерживает гибернацию на жесткий диск! Вы должны отключить режим гибернации с помощью соответствующей утилиты DE Power Management Utility и установить для нее значение «Выключить при критическом уровне», чтобы избежать потери данных!
Переключиться на учетную запись администратора / root
su root или sudo для каждой команды
Отключить своп
своп -а
Найдите существующий раздел подкачки
lsblk
пример: sda3 8: 3 0 8G 0 часть [SWAP]
Перезаписать старый своп
дд если = / dev / ноль бс = 1024000 из = / dev / sda <#>
пример: dd if = / dev / zero bs = 1024000 of = / dev / sda3
Настройка FSTAB
vim / etc / fstab
Замените старое устройство SWAP на имя устройства отображения crypttab: / dev / mapper / cswap
OLD UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdc swap swap default по умолчанию 0 0
NEW
/ dev / mapper / cswap none swap pri = 1, по умолчанию 0 0
Настройка Crypto
ls -lF / dev / disk / by-id
Пример: ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
vim / etc / crypttab
cswap / dev / disk / by-id / ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 / dev / urandom swap, шифр = aes-cbc-essiv: sha256, размер = 256
Активный зашифрованный своп
Перезагрузите компьютер
Проверьте зашифрованные операции обмена
dmsetup -C информация
Пример: 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
пример: имя файла тип размер используемый приоритет / dev / dm-0 раздел 8385532 0 -1
источник