Как настроить LVM & LUKS для автодешифрования раздела?

Я недавно установил сервер человечности 11.04 с полным lvm шифрованием (установленный от установки). Я хочу теперь использовать файл ключей, чтобы сделать автоматический, разблокировали. Я попытался следовать этому руководству http://ubuntuforums.org/showthread.php?t=837416

Я генерировал ключ с этой командой: sudo dd if=/dev/urandom of=/boot/grub/keyfile bs=1024 count=4

я загнал его в /boot/grub потому что я думаю, что это не шифруется. Когда я пытаюсь добавить ключ с этим commad sudo cryptsetup luksAddKey /dev/sdX /boot/grub/keyfile это просит у меня пароль и когда я поместил его, ничего не происходит, ничто не печатается на экран! Я игнорирую его и продолжаю, другие ступают и перезагрузка, но ничего не произошло, и это просит пароль.

Спасибо за справку.

21
задан 12 February 2014 в 02:17

4 ответа

Я только что был через это на моем новом домашнем сервере, потребовался большой поиск с помощью Google и предположение, но у меня есть он работа. Я попытаюсь воспроизвести шаги здесь. Я использую Сервер Ubuntu 11.10 и запустился с зашифрованного LVM использования в значительной степени стандартной установки, таким образом, я просто свяжу изменения, я сделал оттуда.

Установка:

  • /dev/sda1 мой незашифрованный / раздел начальной загрузки
  • /dev/sda5 мой lvm раздел, который содержит все остальное - корень, подкачка, и домой
  • /dev/sdc1 раздел на моей карте флэш-памяти с интерфейсом USB, где я сохраню файл ключей

Во-первых, я создал файл ключей, только в моем корневом каталоге:

dd if=/dev/urandom of=keyfile bs=512 count=4

(можно использовать больший blocksize или значить больший ключ),

Скажите cryptsetup новый ключ (это - содержание, которое важно, не имя файла):

sudo cryptsetup luksAddKey /dev/sda5 keyfile

Затем я отформатировал свою карту флэш-памяти с интерфейсом USB с ext2 и дал ему маркировку. Я использовал маркировку, так, чтобы позже я мог смонтировать его маркировкой и заменить карту флэш-памяти с интерфейсом USB в случае, если что-то идет не так, как надо с ним.

sudo mkfs -t ext2 /dev/sdc1
sudo e2label /dev/sdc1 KEYS

(конечно, Ваше устройство будет варьироваться),

Теперь, скопируйте файл ключей в карту флэш-памяти с интерфейсом USB, принадлежавшую корневому режиму 400:

mkdir KEYS
sudo mount /dev/sdc1 KEYS
sudo cp keyfile KEYS
sudo chown root KEYS/keyfile
sudo chmod 400 KEYS/keyfile

Измените/etc/crypttab. Мой первоначально содержал

sd5_crypt UUID=(...) none luks

на который я изменился

sd5_crypt UUID=(...) /dev/disk/by-label/KEYS:/keyfile luks,keyscript=/lib/cryptsetup/scripts/passdev

Наконец, обновите initramfs:

sudo update-initramfs -uv

Это теперь загружает использование файла ключей на карте флэш-памяти с интерфейсом USB. Если я удаляю флеш-накопитель (скажите, когда я уезжаю в отпуск), он не загружается, и мои данные безопасны.

Если кто-либо знает, как заставить это просить пароль, если бы карта флэш-памяти с интерфейсом USB отсутствует, который был бы удобен как нейтрализация. Надежда, которой это помогает, любые дополнения или исправления, была бы больше, чем приветствие!

27
ответ дан 23 November 2019 в 01:41

Эти инструкции из howtoforge.com разбудили меня и работающий с автоматически дешифрующим объемом.

Как к: автоматически разблокируйте зашифрованные диски LUKS с файлом ключей

Шаг 1: Создайте случайный файл ключей

sudo dd if=/dev/urandom of=/root/keyfile bs=1024 count=4

Шаг 2: Сделайте файл ключей только для чтения для укоренения

sudo chmod 0400 /root/keyfile

Это сделает файл ключей читаемым только корнем. Если кто-то получает доступ к этому файлу ключей, то у Вас есть большая проблема на Вашем компьютере так или иначе.

Кроме того, показанный Ваш желаемый файл ключей root:root и перемещению это в / корневую папку

Шаг 3: Добавьте файл ключей к LUKS

