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

LUKS и LVM: полное руководство по шифрованию дисков в Linux

Полное руководство по настройке шифрования дисков в Linux с использованием LUKS и LVM. От базовой архитектуры до enterprise-практик с TPM2 и автоматизацией разблокировки.

LUKS и LVM: полное руководство по шифрованию дисков в Linux

Введение

Шифрование дисков — критически важный компонент безопасности современных Linux-систем. В этом руководстве мы подробно рассмотрим совместное использование LUKS (Linux Unified Key Setup) и LVM (Logical Volume Manager) для создания надёжной, гибкой и управляемой системы шифрования.

Что такое LUKS и LVM

LUKS — это стандарт шифрования дисковых разделов в Linux. Он предоставляет:

  • Унифицированный заголовок с метаданными
  • Поддержку нескольких ключевых слотов
  • Защиту от атак перебором
  • Совместимость между дистрибутивами

LVM — менеджер логических томов, который добавляет:

  • Гибкое управление дисковым пространством
  • Возможность изменения размера разделов на лету
  • Снэпшоты
  • Объединение нескольких дисков в один том

Архитектура решения

Оптимальная схема:

Физический диск
└── Зашифрованный раздел (LUKS)
    └── Физический том LVM
        ├── Группа томов
        │   ├── Том / (root)
        │   ├── Том /home
        │   └── Том swap
        └── Свободное пространство для расширения

Пошаговая настройка

1. Подготовка диска

# Идентифицируем диск
lsblk

# Создаём раздел (например, /dev/sda2)
fdisk /dev/sda

2. Инициализация LUKS

# Создаём зашифрованный контейнер
cryptsetup luksFormat /dev/sda2

# Открываем контейнер
cryptsetup open /dev/sda2 cryptlvm

3. Настройка LVM

# Создаём физический том
pvcreate /dev/mapper/cryptlvm

# Создаём группу томов
vgcreate vg_system /dev/mapper/cryptlvm

# Создаём логические тома
lvcreate -L 30G -n root vg_system
lvcreate -L 8G -n swap vg_system
lvcreate -l 100%FREE -n home vg_system

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

mkfs.ext4 /dev/mapper/vg_system-root
mkswap /dev/mapper/vg_system-swap
mkfs.ext4 /dev/mapper/vg_system-home

5. Монтирование и установка

mount /dev/mapper/vg_system-root /mnt
mkdir /mnt/home
mount /dev/mapper/vg_system-home /mnt/home
swapon /dev/mapper/vg_system-swap

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

Использование keyfile

# Генерируем ключ
dd if=/dev/urandom of=/boot/keyfile bs=1024 count=4
chmod 600 /boot/keyfile

# Добавляем ключ в LUKS
cryptsetup luksAddKey /dev/sda2 /boot/keyfile

# Настраиваем crypttab
echo "cryptlvm /dev/sda2 /boot/keyfile luks" >> /etc/crypttab

Интеграция с TPM2

Для enterprise-сред рекомендуется интеграция с TPM2:

# Установка необходимых пакетов
apt install tpm2-tools cryptsetup-tpm2

# Создание ключа в TPM
tpm2_createprimary -C o -G rsa -c primary.ctx
tpm2_create -C primary.ctx -u key.pub -r key.priv -a "fixedtpm|fixedparent|sensitivedataorigin|userwithauth|decrypt"

Восстановление доступа

Если потерян пароль

При наличии резервного ключа:

cryptsetup luksAddKey /dev/sda2  # добавит новый слот

При повреждении заголовка

Из резервной копии:

dd if=luks-header-backup of=/dev/sda2 bs=512 count=4097

Производительность и best practices

  • Используйте aes-xts-plain64 с 512-битным ключом
  • Включите AES-NI в BIOS/UEFI
  • Для SSD включите TRIM: allow-discards в crypttab
  • Регулярно обновляйте cryptsetup
  • Храните резервные копии заголовков LUKS в безопасном месте

Типичные ошибки

  1. Забыли добавить initramfs hooks — система не загрузится
    # Для Debian/Ubuntu
    

echo «CRYPTSETUP=y» > /etc/cryptsetup-initramfs/conf-hook
update-initramfs -u


2. **Неправильный порядок в /etc/fstab** — проблемы с монтированием

3. **Ключевой файл с неправильными правами** — отказ в доступе

## Заключение

Комбинация LUKS и LVM предоставляет enterprise-уровень безопасности с гибкостью управления. Правильно настроенная система защищает данные при физическом доступе к диску, сохраняя удобство администрирования.

Регулярно тестируйте процедуры восстановления и документируйте архитектуру — это критично для production-сред.

---

**Категории:** Администрирование Linux, Безопасность

**Теги:** #LUKS #LVM #шифрование #безопасность #Linux #dm-crypt #администрирование #восстановление