Блог "Дети ОИТа"
/поиск

LUKS2 на практике: типовая схема шифрования дисков в Linux

Практическое руководство по развёртыванию LUKS2 в Linux: от инициализации до автоматизации разблокировки и обслуживания.

LUKS2 на практике: типовая схема шифрования дисков в Linux

Введение

Шифрование дисков — базовый элемент защиты данных на серверах и рабочих станциях. В Linux стандартом де-факто стал LUKS (Linux Unified Key Setup), а актуальная версия — LUKS2. В этой статье рассмотрим типовую схему развёртывания: от подготовки блочного устройства до автоматизации разблокировки при загрузке.

Что даёт LUKS2

  • Современный заголовок с резервированием и устойчивостью к сбоям питания.
  • Поддержка сегментных схем (например, интеграция с dm-integrity).
  • Работа с ключевыми слотами (до 32), гибкое управление токенами.
  • Совместимость с большинством дистрибутивов и initramfs-инструментарием.

Подготовка блочного устройства

Перед созданием LUKS-контейнера убедитесь, что устройство не содержит нужных данных (все они будут уничтожены).

lsblk
# Пример: /dev/sdb — целевой диск

Инициализация LUKS2

cryptsetup luksFormat --type luks2 /dev/sdb

При форматировании выберите надёжную парольную фразу. Для автоматизации можно добавить ключевой файл или токен (например, TPM2).

Открытие контейнера

cryptsetup open /dev/sdb cryptdata

После этого появится /dev/mapper/cryptdata.

Создание файловой системы и монтирование

mkfs.ext4 -L data /dev/mapper/cryptdata
mkdir -p /mnt/data
mount /dev/mapper/cryptdata /mnt/data

Автоматизация разблокировки

Для серверов часто требуется разблокировка без ручного ввода пароля. Варианты:

  • Ключевой файл на отдельном защищённом носителе.
  • Интеграция с TPM2 (требует настройки clevis и tang или systemd-cryptenroll).
  • Сетевой разблокировщик (например, clevis с tang).

Пример с ключевым файлом:

dd if=/dev/urandom of=/root/keyfile bs=4096 count=1
chmod 600 /root/keyfile
cryptsetup luksAddKey /dev/sdb /root/keyfile

Затем добавьте в /etc/crypttab:

cryptdata UUID=... /root/keyfile luks

Проверка и обслуживание

  • Статус: cryptsetup status cryptdata
  • Добавление/удаление ключей: cryptsetup luksAddKey, cryptsetup luksRemoveKey
  • Резервная копия заголовка: cryptsetup luksHeaderBackup

Рекомендации

  • Регулярно обновляйте initramfs после изменений в шифровании.
  • Храните резервные копии заголовка LUKS в защищённом месте.
  • Для продакшена рассмотрите связку LUKS2 + dm-integrity для контроля целостности.

Заключение

LUKS2 — зрелое и гибкое решение для шифрования дисков в Linux. При правильной настройке оно обеспечивает баланс между безопасностью и удобством эксплуатации, а автоматизация разблокировки делает его пригодным для серверных сценариев.

Типовые ошибки и диагностика

  • Ошибка «device-mapper: reload ioctl on failed: Invalid argument» — обычно несоответствие версии cryptsetup и ядра; обновите cryptsetup и пересоберите initramfs.
  • Загрузка падает в emergency при отсутствии ключевого файла — проверьте /etc/crypttab на корректность UUID и пути, затем update-initramfs -u (Debian/Ubuntu) или dracut -f (RHEL/CentOS).
  • «No key available with this passphrase» — исчерпаны попытки; подождите таймаут или используйте ключевой файл.

Рекомендации (дополнено)

  • Регулярно обновляйте initramfs после изменений в шифровании.
  • Храните резервные копии заголовка LUKS в защищённом месте.
  • Для продакшена рассмотрите связку LUKS2 + dm-integrity для контроля целостности.
  • Документируйте схему разблокировки (где хранится ключевой файл/токен, порядок восстановления).

Заключение

LUKS2 — зрелое и гибкое решение для шифрования дисков в Linux. При правильной настройке оно обеспечивает баланс между безопасностью и удобством эксплуатации, а автоматизация разблокировки делает его пригодным для серверных сценариев.

Теги

#LUKS2 #шифрование #Linux #безопасность #dm-crypt #fde #криптография #автоматизация