Включенные устройства LUKS/dm_crypt могут содержать до 10 различных файлов ключей/паролей. Так, рядом с наличием уже устанавливают пароль, мы собираемся добавить этот файл ключей как дополнительный метод авторизации.

sudo cryptsetup luksAddKey /dev/sdX /root/keyfile

sdX является, конечно, Вашим устройством LUKS.

Сначала Вам предложат ввести (существующий) пароль для разблокирования диска. Если все работает хорошо, необходимо получить вывод как это:

Enter any LUKS passphrase:
key slot 0 unlocked.
Command successful.

Шаг 4: Создайте картопостроитель

Устройства LUKS должны создать картопостроитель, на который можно затем сослаться в fstab. Открытый/etc/crypttab

sudo nano /etc/crypttab

и добавьте затем строку как это:

sdX_crypt      /dev/sdX  /root/keyfile  luks

или можно использовать UUID устройства:

sdX_crypt      /dev/disk/by-uuid/247ad289-dbe5-4419-9965-e3cd30f0b080  /root/keyfile  luks

sdX_crypt является названием картопостроителя, который создается. Можно использовать здесь любое имя, например, "музыку" или "фильмы" или "sfdsfawe"....

Сохраните и закройте файл путем издания ctrl-x, войдите, войдите. Ctrl-x закрывает нано, но сначала он просит сохранить файл [да =, входят] и чем имя должно быть [то же имя = входит].

Что мы сделали там, на самом деле говорит, что/root/keyfile должен использоваться вместо ввода пароля для разблокирования диска.

Шаг 5: Смонтируйте устройство в fstab

Теперь, у нас есть разблокированное устройство (хорошо, еще но когда система загружается), и мы просто должны смонтировать его теперь. Открытый/etc/fstab:

sudo nano /etc/fstab

и добавьте новую запись как:

/dev/mapper/sdX_crypt  /media/sdX     ext3    defaults        0       2

Удостоверьтесь, что у Вас есть корректное имя картопостроителя, которое Вы добавили на шаге 4. Также удостоверьтесь, что точка монтирования / папка существует. Добавив это, сохраните снова файл и закройте его (ctrl-x, войдите, войдите).

Шаг 6: Перезагрузка или повторно монтируется

Именно. Теперь можно перезагрузить, и дополнительные устройства должны быть авторазблокированы и смонтированы. Можно также протестировать его путем перемонтирования всех устройств:

sudo mount -a
6
ответ дан 23 November 2019 в 01:41

При улучшении ответа Randy Orrison вот маленький сценарий, который я создал, который сделает системную нейтрализацию к выяснению у пользователя для пароля, если это не найдет файл ключей.

#!/bin/sh

ask_for_password () {
    cryptkey="Unlocking the disk $cryptsource ($crypttarget)\nEnter passphrase: "
    if [ -x /bin/plymouth ] && plymouth --ping; then
        cryptkeyscript="plymouth ask-for-password --prompt"
        cryptkey=$(printf "$cryptkey")
    else
        cryptkeyscript="/lib/cryptsetup/askpass"
    fi
    $cryptkeyscript "$cryptkey"
}

device=$(echo $1 | cut -d: -f1)
filepath=$(echo $1 | cut -d: -f2)

# Ask for password if device doesn't exist
if [ ! -b $device ]; then
    ask_for_password
    exit
fi

mkdir /tmp/auto_unlocker
mount $device /tmp/auto_unlocker

# Again ask for password if device exist but file doesn't exist
if [ ! -e /tmp/auto_unlocker$filepath ]; then
    ask_for_password
else
    cat /tmp/auto_unlocker$filepath
fi

umount /tmp/auto_unlocker

Сохраните его и замена keyscript=/lib/cryptsetup/scripts/passdev в /etc/crypttab с путем к этому файлу и выполненный sudo update-initramfs -uv и Вы сделаны.

6
ответ дан 23 November 2019 в 01:41

@deitch я имел ту же установку как @Randy Orrison и столкнулся с той же проблемой как Вы, и это складывается, ошибка systemd, который пытается смонтироваться / файловая система снова, поскольку это находит соответствующую запись в/etc/crypttab.

Для разрешения этого, я просто удалил запись для sda5_crypt от/etc/crypttab однажды обновление-initramfs - ультрафиолетовая команда была, работал.

Reeboot и все хорошо работают, как предназначено.

1
ответ дан 23 November 2019 в 01:41

Другие вопросы по тегам:

Похожие вопросы: