Подробный гайд: Настройка AES-шифрования в ALT Linux: полное руководство по LUKS2 и dm-crypt

Настройка AES-шифрования в ALT Linux через LUKS2: создание зашифрованных разделов, автозагрузка, безопасность и решение типовых проблем.

2026.05.20                  


Подробный гайд: Настройка AES-шифрования в ALT Linux: полное руководство по LUKS2 и dm-cryptПодробный гайд: Настройка AES-шифрования в ALT Linux: полное руководство по LUKS2 и dm-crypt

ВНИМАНИЕ:

Шифрование блочного устройства безвозвратно уничтожает все данные на нём. Перед выполнением команд создайте резервную копию. Все операции выполняются от root или через sudo.


1. Подготовка и установка пакетов

ALT Linux (P10 и новее) уже содержит необходимые инструменты.

Убедитесь, что они установлены:

sudo apt-get update
sudo apt-get install cryptsetup lvm2 e2fsprogs
  • cryptsetup – работа с LUKS
  • lvm2 – опционально, если планируете использовать LVM поверх шифрования
  • e2fsprogs – утилиты для ext4 (можно заменить на xfsprogs, btrfs-progs и т.д.)

Проверьте доступность AES в ядре:

grep -i aes /proc/crypto | head -n 5
# Вывод должен содержать aes, aes-xts, а также модули kernel или hardware (например, aesni_intel)

2. Создание зашифрованного раздела (LUKS2 + AES)

2.1. Определение устройства

lsblk
# Найдите целевой раздел, например /dev/sdb1 или /dev/nvme0n1p3

2.2. Инициализация LUKS2 с явным указанием AES

sudo cryptsetup luksFormat \
  --type luks2 \
  --cipher aes-xts-plain64 \
  --key-size 512 \
  --hash sha512 \
  --pbkdf argon2id \
  /dev/sdXN

Пояснения:

  • aes-xts-plain64 – современный стандарт для дискового шифрования
  • key-size 512 – 256 бит ключа + 256 бит tweak (обязательно для XTS)
  • pbkdf argon2id – защита от подбора пароля (устаревший pbkdf2 не рекомендуется)
  • Введите надёжный пароль дважды. Запишите его в безопасное место.

2.3. Проверка заголовка

sudo cryptsetup luksDump /dev/sdXN | grep -E "Cipher|Key|PBKDF|UUID"

Ожидаемый вывод:

Cipher: aes-xts-plain64
Key: 512 bits
PBKDF: argon2id
UUID:  <...>

3. Открытие, форматирование и монтирование

# Открытие зашифрованного тома (появится /dev/mapper/cryptdata)
sudo cryptsetup open /dev/sdXN cryptdata

# Форматирование (пример для ext4)
sudo mkfs.ext4 -L "secure_data" /dev/mapper/cryptdata

# Монтирование
sudo mkdir -p /mnt/secure
sudo mount /dev/mapper/cryptdata /mnt/secure

# Проверка
df -h /mnt/secure
lsblk -f

Для закрытия тома:

sudo umount /mnt/secure
sudo cryptsetup close cryptdata

4. Автоматическое открытие при загрузке

Если раздел используется для данных (не /), настройте /etc/crypttab и /etc/fstab.

4.1. Узнайте UUID устройства

sudo blkid /dev/sdXN
# Вывод: UUID="a1b2c3d4-..." TYPE="crypto_LUKS"

4.2. /etc/crypttab

Добавьте строку:

cryptdata UUID=a1b2c3d4-... none luks
  • none означает ввод пароля при загрузке. Для автоматического открытия используйте путь к ключевому файлу (например, /etc/cryptdata.key), но это снижает безопасность.

4.3. /etc/fstab

/dev/mapper/cryptdata  /mnt/secure  ext4  defaults,nofail  0  2

4.4. Пересборка initramfs (обязательно!)

ALT Linux использует make-initrd (в некоторых сборках доступен dracut):

sudo make-initrd
# или, если используется dracut:
# sudo dracut -f

Без этого система не увидит crypttab на ранних этапах загрузки.


5. Шифрование системного раздела (/)

Настраивать шифрование корневого раздела вручную после установки не рекомендуется.

В ALT Linux это делается на этапе установки через графический/текстовый инсталлятор:

  1. Выберите «Разметка вручную» или «Экспертный режим»
  2. Создайте разделы: /boot (обычно не шифруется, ext4, 512М–1Г), swap (опционально), /
  3. Для / выберите тип шифрования LUKS
  4. Инсталлятор автоматически настроит crypttab, fstab, make-initrd и загрузчик (GRUB)
  5. При загрузке система запросит пароль разблокировки /

Если вы всё же хотите конвертировать существующую систему в зашифрованную, используйте rsync/dd + chroot + ручную настройку GRUB/initramfs. Это сложная операция, требующая отдельного гайда.


6. Безопасность и обслуживание

Задача Команда
Резервная копия заголовка LUKS sudo cryptsetup luksHeaderBackup /dev/sdXN --header-backup-file /path/luks-header.img
Добавление второго ключа/пароля sudo cryptsetup luksAddKey /dev/sdXN
Удаление слота ключа sudo cryptsetup luksKillSlot /dev/sdXN 1
Проверка целостности заголовка sudo cryptsetup luksDump /dev/sdXN | grep "Keyslots"
Просмотр активных томов sudo cryptsetup status cryptdata

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

  • Используйте пароль ≥16 символов или ключевой файл + пароль
  • Регулярно обновляйте систему: sudo apt-get dist-upgrade
  • Не шифруйте /boot (загрузчик должен читать ядро без расшифровки)
  • Для swap используйте cryptswap или mkswap поверх LUKS-тома

7. Типовые проблемы и решения

Симптом Причина Решение
Device /dev/sdXN is not a valid LUKS device Раздел не отформатирован под LUKS или повреждён заголовок Восстановите из бэкапа заголовка или пересоздайте
Система висит на Unlocking disk crypttab не обработан в initramfs Пересоберите make-initrd, проверьте UUID
No key available with this passphrase Неверный пароль или слот повреждён Попробуйте другие слоты (luksOpen --key-slot N)
mount: wrong fs type Том не отформатирован или не открыт cryptsetup open, затем mkfs/mount
После обновления ядра шифрование не работает Initramfs не пересобран для нового ядра sudo make-initrd или sudo dracut -f

Полезные ссылки

  • man cryptsetup
  • man crypttab
  • Документация BaseALT: wiki.altlinux.org
  • LUKS2 Specification: gitlab.com/cryptsetup/cryptsetup