Коротко о главном
Шифрование диска защищает данные при потере ноутбука или краже диска из сервера. В Linux стандартом остаётся LUKS поверх dm-crypt: он шифрует блоки целиком, работает с любыми файловыми системами и поддерживается установщиками большинства дистрибутивов.
Без шифрования любой, кто получил физический доступ к диску, прочитает данные, обойдя пароли ОС. LUKS закрывает этот сценарий, но требует дисциплины: потерянный заголовок или пароль означает потерю данных.
Шифрование LUKS выглядит простым снаружи, но именно детали определяют поведение под нагрузкой. Посмотрим на внутреннее устройство и тонкие настройки.
Как это устроено
Шифрование LUKS состоит из нескольких взаимодействующих частей: конфигурации, рабочего процесса и данных, с которыми он работает. Понимание этой схемы помогает предсказывать поведение системы и быстрее находить причину сбоя.
Без шифрования любой, кто получил физический доступ к диску, прочитает данные, обойдя пароли ОС. LUKS закрывает этот сценарий, но требует дисциплины: потерянный заголовок или пароль означает потерю данных. Именно поэтому настройка через переменные окружения и конфигурационные файлы предпочтительнее ручных правок «на месте».
Разбор конфигурации
Начните с минимального рабочего варианта. Не копируйте большой конфиг целиком: добавляйте параметры по одному и проверяйте результат после каждого изменения.
# /etc/crypttab
cryptdata UUID=xxxx none luks,discard
Ключевые компоненты и их взаимодействие
1. Сделайте резервную копию
Шифрование нового раздела уничтожает данные. Для существующего раздела используйте отдельную процедуру и обязательно имейте копию.
lsblk -o NAME,SIZE,FSTYPE
sudo cryptsetup benchmark
2. Создайте контейнер LUKS2
Укажите надёжную парольную фразу. LUKS2 поддерживает Argon2 и лучше защищает от подбора.
sudo cryptsetup luksFormat --type luks2 /dev/sdb1
sudo cryptsetup luksDump /dev/sdb1 | head
3. Откройте и создайте файловую систему
После открытия появляется устройство в /dev/mapper. Форматируйте именно его, а не исходный раздел.
sudo cryptsetup open /dev/sdb1 cryptdata
sudo mkfs.ext4 /dev/mapper/cryptdata
sudo mount /dev/mapper/cryptdata /mnt
4. Сохраните заголовок
Копия заголовка позволяет восстановить доступ при повреждении. Храните её отдельно и защищайте: она содержит ключевые слоты.
sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /root/luks-header.img
sudo chmod 600 /root/luks-header.img
5. Настройте автоматическое открытие
Для дополнительного диска добавьте запись в crypttab и fstab. Проверьте загрузку, прежде чем считать настройку завершённой.
sudo blkid /dev/sdb1
# добавьте строку в /etc/crypttab и /etc/fstab
sudo systemctl daemon-reload
sudo reboot
Диагностика и тонкая настройка
Начинайте с журналов и проверки версии. Затем изолируйте проблему: конфигурация, права доступа, сеть или данные. Не меняйте несколько параметров одновременно — иначе невозможно понять, что именно помогло.
Практические советы
Эти рекомендации проверены на повседневных задачах. Начните с тех, которые закрывают вашу текущую боль, а не со всего списка сразу.
Совет 1. Храните резервную копию заголовка вне шифруемого диска.
Храните резервную копию заголовка вне шифруемого диска.
Совет 2. Не используйте один и тот же пароль для LUKS и учётной записи.
Не используйте один и тот же пароль для LUKS и учётной записи.
Совет 3. Проверяйте restore заголовка на тестовом устройстве.
Проверяйте restore заголовка на тестовом устройстве.
Совет 4. discard включает TRIM на SSD, но может раскрывать факт удаления данных
discard включает TRIM на SSD, но может раскрывать факт удаления данных.
Совет 5. Для серверов без консоли продумайте удалённую разблокировку или откажи
Для серверов без консоли продумайте удалённую разблокировку или откажитесь от шифрования корня.
Типичные ошибки
Ниже — сбои, которые встречаются чаще всего. Перед исправлением сохраните текущие конфиги и запишите, какие изменения вносите: так проще откатиться.
1. Неверная парольная фраза
Проверьте раскладку и регистр. Если пароль утерян, без резервного слота или заголовка данные не восстановить.
2. Система не загружается после изменения crypttab
Загрузитесь с Live USB, смонтируйте систему и исправьте crypttab/fstab. Ошибка в UUID делает раздел недоступным.
3. Повреждён заголовок LUKS
Восстановите его из резервной копии на новый диск того же размера. Без копии восстановление невозможно.
Что улучшить после базовой настройки
Когда Шифрование LUKS работает предсказуемо, следующий шаг — наблюдаемость. Добавьте проверку состояния, которая отвечает на вопрос «жив ли сервис», и метрику, показывающую нагрузку. Без этого вы узнаёте о проблеме от пользователей, а не от системы.
Второе направление — воспроизводимость. Опишите установку и конфигурацию так, чтобы их можно было повторить на чистой машине: список пакетов, файлы настроек, порядок команд. Это одновременно документация, план восстановления и основа для автоматизации.
Не оптимизируйте то, что не измеряли. Сначала соберите базовые показатели, затем меняйте один параметр и сравнивайте результат. Иначе легко получить конфигурацию, которая выглядит сложнее, но работает не быстрее.
Итог
Понимание внутреннего устройства Шифрование LUKS экономит часы диагностики. Когда знаете, где хранится состояние и как компоненты общаются, ошибка перестаёт быть «магией».