🔐 Использование зашифрованного пула Stratis с помощью Network Bound Disk Encryption (NBDE) |

🔐 Использование зашифрованного пула Stratis с помощью Network Bound Disk Encryption (NBDE)

Мануал

Добро пожаловать в это руководство по использованию зашифрованного пула Stratis с Network Bound Disk Encryption (NBDE).

Stratis – это служба управления локальным хранилищем, которая позволяет легко управлять пулами с физических устройств хранения.

🛡️ Полное шифрование диска (FDE) на Windows: BitLocker и альтернативы

Здесь задействовано несколько концепций:

  • Pool: это главный компонент Stratis. Он состоит из одного или нескольких блочных устройств, а его общий размер равен сумме размеров блочных устройств.
  • blockdev: это блочные устройства на Stratis. Здесь поддерживаются следующие блочные устройства:
  1. жесткие диски и твердотельные накопители
  2. логические тома LVM
  3. MD RAID
  4. iSCSI
  5. DM Multipath
  6. LUKS
  • Файловая система: Пул может содержать одну или несколько файловых систем, отформатированных в XFS и используемых для хранения файлов. Обычно файловые системы имеют тонкое обеспечение. Другими словами, они не имеют фиксированного общего размера, и их размер растет по мере сохранения на них данных.

Существует множество функций, связанных с пулом Stratis, среди которых:

  • Управление на основе пула
  • Снепшоты файловой системы
  • Мониторинг
  • Thin provisioning
  • Tiering

Stratis позволяет создавать как зашифрованные, так и незашифрованные пулы.

Зашифрованные пулы создаются на Stratis для повышения безопасности. При создании пула такого типа в качестве основного механизма шифрования используется связка ключей ядра. После перезагрузки системы для доступа к пулу необходимо предоставить созданный брелок ядра.

В этом руководстве вы получите необходимые знания о том, как использовать зашифрованный пул Stratis с Network Bound Disk Encryption (NBDE).

Stratis позволяет создавать как зашифрованные, так и незашифрованные пулы. Зашифрованные пулы создаются на Stratis для повышения безопасности.

При создании пула такого типа в качестве основного механизма шифрования используется связка ключей ядра.

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

В этом руководстве вы получите необходимые знания о том, как использовать зашифрованный пул Stratis с Network Bound Disk Encryption (NBDE).

🔐 Шифрование дисков с помощью Network Based Key Services (NBDE)

Необходимые условия

Это руководство требует, чтобы у вас были:

  • Блочные устройства, которые не используются/монтируются.В этом руководстве мы будем использовать несколько дисков, подключенных к системе.

Определите блочные устройства с помощью команды:

lsblk
NAME        MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda           8:0    0  40G  0 disk
├─sda1        8:1    0   1G  0 part /boot
└─sda2        8:2    0  39G  0 part
├─cs-root 253:0    0  35G  0 lvm  /
└─cs-swap 253:1    0   4G  0 lvm  [SWAP]
sdb           8:16   0  10G  0 disk
sdc           8:32   0  10G  0 disk
sdd           8:48   0  10G  0 disk

К моей системе подключены 3 диска по 10 ГБ каждый, которые будут использоваться для создания зашифрованного пула Stratis.

Шаг 1 – Установите Stratis на вашу систему

Stratis находится в стандартных репозиториях RHEL/CentOS/Rocky Linux/Alma Linux и может быть установлен с помощью команды:

$sudo su -
dnf install stratisd stratis-cli -y

После установки запустите службу Stratis с помощью команды:

systemctl enable --now stratisd

Проверьте, запущена ли служба:

systemctl status stratisd
● stratisd.service - Stratis daemon
Loaded: loaded (/usr/lib/systemd/system/stratisd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-07-07 13:10:27 EDT; 6s ago
Docs: man:stratisd(8)
Main PID: 2501 (stratisd)
Tasks: 5 (limit: 23505)
Memory: 1.5M
CGroup: /system.slice/stratisd.service
└─2501 /usr/libexec/stratisd --log-level debug
Jul 07 13:10:27  itsecforu systemd[1]: Starting Stratis daemon...
Jul 07 13:10:27  itsecforu  stratisd[2501]: [2022-07-07T17:10:27Z INFO  libstratis::stratis::run] stratis daemon version 2.4.2 st>
Jul 07 13:10:27  itsecforu  stratisd[2501]: [2022-07-07T17:10:27Z INFO  libstratis::stratis::run] Using StratEngine

Шаг 2 – Создание зашифрованного пула Stratis

Пул Stratis может быть создан с помощью одного или нескольких блочных устройств.

В данном руководстве мы используем 3 вторичных диска, подключенных к системе.

Начните с удаления всех таблиц разделов, файловых систем и любых подписей RAID на устройстве.

sudo wipefs --all block-device1block-device2

Замените block-device1 и block-device2 на имена устройств.

Например:

wipefs --all /dev/sdb /dev/sdc /dev/sdd

После очистки диска(ов) перейдите к получению набора ключей для шифрования.

stratis key set --capture-key pool1key
Enter key data followed by the return key: Enter Key and press Enter

Теперь у вас должна быть создана связка ключей ядра.

Она будет использоваться для доступа к пулу после последующих перезагрузок.

Проверьте с помощью команды:

stratis key list
Key Description
pool1key

Создайте зашифрованный пул с помощью команды с приведенным ниже синтаксисом:

stratis pool create --key-desc <key-description> <pool_name> block-device1 block-device2 block-device-n

После создания проверьте его с помощью команды:

stratis pool list
Name                       Total Physical   Properties                                   UUID
pool1   29.95 GiB / 45.64 MiB / 29.91 GiB      ~Ca, Cr   be1d8a96-03f8-41a4-9d63-09baa1c697d8

У нас есть пул с именем pool1, емкость которого составляет 30 ГБ.

Это сумма емкости 3 дисков.

Шаг 3 – Создание файловой системы на пуле

После создания пула необходимо создать на нем файловую систему, чтобы иметь возможность записывать данные на пул.

Это можно сделать с помощью команды с приведенным ниже синтаксисом:

stratis fs create <poolname> <filesystemname>

Например:

stratis filesystem create pool1 filesystem1

Проверьте создание с помощью команды:

stratis fs list
Pool Name   Name          Used      Created             Device                           UUID
pool1       filesystem1   545 MiB   Jul 07 2022 13:12   /dev/stratis/pool1/filesystem1   283f8f78-0b33-4a35-a2d0-e9cd6b85d124

Чтобы получить подробный вывод, используйте приведенную ниже команду:

lsblk

Шаг 4 – Разблокировка зашифрованного пула Stratis с помощью связки ключей ядра

После перезагрузки системы вы не сможете получить доступ к пулу:

stratis pool list
Name                        Total Physical   Properties                                   UUID

Чтобы получить к нему доступ, необходимо предоставить созданный ключ ядра.

Сначала воссоздайте ключ, используя то же описание ключа.

Например:

stratis key set --capture-key pool1key

Теперь разблокируйте пул с помощью ключа:

stratis pool unlock keyring

Получите доступ к пулу:

stratis pool list
Name                        Total Physical   Properties                                   UUID
pool1   29.95 GiB / 590.65 MiB / 29.38 GiB      ~Ca, Cr   be1d8a96-03f8-41a4-9d63-09baa1c697d8

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

Это можно упростить с помощью NBDE, как показано ниже.

Шаг 5 – Привязка пула Stratis к NBDE

NBDE – это аббревиатура от Network Bound Disk Encryption.

Чтобы иметь возможность привязать зашифрованный пул Stratis к NBDE, вам необходим сервер Tang.

Этот сервер Tang поможет разблокировать зашифрованный пул без необходимости предоставлять описание связки ключей ядра, как описано выше.

Сначала установите сервер Tang:

yum install tang

Выберите любой неиспользуемый порт и привяжите к нему службу.

Например, порт 7500, как показано ниже:

semanage port -a -t tangd_port_t -p tcp 7500

Разрешите заданный порт на брандмауэре:

firewall-cmd --add-port=7500/tcp --permanent
firewall-cmd --reload

Включите службу tangd:

systemctl enable tangd.socket

Создайте файл конфигурации переопределения в /etc/systemd/system/tangd.socket.d/ с помощью команды:

systemctl edit tangd.socket

Измените порт по умолчанию 80 на новый порт, как показано ниже:

[Socket]
ListenStream=
ListenStream=7500

Перезагрузите демон и перезапустите службу:

systemctl daemon-reload
systemctl restart tangd.socket

Проверьте, привязан ли сервис к новому порту:

systemctl show tangd.socket -p Listen
Listen=[::]:7500 (Stream)

Получите thumbprint  сервера tang:

tang-show-keys 7500
Mbe0_qFvUj7GRHXUp6g6yEQhixU

Теперь привяжите зашифрованный пул Stratis к NBDE с помощью команды с приведенным ниже синтаксисом:

stratis pool bind nbde <pool_name>  <tang-server> --thumbprint <random_string>

Замените poll_name и tang-server соответствующим образом.

Например:

stratis pool bind nbde pool1 http://localhost:7500 --thumbprint Mbe0_qFvUj7GRHXUp6g6yEQhixU

Шаг 6 – Разблокировка пула Stratis с помощью NBDE

Чтобы проверить, можем ли мы разблокировать пул Stratis с помощью NBDE, перезагрузите систему.

reboot now

После успешной перезагрузки системы переключитесь на пользователя root.

sudo su -

Попробуйте зайти в бассейн:

stratis pool list
Name                        Total Physical   Properties                                   UUID

Помимо разблокировки пула помощью ключа, вы можете разблокировать его, используя NBDE (шип), как показано далее:

stratis pool unlock clevis

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

Шаг 7 – Отвязка дополнительных алгоритмов шифрования

Отвязка пула Stratis от дополнительных шифров оставляет в силе только основной шифр связки ключей ядра.

Дополнительное шифрование может быть связано с NBDE или TPM.

Чтобы снять эту привязку, используйте команду с приведенным ниже синтаксисом:

stratis pool unbind clevis <pool_name>

Например

stratis pool unbind clevis pool1

После этого доступ к пулу можно получить только с помощью первичного ключа шифрования ядра, как в шаге 4.

Шаг 8 – Монтирование файловой системы Stratis

Чтобы использовать файловую систему Stratis, ее необходимо смонтировать.

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

mkdir /mnt/pool_1

Вы можете выполнить временное монтирование файловой системы с помощью команды:

mount /dev/stratis/pool1/filesystem1 /mnt/pool_1

Чтобы cмонтировать файловую систему на постоянной основе, начните с определения UUID файловых систем:

lsblk --output=UUID /dev/stratis/pool1/filesystem1
UUID
65a09ba7-1053-424c-9e04-d21c5c090249

Теперь отредактируйте файл /etc/fstab и добавьте файловую систему.

sudo vi /etc/fstab
UUID=65a09ba7-1053-424c-9e04-d21c5c090249 /mnt/pool_1 xfs defaults,x-systemd.requires=stratisd.service 0 0

Не забудьте заменить UUID и точку монтирования.

Перезагрузите системный демон:

systemctl daemon-reload

После этого файловая система сможет пережить перезагрузку системы.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий