Linux Mint: Как включить cryptswap с пользовательским паролем?

Вопрос или проблема

Когда вы хотите использовать режим гибернации и заботитесь о безопасности, вам хотелось бы, чтобы swap был зашифрован. Но не с случайным паролем, выбранным для вас при запуске, а с фиксированным, предоставленным вами во время загрузки, чтобы состояние гибернации было доступно для восстановления при следующей загрузке.

Существовал крутой способ сделать это, который работал до Mint 15: Как: зашифровать всю систему

Это больше не работает на Petra. Может ли кто-нибудь помочь мне разобраться с этой проблемой? Основной виновник — скрипт /usr/share/initramfs-tools/scripts/local-top не изменился, так что, я полагаю, это как-то связано с ядром. Похоже, что недавнее ядро просто игнорирует весь скрипт или, по крайней мере, часть, которая запрашивает пароль для swap.

О, и я смог получить запрос на ввод пароля, когда случайно загрузил Mint 16 с ядром от Mint 15.

Смотрите также связаный вопрос:

Как запросить пароль для монтирования зашифрованного swap при загрузке на Linux Mint 16 с initramfs-tools?


Некоторая информация для отладки

После открытия устройства swap с помощью sudo cryptsetup luksOpen /dev/sda5 cryptswap:

sudo lsblk -o name,uuid

NAME                  UUID
sda                   
├─sda1                F251-38C0
├─sda2                c66b8e51-dd1b-4d92-8605-a3ba7df6af83
├─sda3                77af32db-038d-4c10-b302-039634cf943a
├─sda4                7a3cde35-ab80-4618-ad76-7aa064d55f56
├─sda5                fc068dd2-759c-4779-b521-c73cc5499e86
│ └─cryptswap (dm-1)  964eafeb-c88b-49c8-8b5e-6f8395e040b4
├─sda6                926fa7cc-6f97-4672-85a7-a1ed8f5bd842
├─sda7                804b9c88-907b-43d9-b23f-964c32ecc2ac
└─sda8                ce2cd926-133f-4e20-86f8-45bc4844271c
  └─adama-docs (dm-0) 61a32b98-3b65-4af6-81ff-da090cae039f
sr0              

cat /etc/crypttab

#cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
swap UUID=fc068dd2-759c-4779-b521-c73cc5499e86  none luks

cat /etc/fstab

UUID=926fa7cc-6f97-4672-85a7-a1ed8f5bd842   /   btrfs   defaults,subvol=@,compress,autodefrag   0   1
# /boot было на /dev/sda2 во время установки
UUID=c66b8e51-dd1b-4d92-8605-a3ba7df6af83   /boot   ext3    defaults    0   2
# /boot/efi было на /dev/sda1 во время установки
UUID=F251-38C0  /boot/efi   vfat    defaults    0   1
# /home было на /dev/sda6 во время установки
UUID=926fa7cc-6f97-4672-85a7-a1ed8f5bd842   /home   btrfs   defaults,subvol=@home   0   2
# /mnt/ext4 было на /dev/sda7 во время установки
UUID=804b9c88-907b-43d9-b23f-964c32ecc2ac   /mnt/ext4   ext4    defaults    0   0
# swap был на /dev/sda5 во время установки
UUID=964eafeb-c88b-49c8-8b5e-6f8395e040b4 none            swap    sw              0       0

/etc/initramfs-tools/conf.d/resume

RESUME=/dev/disk/by-uuid/964eafeb-c88b-49c8-8b5e-6f8395e040b4

обновление:

Когда я настраиваю все как указано выше, система действительно отображает привычный запрос на ввод пароля. Это происходит не каждый раз, а если и происходит, то это доли секунды до экрана входа (Linux Mint использует mdm для входа). Я полагаю, это состояние гонки; монтирование swap происходит параллельно с загрузкой системы; я ожидаю, что система будет ждать завершения загрузки до монтирования swap и сделает это как можно раньше. В противном случае, как она может восстановить состояние гибернации?

Есть аналогичный вопрос для Ubuntu: https://askubuntu.com/questions/396136/encrypted-home-partition-encrypted-swap-working-hibernate Кажется, это сработало для кого-то, если он зашифровал также корень.

Я все еще не знаю, какая у вас конфигурация и что именно происходит, когда вы пытаетесь перевести машину в режим гибернации, но я постараюсь ответить на вопрос.

У меня дистрибутив debian testing, но я думаю, что у вас не должно быть проблем с настройкой на вашем ПК. Просто посмотрите на мою конфигурацию, может быть, вы поймете, что не так в вашем случае.

Это мой тестовый диск:

root:~# lsblk -o name,uuid
NAME                  UUID
sda
├─sda1                727035387035047F
├─sda2                c55b13b7-ca46-488e-a78c-ac229cb6634c
├─sda3                1c379414-bac2-45d9-85c5-25163c663341
│ └─sda3_crypt (dm-0) 44cd4817-c27f-47aa-a7d5-b64276817a74
└─sda4                7774cf98-35fd-42fd-9891-7255c916fe02
  └─sda4 (dm-1)       0905595d-db03-4cc9-93d6-7d1262c140a4

sda2 используется для загрузочного раздела, sda3 — для Linux, а sda4 — это swap-раздел. sda3 и sda4 зашифрованы, и вы хотите разблокировать раздел swap при загрузке. Вам нужно отредактировать несколько файлов для этого.

Файл /etc/fstab:

UUID=0905595d-db03-4cc9-93d6-7d1262c140a4 swap swap defaults 0 0

Файл /etc/initramfs-tools/conf.d/resume:

RESUME=/dev/disk/by-uuid/0905595d-db03-4cc9-93d6-7d1262c140a4

Файл /etc/crypttab:

swap    UUID=7774cf98-35fd-42fd-9891-7255c916fe02   none    luks

Теперь вам нужно обновить initramfs:

update-initramfs -u -k all

Это решение работает для меня на моем тестирующем debian. Я ничего больше не делал, загрузка, разблокировка и гибернация работают без проблем.

ОБНОВЛЕНИЕ

Я думаю, я разобрался. Я установил систему и сделал то, что написал в ответе, но это не сработало. Может быть, из-за upstart — я использую sysvinit. Так что я снова установил систему, теперь используя встроенную функцию шифрования. Затем я проверил все три файла, и был различие только в файле /etc/fstab — оказывается, вы не можете использовать UUID в /etc/fstab, когда вы хотите монтировать или взаимодействовать с зашифрованными устройствами. Поэтому я снова установил систему (незашифрованную), и я создал отдельный раздел для swap. Два файла /etc/initramfs-tools/conf.d/resume и /etc/crypttab остаются теми же, но в файл /etc/fstab я добавил следующую строку:

/dev/mapper/swap none            swap    sw              0       0

И это сработало — у меня был экран с запросом пароля, и загрузка остановилась до тех пор, пока не был введен правильный пароль. Я также проверил, работает ли гибернация, и она работает как ожидалось.

Ответ или решение

Включение зашифрованного раздела подкачки с пользовательским паролем в Linux Mint

Если вас интересует вопрос обеспечения безопасности при использовании гибернации на Linux Mint, вам вероятно понадобится настроить зашифрованный swap. Идея заключается в том, чтобы вместо случайного пароля, который генерируется системой при каждом запуске, использовать фиксированный пароль, введенный вами, что позволит восстановить сессию после следующей загрузки системы. Ранее существовал метод, который работал до версии Mint 15, но с выходом Mint 16 и более поздних версиях появился ряд трудностей, связанных, возможно, с изменениями в ядре.

Шаги для настройки:

  1. Обновление файлов конфигураций

    Убедитесь, что файлы /etc/fstab, /etc/crypttab, и /etc/initramfs-tools/conf.d/resume правильно настроены.

    Пример содержимого файлов будет следующим:

    • /etc/fstab:

      /dev/mapper/cryptswap none swap sw 0 0
    • /etc/crypttab:

      cryptswap UUID=Ваш-UUID none luks
    • /etc/initramfs-tools/conf.d/resume:

      RESUME=/dev/mapper/cryptswap

      Здесь UUID=Ваш-UUID следует заменить на соответствующий идентификатор вашего раздела подкачки. Это можно узнать с помощью команды lsblk -o name,uuid.

  2. Создание и активация зашифрованного swap

    Используйте команду cryptsetup для шифрования swap-раздела и его открытия:

    sudo cryptsetup luksFormat /dev/sdaX
    sudo cryptsetup luksOpen /dev/sdaX cryptswap
    mkswap /dev/mapper/cryptswap
    swapon /dev/mapper/cryptswap

    Здесь /dev/sdaX необходимо заменить на фактический раздел, который вы планируете использовать в качестве swap.

  3. Регистрация изменений в initramfs

    После изменения конфигурации обязательно обновите initramfs:

    sudo update-initramfs -u -k all
  4. Диагностика и устранение проблем

    Если после выполнения всех шагов система продолжает неправильно запрашивать пароль или не загружает swap, проверьте логирование системы на наличие ошибок, связанных с шифрованием и монтированием swap. Используйте команды dmesg или journalctl для просмотра логов.

Решение проблем с конкурентным доступом:

Обратите внимание, что на некоторых системах может возникнуть гонка процессов во время загрузки, когда swap не успевает примонтироваться до вывода экрана авторизации. Для устранения этой проблемы может быть целесообразно настроить порядок монтирования в initramfs, добавив ожидающее условие перед стартом пользовательских или графических интерфейсов.

Такой подход должен помочь вам настроить зашифрованный swap с пользовательским паролем в Linux Mint, обеспечив безопасность данных и корректное восстановление состояния системы из гибернации.

Оцените материал
Добавить комментарий

Капча загружается...