LUKS (Linux Unified Key Setup) – стандартный формат шифрования блочных устройств в Linux. Через cryptsetup можно зашифровать раздел или весь диск: без пароля или ключевого файла содержимое выглядит как случайные данные. Ниже – базовая схема для Debian и Ubuntu: отдельный data-раздел, не root с шифрованием при установке.
Зачем LUKS
- шифрование раздела или диска целиком;
- защита данных при краже носителя или доступе offline;
- несколько слотов ключей (пароль + keyfile, запасной пароль).
LUKS не заменяет бэкапы и права доступа в работающей системе: пока том открыт и смонтирован, ОС и процессы читают его как обычный диск.
Пакеты
sudo apt update sudo apt install cryptsetup
Подготовка устройства
Уточните имя диска или раздела. Ошибка в букве устройства уничтожит чужие данные.
lsblk -f # при необходимости: sudo fdisk -l
Дальше в примерах /dev/sdb1 – условный раздел без нужных данных. luksFormat необратимо затирает содержимое. Отдельный mkfs на «сыром» разделе до LUKS не нужен: файловую систему создают уже на mapper-устройстве после открытия.
Инициализация LUKS
sudo cryptsetup luksFormat /dev/sdb1
Утилита предупредит о потере данных. Подтверждение – словом YES (часто в верхнем регистре). Задайте длинную passphrase. По умолчанию на современных системах обычно LUKS2 и разумный cipher; при необходимости параметры смотрите в man cryptsetup.
Открытие тома
sudo cryptsetup luksOpen /dev/sdb1 my_encrypted_volume
Имя my_encrypted_volume появится как /dev/mapper/my_encrypted_volume. Это уже расшифрованный блочный слой.
Файловая система и монтирование
sudo mkfs.ext4 /dev/mapper/my_encrypted_volume sudo mkdir -p /mnt/my_encrypted_data sudo mount /dev/mapper/my_encrypted_volume /mnt/my_encrypted_data
Рабочая точка – /mnt/my_encrypted_data. Права на каталоги внутри настраивайте как на обычном разделе.
Автооткрытие при загрузке
Строка в /etc/crypttab (имя mapper, устройство, источник ключа, опции):
my_encrypted_volume /dev/sdb1 none luks
none значит: спрашивать passphrase при загрузке. На сервере без консоли это неудобно – тогда keyfile, TPM или ручное открытие после boot. Надёжнее ссылаться на UUID раздела, а не на /dev/sdb1:
sudo blkid /dev/sdb1 # затем: my_encrypted_volume UUID=.... none luks
Монтирование в /etc/fstab:
/dev/mapper/my_encrypted_volume /mnt/my_encrypted_data ext4 defaults 0 2
После правок проверьте порядок: сначала crypttab (появление mapper), затем fstab. Ошибка в fstab может сорвать загрузку – имейте recovery или live-среду.
Закрытие тома
sudo umount /mnt/my_encrypted_data sudo cryptsetup luksClose my_encrypted_volume
Сначала umount, потом luksClose. Иначе устройство «занято».
Дополнительные ключи и keyfile
Потеря единственного пароля означает потерю данных. Добавьте второй слот (другой пароль) или ключевой файл, который храните отдельно от диска (USB, сейф, офлайн-копия).
Создание keyfile и добавление в LUKS:
sudo dd if=/dev/urandom of=/root/mykeyfile bs=1024 count=4 sudo chmod 600 /root/mykeyfile sudo cryptsetup luksAddKey /dev/sdb1 /root/mykeyfile
Открытие по файлу:
sudo cryptsetup luksOpen /dev/sdb1 my_encrypted_volume --key-file /root/mykeyfile
Keyfile на том же незашифрованном корне упрощает автомонтирование, но при краже всего диска вместе с keyfile защита слабее. Имеет смысл выносить ключ на отдельный носитель или сочетать с другими мерами.
Практика безопасности
- длинная уникальная passphrase, не из словарных шаблонов;
- бэкапы важных данных (шифрованный том не спасает от сбоя диска);
- обновления
cryptsetupи ядра; - не хранить единственный ключ только в голове без recovery-слота;
- для системного раздела удобнее шифрование на этапе установки ОС; эта статья – про отдельный data-volume.
Краткий чеклист
cryptsetup, верный/dev/...поlsblk/blkid;luksFormat→luksOpen→mkfsна mapper →mount;- при необходимости crypttab + fstab по UUID;
- второй ключ или keyfile, бэкапы, аккуратное закрытие тома.
Итог: LUKS на Debian/Ubuntu – штатный путь закрыть раздел от offline-доступа. Главные риски не в синтаксисе, а в неверном устройстве, забытом пароле и отсутствии запасного ключа.

