Подробный гайд: Настройка AES-шифрования в ALT Linux: полное руководство по LUKS2 и dm-crypt
ВНИМАНИЕ:
Шифрование блочного устройства безвозвратно уничтожает все данные на нём. Перед выполнением команд создайте резервную копию. Все операции выполняются от root или через sudo.
1. Подготовка и установка пакетов
ALT Linux (P10 и новее) уже содержит необходимые инструменты.
Убедитесь, что они установлены:
sudo apt-get update
sudo apt-get install cryptsetup lvm2 e2fsprogs
cryptsetup– работа с LUKSlvm2– опционально, если планируете использовать 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 это делается на этапе установки через графический/текстовый инсталлятор:
- Выберите «Разметка вручную» или «Экспертный режим»
- Создайте разделы:
/boot(обычно не шифруется, ext4, 512М–1Г),swap(опционально),/ - Для
/выберите тип шифрования LUKS - Инсталлятор автоматически настроит
crypttab,fstab,make-initrdи загрузчик (GRUB) - При загрузке система запросит пароль разблокировки
/
Если вы всё же хотите конвертировать существующую систему в зашифрованную, используйте 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 cryptsetupman crypttab- Документация BaseALT: wiki.altlinux.org
- LUKS2 Specification: gitlab.com/cryptsetup/cryptsetup