Шифрование диска

LUKS является стандартом для шифрования жесткого диска Linux. Расшифровать данные на диске можно только имея доступ к секретному ключу и паролю.

Как правило утилита для шифрования дисков по-умолчанию уже установлена на Linux

apt-get install cryptsetup

  1. Создание ключа
  2. dd if=/dev/urandom of=/root/secret.key bs=1024 count=2

    chmod 0400 /root/secret.key

  3. Создание и инициализация LUKS-раздела
  4. Появится предупреждение об уничтожении данных, большими буквами введите YES:

    cryptsetup luksFormat /dev/sdb1 /root/secret.key

    Если не указать путь к ключу, то необходимо ввести ПАРОЛЬ

  5. Свяжите ключ с разделом, что позже позволит его авторизовать раздел и скрыть подсказку пароля:

    cryptsetup luksAddKey /dev/sdb1 /root/secret.key --key-file=/root/secret.key

  6. создать устройство ввода-вывода

    cryptsetup luksOpen /dev/sdb1 secret --key-file=/root/secret.key

    Устройство ввода-вывода LUKS теперь доступно в /dev/mapper/secret.

  7. укажите размер раздела LUKS

    При использовании опции resize без дополнительных переменных будет занят максимальный размер базового раздела.

    cryptsetup resize secret --key-file=/root/secret.key

  8. Создайте файловую систему, например ext4:

    mkfs.ext4 /dev/mapper/secret

  9. Проверить состояние устройства cryptsetup -v status secret

    посмотреть информацию заголовка LUKS cryptsetup luksDump /dev/sdb1

  10. Смонтировать диск в систему

    blkid | grep secret

    nano /etc/systemd/system/mnt-disk2.mount

    [Unit]
    Description=Disk for disk Crypt
    [Mount]
    What=/dev/disk/by-uuid/cf7ba25d-ba9c-45b3-bb20-bccbaf4bb001
    Where=/mnt/disk2
    Type=ext4
    Options=defaults
    [Install]
    WantedBy=multi-user.target
    

    systemctl start mnt-disk2.mount

Просмотреть все текущие устройства, которые были открыты с использованием LUKS

dmsetup ls --target crypt

Отключить (закрыть) зашифрованный раздел

cryptsetup luksClose secret

Подключение диска после перезагрузки системы

cryptsetup luksOpen /dev/sdb1 secret --key-file=/root/secret.key

systemctl start mnt-disk2.mount