LUKS и LVM: практическое руководство по полнодисковому шифрованию на Linux
Подробное руководство по настройке полнодискового шифрования в Linux с использованием LUKS и LVM. От архитектуры до автоматизации разблокировки через TPM.
LUKS и LVM: практическое руководство по полнодисковому шифрованию на Linux
Введение
Полнодисковое шифрование (Full Disk Encryption, FDE) — это фундаментальный элемент защиты данных на серверах и рабочих станциях. В экосистеме Linux стандартом де-факто для этой задачи является связка LUKS (Linux Unified Key Setup) и LVM (Logical Volume Manager). LUKS обеспечивает криптографическую защиту, а LVM — гибкость управления разделами поверх зашифрованного контейнера.
Архитектура решения
Типовая схема выглядит так:
Физический диск → Раздел (например, /dev/sda2) → LUKS-контейнер → Физический том LVM → Группа томов → Логические тома (/, /home, swap)
Такая структура позволяет:
- Шифровать весь диск единым ключом или паролем.
- Гибко изменять размеры логических томов без пересоздания разделов.
- Добавлять новые диски в группу томов на лету.
Пошаговая реализация
1. Подготовка диска
Создаём раздел, который будет зашифрован:
parted /dev/sda --script mkpart primary 1MiB 100%
2. Инициализация LUKS
cryptsetup luksFormat /dev/sda1
Система запросит подтверждение (YES заглавными) и пароль. Используем стойкий пароль, соответствующий корпоративной политике.
3. Открытие контейнера
cryptsetup open /dev/sda1 cryptlvm
После этого появится устройство /dev/mapper/cryptlvm.
4. Настройка LVM
pvcreate /dev/mapper/cryptlvm
vgcreate vg_system /dev/mapper/cryptlvm
lvcreate -L 32G -n swap vg_system
lvcreate -L 50G -n root vg_system
lvcreate -l 100%FREE -n home vg_system
5. Создание файловых систем
mkswap /dev/mapper/vg_system-swap
mkfs.ext4 /dev/mapper/vg_system-root
mkfs.ext4 /dev/mapper/vg_system-home
6. Монтирование и установка
mount /dev/mapper/vg_system-root /mnt
mkdir /mnt/home
mount /dev/mapper/vg_system-home /mnt/home
swapon /dev/mapper/vg_system-swap
Далее следует стандартная установка ОС, после которой необходимо настроить /etc/crypttab и /etc/fstab.
7. Автоматизация разблокировки (опционально)
Для серверов без физического доступа настраивается разблокировка по TPM 2.0 или через сетевой ключ (Clevis/Tang):
clevis bind luks -d /dev/sda1 tang '{"url":"http://tang-server:7500"}'
Ключевые аспекты безопасности
- Header backup: Обязательно сделайте резервную копию заголовка LUKS:
cryptsetup luksHeaderBackup /dev/sda1 --header-backup-file /root/luks-header-backup.img. Потеря заголовка = потеря данных. - Ключи-слоты: LUKS поддерживает до 8 ключей. Используйте один для пользователя, второй — для аварийного восстановления.
- Integrity: Для защиты от несанкционированного изменения данных используйте режим
--type luks2 --integrity hmac-sha256.
Диагностика
Проверка статуса:
cryptsetup status cryptlvm
lsblk -f
Заключение
Связка LUKS+LVM — это зрелое, производительное и гибкое решение для защиты данных в Linux. Правильная настройка на этапе установки избавляет от множества проблем в эксплуатации и соответствует требованиям регуляторов по защите персональных данных.