Гид по технологиям

Шифрование раздела с dm-crypt LUKS

• 5 min read • Безопасность • Обновлено 19 Nov 2025
Шифрование раздела с dm-crypt LUKS
Шифрование раздела с dm-crypt LUKS

Это краткое и практичное руководство по шифрованию раздела с помощью dm-crypt и LUKS. Подготовьте пустой раздел, перезапишите его случайными данными, создайте LUKS-контейнер через cryptsetup, смонтируйте файловую систему, работайте с данными и корректно закройте устройство. Внизу — чеклисты, риски и рекомендации по безопасности.

Введение

TrueCrypt больше не поддерживается, поэтому здесь показан современный и простой способ шифрования раздела с помощью dm-crypt и LUKS. dm-crypt предоставляет прозрачное шифрование блока устройства на уровне ядра и реализован через схему device mapper. Алгоритмы шифрования берутся из crypto API ядра Linux.

Коротко: это шифрование, реализованное в ядре, которое маппирует физический блоковый диск на виртуальное шифрованное устройство.

Требования

  • Один пустой раздел или свободное место на диске. Если разделов нет, используйте parted, gparted или любой другой инструмент для изменения разметки и создания нового раздела.
  • Права root для выполнения команд ниже.

Важно: убедитесь, что у вас нет нужных данных на выбранном разделе. Все данные будут уничтожены в процессе форматирования.

Подготовка раздела

В примере используется раздел /dev/sda3. Сначала перезапишем раздел случайными данными несколько раз, чтобы снизить шансы восстановления данных при судебной экспертизе. Для 20 ГБ раздела у меня ушло примерно 30 минут на три прохода.

shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sda3

Создание LUKS-контейнера

Создадим шифрованное устройство в режиме LUKS через cryptsetup. В примере используется алгоритм aes-xts-plain64 с размером ключа 512 бит и хешем sha512. Опция –iter-time увеличивает время KDF для защиты от перебора паролей.

cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3

Команда выдаст предупреждение и попросит подтвердить действие, затем предложит ввести и подтвердить пароль. После успешного выполнения вы увидите сообщение об успешном завершении.

Открытие шифрованного устройства

Откроем созданный LUKS-контейнер и привяжем его к имени в device mapper. В примере имя устройства будет root.

cryptsetup open --type luks /dev/sda3 root

Имя root здесь выступает как метка для /dev/mapper/root и удобно использовать его в последующих командах.

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

Создайте файловую систему на смонтированном шифрованном устройстве и подключите её к точке монтирования.

mkfs.ext4 /dev/mapper/root

mount -t ext4 /dev/mapper/root /mnt

Теперь /mnt — это зашифрованное хранилище. Перенесите туда ваши файлы обычными командами копирования.

Завершение работы и очистка

После завершения работы отмонтируйте точку и закройте контейнер:

umount /mnt

cryptsetup close root

Очистите системные буферы, чтобы уменьшить шанс остатков данных в кэше:

sysctl --write vm.drop_caches=3

Важно: всегда корректно отмонтируйте и закройте LUKS-устройство перед отключением носителя или перезагрузкой.

Шифрование файла-образа и запись на CD/DVD

Если нужно зашифровать не раздел, а файл-образ, создайте файл и заполните его случайными данными. Например, создадим 500 МБ файл, который затем используем как отдельную файловую систему в LUKS:

dd if=/dev/urandom of=encrypted.volume bs=1MB count=500

Замените в начале предыдущих инструкций команду shred на создание файла через dd и применяйте остальные команды как есть, указывая путь к файлу вместо /dev/sda3. Не забудьте отмонтировать и закрыть encrypted.volume перед записью на диск.

Защита раздела /boot и полный диск

Если вы хотите полноценное шифрование всего диска, нужно особо позаботиться о разделе /boot. /boot не шифруется в большинстве стандартных установок, а значит злоумышленник может модифицировать загрузчик. В ссылках внизу подробно описаны способы шифрования /boot и настройки initramfs.

link 1, link 2, link 3, link 4, link 5, link 6, link 7

Альтернативные подходы и когда это не подходит

  • VeraCrypt / продолжения TrueCrypt могут быть предпочтительны для кросс-платформенных задач и портативных контейнеров.
  • Для мобильных систем с UEFI и Secure Boot потребуются дополнительные шаги при шифровании /boot.
  • Если вы не контролируете аппарат (например, публичные машины), хранение ключей на том же устройстве снижает безопасность.

Мини-методология

  1. Подготовьте резервные копии нужных данных.
  2. Освободите или создайте раздел для шифрования.
  3. Перезапишите раздел случайными данными.
  4. Создайте LUKS-контейнер и задайте сильный пароль.
  5. Откройте контейнер, создайте файловую систему, смонтируйте и перенесите данные.
  6. После работы корректно отмонтируйте и закройте контейнер.
  7. Очистите кэши.

Роль-ориентированный чеклист

  • Для пользователя:

    • Убедиться, что есть резервные копии.
    • Записать пароль в надёжное место или использовать менеджер паролей.
    • Всегда корректно отмонтировать и закрыть устройство.
  • Для системного администратора:

    • Настроить периодический бэкап LUKS header или иметь резервный ключ.
    • Рассмотреть использование ключевого файла на отдельном носителе.
    • Проверить автоматический скрипт монтирования в initramfs для /boot.
  • Для аудитора:

    • Проверить, что passphrase имеет достаточную сложность.
    • Проверить отсутствие незашифрованных чувствительных данных в /tmp, swap, и логах.

Риски и смягчения

  • Риск: потеря пароля => потеря доступа к данным. Смягчение: хранить резервный ключ или бэкап LUKS header.
  • Риск: ключ рядом с диском (на той же машине). Смягчение: использовать внешний ключевой носитель или TPM/secure element.
  • Риск: повреждение LUKS header. Смягчение: создать резервную копию заголовка с помощью cryptsetup luksHeaderBackup.

Критерии приёмки

  • Устройство успешно открывается по паролю и монтируется.
  • Данные доступны после монтирования и недоступны при попытке монтирования без пароля.
  • После закрытия устройства диск не содержит доступных незашифрованных данных.

Советы по усилению безопасности

  • Используйте длинный уникальный пароль или сочетание пароля и ключевого файла.
  • Не храните ключи на том же физическом диске без дополнительной защиты.
  • Зашифруйте swap и временные каталоги, если там могут оказаться секреты.
  • Рассмотрите использование TPM или внешнего ключевого носителя для автоматической разблокировки в контролируемой среде.

Краткий глоссарий

  • dm-crypt: подсистема ядра Linux для шифрования блочных устройств.
  • LUKS: формат контейнера для хранения зашифрованных блочных устройств и метаданных.
  • cryptsetup: утилита для создания и управления LUKS-контейнерами.
  • device mapper: инфраструктура ядра для создания виртуальных блочных устройств.

Заключение

Это простой и проверенный способ обеспечить шифрование раздела на Linux с помощью dm-crypt и LUKS. Ключевые моменты — подготовка раздела, создание контейнера через cryptsetup, корректная работа с монтированием и обязательное закрытие контейнера. Дополнительные меры безопасности и резервные копии заголовка LUKS значительно снижают риски потери данных.

Важно: при записи образа на CD/DVD всегда убедитесь, что encrypted.volume корректно закрыт и отмонтирован перед прожигом.

Дополнительные материалы и подробные инструкции по шифрованию полного диска и раздела boot находятся в перечисленных ссылках выше.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро