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

Подготовка к использованию зашифрованного раздела диска в Linux с использованием утилиты cryptsetup на примере Debian GNU/Linux 12.5 и CentOS 7.

Установка очень проста.

В CentOS:

# yum install cryptsetup

В Debian:

# apt install cryptsetup

Если раздел диска ещё не создан, его можно создать, например, на дополнительном диске

# cfdisk /dev/sdb

Далее забиваем этот раздел случайными данными

# dd if=/dev/urandom of=/dev/sdb1

После этого создаём зашифрованный раздел

# cryptsetup luksFormat /dev/sdb1

Необходимо будет ввести какую-нибудь парольную фразу

Теперь настроим взаимодействие с зашифрованным разделом

# cryptsetup luksOpen /dev/sdb1 special

здесь необходимо будет ввести парольную фразу

Enter passphrase for /dev/sdb1:

Отформатируем диск в файловую систему ext4

# mkfs.ext4 /dev/mapper/special

Затем создадим точку монтирования и примонтируем к ней раздел

# mkdir /mnt/special/
# mount /dev/mapper/special /mnt/special/

После этого создаём файл /etc/crypttab и занесём строку с указанием файла с парольной фразой

# echo "special	/dev/sdb1	/root/passwd_disk" > /etc/crypttab

Для автоматического монтирования диска при загрузке системы добавим строчку в файл /etc/fstab

/dev/mapper/special     /mnt/special    ext4            defaults        0 0

Далее создадим файл с парольной фразой, назначим ему права доступа только для рута, а также свяжем его с зашифрованным разделом

# touch /root/passwd_disk
# echo -n "YourPassPhrase" > /root/passwd_disk
# chmod 600 /root/passwd_disk
# cryptsetup luksAddKey /dev/sdb1 /root/passwd_disk

Теперь перезагрузим машину

# shutdown -r now

и убедимся, что раздел монтируется автоматически.

Можно также просмотреть состояние устройства

# cryptsetup -v status special

вывод должен быть примерно таким:

/dev/mapper/special is active and is in use.
  type:    LUKS1
  cipher:  aes-xts-plain64
  keysize: 256 bits
  key location: dm-crypt
  device:  /dev/sdb1
  sector size:  512
  offset:  4096 sectors
  size:    125824961 sectors
  mode:    read/write
Command successful.

Информация заголовка luks

# cryptsetup luksDump /dev/sdb1

Данная команда выведет примерно такую информацию:

LUKS header information for /dev/sdb1

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha256
Payload offset: 4096
MK bits:        256
MK digest:      58 63 df 0f c5 62 4c ad 1f 5b 71 7e cc bd fb 8c 04 ad 36 c2
MK salt:        af 4b d8 72 8f f6 fc 47 e9 dd 35 ae 5f 38 7d ab
                3c e4 e7 0a 86 8d ce 84 e1 bf ef 61 74 47 89 c0
MK iterations:  36449
UUID:           0440a791-81bc-4309-9da8-189a8dae46da

Key Slot 0: ENABLED
        Iterations:             677374
        Salt:                   25 69 9a 60 98 ff 42 9b 9c 86 1c 1d 26 4c f4 27
                                25 cd e9 49 2a 54 22 1a 87 e9 9d ea dd ca 5b a8
        Key material offset:    8
        AF stripes:             4000
Key Slot 1: ENABLED
        Iterations:             772146
        Salt:                   54 9c ff f9 94 74 0d 1b af b9 f9 3b 7a 1b 97 c5
                                2f b5 01 e9 9b 63 e9 7d ab d4 48 96 9a d6 af ed
        Key material offset:    264
        AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Теперь можно пользоваться новым зашифрованным разделом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *