Proxmox. Шифрование несистемных дисков с данными: различия между версиями
Cless (обсуждение | вклад) (Новая страница: «Категория:Proxmox __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__») |
Cless (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
[[Категория:Proxmox]] | [[Категория:Proxmox]] | ||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | ||
== Ссылки == | |||
https://tactical-documentation.github.io/post/proxmoxve6-zfs-luks-systemdboot-dropbear/ | |||
== Настройка == | |||
=== Общая настройка === | |||
Добавляем репозитории | |||
<code>echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> ~/.bashrc</code> | |||
<code>sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service</code> | |||
<code>rm /etc/apt/sources.list.d/pve-enterprise.list</code> | |||
<code>echo 'deb <nowiki>http://download.proxmox.com/debian/pve</nowiki> buster pve-no-subscription' > pve-community.list</code> | |||
Устанавливаем CRYPTSETUP | |||
<code>apt update</code> | |||
<code>apt install cryptsetup</code> | |||
Шифруем физический диск /dev/sdb | |||
<code>cryptsetup luksFormat /dev/sdb</code> | |||
Аттачим шифрованный раздел в /dev/mapper/data01 | |||
<code>cryptsetup luksOpen /dev/sdb data01</code> | |||
Проверяем | |||
<code>lsblk</code> | |||
... | |||
sdb 8:16 0 1.8T 0 disk | |||
L-data01 253:5 0 1.8T 0 crypt | |||
... | |||
Далее варианты форматирования разделов | |||
=== Вариант 1. LVM-Thin для хранения ВМ в формате RAW === | |||
Для раздела хранения ВМ и контейнеров в формате '''RAW''' с возможностью создания снэпшотов подойдут '''LVM-Thin''' и '''ZFS''' | |||
Создаем PV '''data01''' | |||
<code>lvm pvcreate /dev/mapper/data01</code> | |||
Создаем VG data01 | |||
<code>lvm vgcreate data01 /dev/mapper/data01</code> | |||
Создаем раздел LVM-Thin data01_pve01 на 100% области VG data01 | |||
<code>lvcreate -l 100%FREE -T data01/data01_pve01</code> | |||
Проверяем | |||
<code>lsblk</code> | |||
... | |||
sdb 8:16 0 1.8T 0 disk | |||
L-data01 253:5 0 1.8T 0 crypt | |||
+-data01-data01_pve01_tmeta 253:6 0 120M 0 lvm | |||
¦ L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm | |||
¦ +-data01-data01_pve01 253:9 0 1.8T 0 lvm | |||
¦ L-data01-vm--100--disk--0 253:10 0 80G 0 lvm | |||
L-data01-data01_pve01_tdata 253:7 0 1.8T 0 lvm | |||
L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm | |||
+-data01-data01_pve01 253:9 0 1.8T 0 lvm | |||
L-data01-vm--100--disk--0 253:10 0 80G 0 lvm | |||
... | |||
В веб-интерфейсе Proxmox подключаем Storage типа LVM-Thin | |||
<code>- Datacenter - Storage - Add - LVM-Thin</code> | |||
<u>ID</u>: '''data01_pve01''' | |||
<u>VG</u>: '''data01''' | |||
<u>Thin pool</u>: '''data01_pve01''' | |||
Перезапускаем Proxmox | |||
Видим пустой sdb | |||
<code>lsblk</code> | |||
... | |||
sdb 8:16 0 1.8T 0 disk | |||
... | |||
Подключаем шифрованный диск используя пароль | |||
<code>cryptsetup luksOpen /dev/sdb data01</code> | |||
Видим разделы LVM | |||
<code>lsblk</code> | |||
... | |||
sdb 8:16 0 1.8T 0 disk | |||
L-data01 253:5 0 1.8T 0 crypt | |||
+-data01-data01_pve01_tmeta 253:6 0 120M 0 lvm | |||
¦ L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm | |||
¦ +-data01-data01_pve01 253:9 0 1.8T 0 lvm | |||
¦ L-data01-vm--100--disk--0 253:10 0 80G 0 lvm | |||
L-data01-data01_pve01_tdata 253:7 0 1.8T 0 lvm | |||
L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm | |||
+-data01-data01_pve01 253:9 0 1.8T 0 lvm | |||
L-data01-vm--100--disk--0 253:10 0 80G 0 lvm | |||
... | |||
<code>blkid</code> | |||
... | |||
/dev/sdb: UUID="afeb41b5-a8ad-463d-9718-86e858be7e6a" TYPE="crypto_LUKS" | |||
... | |||
<code>nano /etc/crypttab</code> | |||
... | |||
data01 UUID=afeb41b5-a8ad-463d-9718-86e858be7e6a none luks,discard | |||
<code>reboot</code> | |||
Во время загрузки вводим пароль шифрования для '''data01''' | |||
Проверяем | |||
<code>lsblk</code> | |||
=== Вариант 2. Для раздела хранения ВМ и контейнеров в формате QCOW2 и VMDK LVM, с ручным форматированием и ручным монтированием в директорию === | |||
Для раздела хранения ВМ и контейнеров в формате QCOW2 и VMDK с возможностью создания снэпшотов подойдёт LVM с ручным монтированием в директорию после подключения шифрованного раздела | |||
Создаем PV '''data01''' | |||
<code>lvm pvcreate /dev/mapper/data01</code> | |||
Создаем VG '''data01''' | |||
<code>lvm vgcreate data01 /dev/mapper/data01</code> | |||
Создаем раздел LVM data01_pve01 на 100% области VG data01 | |||
<code>lvcreate -l 100%FREE --name data01_pve01 data01</code> | |||
Форматируем раздел в XFS | |||
<code>mkfs.xfs /dev/mapper/data01-data01_pve01</code> | |||
Создаем директорию для монтирования раздела | |||
<code>mkdir /mnt/pve/data01_pve01</code> | |||
Монтируем раздел | |||
<code>mount /dev/mapper/data01-data01_pve01 /mnt/pve/data01_pve01/</code> | |||
Создаем Directory в веб-интерфейсе Proxmox | |||
<code>- Datacenter - Storage - Add - Directory</code> | |||
<u>ID</u>: '''data01_pve01''' | |||
<u>Directory</u>: '''/mnt/pve/data01_pve01''' // откуда брать диск для Directory | |||
<u>Content</u>: '''Disk image, Container''' // также можно выбрать хранение ISO и CT-Templates | |||
Получаем локальное хранилище '''data01_pve01''' в '''Datacenter - Storage''' | |||
Перезагружаем Proxmox | |||
reboot | |||
Подключаем шифрованный диск и монтируем раздел LVM в директорию | |||
<code>cryptsetup luksOpen /dev/sdb data01</code> | |||
<code>mount /dev/mapper/data01-data01_pve01 /mnt/pve/data01_pve01/</code> | |||
Проверяем | |||
<code>lsblk</code> | |||
... | |||
sdb 8:16 0 1.8T 0 disk | |||
L-data01 253:5 0 1.8T 0 crypt | |||
+-data01-data01_pve01_tmeta 253:6 0 120M 0 lvm | |||
¦ L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm | |||
¦ +-data01-data01_pve01 253:9 0 1.8T 0 lvm | |||
¦ L-data01-vm--100--disk--0 253:10 0 80G 0 lvm | |||
L-data01-data01_pve01_tdata 253:7 0 1.8T 0 lvm | |||
L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm | |||
+-data01-data01_pve01 253:9 0 1.8T 0 lvm | |||
L-data01-vm--100--disk--0 253:10 0 80G 0 lvm | |||
... | |||
<code>df -h</code> | |||
... | |||
/dev/mapper/data02-data02_pve01 458G 920M 434G 1% /mnt/pve/data02_pve01 | |||
... | |||
Готово | |||
Можно создавать ВМ и хранить ISO и шаблоны на этом разделе | |||
=== Вариант 3. 2 раздела на одном физическом шифрованном диске === | |||
<blockquote> - LVM (МОНТИРУЕМ В ДИРЕКТОРИЮ И ИСПОЛЬЗУЕМ КАК ХРАНИЛИЩЕ ДЛЯ ISO, И ВМ С ФАЙЛОВЫМИ ДИСКАМИ) | |||
- LVM-Thin (ИСПОЛЬЗУЕМ КАК ХРАНИЛИЩЕ ДЛЯ ВМ С ДИСКАМИ RAW НА РАЗДЕЛЕ, СОБСТВЕННО, LVM-Thin)</blockquote>Создаем PV data01 | |||
<code>lvm pvcreate /dev/mapper/data01</code> | |||
Создаем VG data01 | |||
<code>lvm vgcreate data01 /dev/mapper/data01</code> | |||
Создаем ПЕРВЫЙ РАЗДЕЛ LVM data01-lvm_pve01 на 30% области VG data01 | |||
<code>lvcreate -l 30%FREE --name data01-lvm_pve01 data01</code> | |||
Создаем ВТОРОЙ РАЗДЕЛ LVM-Thin используя 100% от оставшегося места | |||
<code>lvcreate -l 100%FREE -T data02/data01-lvmthin_pve01</code> | |||
Форматируем первый раздел | |||
<code>mkfs.ext4 /dev/data01/data01-lvm_pve01</code> | |||
Создаем директорию для монтирования первого раздела | |||
<code>mkdir /mnt/pve/data02-lvm_pve01</code> | |||
Монтируем первый раздел | |||
<code>mount /dev/mapper/data01-data01--lvm_pve01 /mnt/pve/data01-lvm_pve01/</code> | |||
Создаем Directory в веб-интерфейсе Proxmox | |||
<code>- Datacenter - Storage - Add - Directory</code> | |||
<u>ID</u>: '''data01-lvm_pve01''' | |||
<u>Directory</u>: '''/mnt/pve/data01-lvm_pve01''' // откуда брать диск для Directory | |||
<u>Content</u>: '''Disk image, Container''' // также можно выбрать хранение ISO и CT-Templates | |||
Получаем локальное хранилище data01-lvm_pve01 в Datacenter - Storage | |||
Переходим ко второму разделу | |||
В веб-интерфейсе Proxmox подключаем Storage типа LVM-Thin | |||
<code>- Datacenter - Storage - Add - LVM-Thin</code> | |||
<u>ID</u>: '''data01-lvmthin_pve01''' | |||
<u>VG</u>: '''data01''' | |||
<u>Thin pool</u>: '''data01-lvmthin_pve01''' | |||
Получаем 2 хранилища | |||
Здесь храним iso и ВМ с файловыми дисками | |||
<code>df -h</code> | |||
... | |||
/dev/mapper/data02-data01--lvm_pve01 137G 61M 130G 1% /mnt/pve/data01-lvmthin_pve01 | |||
... | |||
Здесь храним ВМ c RAW дисками в виде разделов LVM-Thin | |||
<code>lvs</code> | |||
... | |||
data01-lvmthin_pve01 data01 twi-a-tz-- <325.86g 0.00 10.42 | |||
... | |||
<code>reboot</code> | |||
Подключаем физический шифрованный диск, | |||
Монтируем первый раздел в директорию, второй раздел монтировать не надо, он подтянется сам в веб-интерфейсе | |||
<code>cryptsetup luksOpen /dev/sdb data01</code> | |||
<code>mount /dev/mapper/data01-data01--lvmthin_pve01 /mnt/pve/data01-lvmthin_pve01/</code> | |||
=== Вариант 4. ZFS === | |||
<code>cryptsetup luksFormat /dev/sdc</code> | |||
<code>cryptsetup luksOpen /dev/sdc data02</code> | |||
<code>zpool create -m /mnt/data02 data02 /dev/mapper/data02</code> | |||
<code>blkid</code> | |||
... | |||
/dev/sdc: UUID="afeb41b5-a8ad-463d-9718-86e858be7e6a" TYPE="crypto_LUKS" | |||
... | |||
<code>nano /etc/crypttab</code> | |||
... | |||
data02 UUID=afeb41b5-a8ad-463d-9718-86e858be7e6a none luks,discard | |||
<code>reboot</code> | |||
Во время загрузки вводим пароль шифрования для '''data02''' | |||
Проверяем | |||
<code>lsblk</code> | |||
Версия 12:33, 25 апреля 2022
Ссылки
https://tactical-documentation.github.io/post/proxmoxve6-zfs-luks-systemdboot-dropbear/
Настройка
Общая настройка
Добавляем репозитории
echo "export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> ~/.bashrc
sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
rm /etc/apt/sources.list.d/pve-enterprise.list
echo 'deb http://download.proxmox.com/debian/pve buster pve-no-subscription' > pve-community.list
Устанавливаем CRYPTSETUP
apt update
apt install cryptsetup
Шифруем физический диск /dev/sdb
cryptsetup luksFormat /dev/sdb
Аттачим шифрованный раздел в /dev/mapper/data01
cryptsetup luksOpen /dev/sdb data01
Проверяем
lsblk
... sdb 8:16 0 1.8T 0 disk L-data01 253:5 0 1.8T 0 crypt ...
Далее варианты форматирования разделов
Вариант 1. LVM-Thin для хранения ВМ в формате RAW
Для раздела хранения ВМ и контейнеров в формате RAW с возможностью создания снэпшотов подойдут LVM-Thin и ZFS
Создаем PV data01
lvm pvcreate /dev/mapper/data01
Создаем VG data01
lvm vgcreate data01 /dev/mapper/data01
Создаем раздел LVM-Thin data01_pve01 на 100% области VG data01
lvcreate -l 100%FREE -T data01/data01_pve01
Проверяем
lsblk
... sdb 8:16 0 1.8T 0 disk L-data01 253:5 0 1.8T 0 crypt +-data01-data01_pve01_tmeta 253:6 0 120M 0 lvm ¦ L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm ¦ +-data01-data01_pve01 253:9 0 1.8T 0 lvm ¦ L-data01-vm--100--disk--0 253:10 0 80G 0 lvm L-data01-data01_pve01_tdata 253:7 0 1.8T 0 lvm L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm +-data01-data01_pve01 253:9 0 1.8T 0 lvm L-data01-vm--100--disk--0 253:10 0 80G 0 lvm ...
В веб-интерфейсе Proxmox подключаем Storage типа LVM-Thin
- Datacenter - Storage - Add - LVM-Thin
ID: data01_pve01
VG: data01
Thin pool: data01_pve01
Перезапускаем Proxmox
Видим пустой sdb
lsblk
... sdb 8:16 0 1.8T 0 disk ...
Подключаем шифрованный диск используя пароль
cryptsetup luksOpen /dev/sdb data01
Видим разделы LVM
lsblk
... sdb 8:16 0 1.8T 0 disk L-data01 253:5 0 1.8T 0 crypt +-data01-data01_pve01_tmeta 253:6 0 120M 0 lvm ¦ L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm ¦ +-data01-data01_pve01 253:9 0 1.8T 0 lvm ¦ L-data01-vm--100--disk--0 253:10 0 80G 0 lvm L-data01-data01_pve01_tdata 253:7 0 1.8T 0 lvm L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm +-data01-data01_pve01 253:9 0 1.8T 0 lvm L-data01-vm--100--disk--0 253:10 0 80G 0 lvm ...
blkid
... /dev/sdb: UUID="afeb41b5-a8ad-463d-9718-86e858be7e6a" TYPE="crypto_LUKS" ...
nano /etc/crypttab
... data01 UUID=afeb41b5-a8ad-463d-9718-86e858be7e6a none luks,discard
reboot
Во время загрузки вводим пароль шифрования для data01
Проверяем
lsblk
Вариант 2. Для раздела хранения ВМ и контейнеров в формате QCOW2 и VMDK LVM, с ручным форматированием и ручным монтированием в директорию
Для раздела хранения ВМ и контейнеров в формате QCOW2 и VMDK с возможностью создания снэпшотов подойдёт LVM с ручным монтированием в директорию после подключения шифрованного раздела
Создаем PV data01
lvm pvcreate /dev/mapper/data01
Создаем VG data01
lvm vgcreate data01 /dev/mapper/data01
Создаем раздел LVM data01_pve01 на 100% области VG data01
lvcreate -l 100%FREE --name data01_pve01 data01
Форматируем раздел в XFS
mkfs.xfs /dev/mapper/data01-data01_pve01
Создаем директорию для монтирования раздела
mkdir /mnt/pve/data01_pve01
Монтируем раздел
mount /dev/mapper/data01-data01_pve01 /mnt/pve/data01_pve01/
Создаем Directory в веб-интерфейсе Proxmox
- Datacenter - Storage - Add - Directory
ID: data01_pve01
Directory: /mnt/pve/data01_pve01 // откуда брать диск для Directory
Content: Disk image, Container // также можно выбрать хранение ISO и CT-Templates
Получаем локальное хранилище data01_pve01 в Datacenter - Storage
Перезагружаем Proxmox
reboot
Подключаем шифрованный диск и монтируем раздел LVM в директорию
cryptsetup luksOpen /dev/sdb data01
mount /dev/mapper/data01-data01_pve01 /mnt/pve/data01_pve01/
Проверяем
lsblk
... sdb 8:16 0 1.8T 0 disk L-data01 253:5 0 1.8T 0 crypt +-data01-data01_pve01_tmeta 253:6 0 120M 0 lvm ¦ L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm ¦ +-data01-data01_pve01 253:9 0 1.8T 0 lvm ¦ L-data01-vm--100--disk--0 253:10 0 80G 0 lvm L-data01-data01_pve01_tdata 253:7 0 1.8T 0 lvm L-data01-data01_pve01-tpool 253:8 0 1.8T 0 lvm +-data01-data01_pve01 253:9 0 1.8T 0 lvm L-data01-vm--100--disk--0 253:10 0 80G 0 lvm ...
df -h
... /dev/mapper/data02-data02_pve01 458G 920M 434G 1% /mnt/pve/data02_pve01 ...
Готово
Можно создавать ВМ и хранить ISO и шаблоны на этом разделе
Вариант 3. 2 раздела на одном физическом шифрованном диске
- LVM (МОНТИРУЕМ В ДИРЕКТОРИЮ И ИСПОЛЬЗУЕМ КАК ХРАНИЛИЩЕ ДЛЯ ISO, И ВМ С ФАЙЛОВЫМИ ДИСКАМИ) - LVM-Thin (ИСПОЛЬЗУЕМ КАК ХРАНИЛИЩЕ ДЛЯ ВМ С ДИСКАМИ RAW НА РАЗДЕЛЕ, СОБСТВЕННО, LVM-Thin)
Создаем PV data01
lvm pvcreate /dev/mapper/data01
Создаем VG data01
lvm vgcreate data01 /dev/mapper/data01
Создаем ПЕРВЫЙ РАЗДЕЛ LVM data01-lvm_pve01 на 30% области VG data01
lvcreate -l 30%FREE --name data01-lvm_pve01 data01
Создаем ВТОРОЙ РАЗДЕЛ LVM-Thin используя 100% от оставшегося места
lvcreate -l 100%FREE -T data02/data01-lvmthin_pve01
Форматируем первый раздел
mkfs.ext4 /dev/data01/data01-lvm_pve01
Создаем директорию для монтирования первого раздела
mkdir /mnt/pve/data02-lvm_pve01
Монтируем первый раздел
mount /dev/mapper/data01-data01--lvm_pve01 /mnt/pve/data01-lvm_pve01/
Создаем Directory в веб-интерфейсе Proxmox
- Datacenter - Storage - Add - Directory
ID: data01-lvm_pve01
Directory: /mnt/pve/data01-lvm_pve01 // откуда брать диск для Directory
Content: Disk image, Container // также можно выбрать хранение ISO и CT-Templates
Получаем локальное хранилище data01-lvm_pve01 в Datacenter - Storage
Переходим ко второму разделу
В веб-интерфейсе Proxmox подключаем Storage типа LVM-Thin
- Datacenter - Storage - Add - LVM-Thin
ID: data01-lvmthin_pve01
VG: data01
Thin pool: data01-lvmthin_pve01
Получаем 2 хранилища
Здесь храним iso и ВМ с файловыми дисками
df -h
... /dev/mapper/data02-data01--lvm_pve01 137G 61M 130G 1% /mnt/pve/data01-lvmthin_pve01 ...
Здесь храним ВМ c RAW дисками в виде разделов LVM-Thin
lvs
... data01-lvmthin_pve01 data01 twi-a-tz-- <325.86g 0.00 10.42 ...
reboot
Подключаем физический шифрованный диск,
Монтируем первый раздел в директорию, второй раздел монтировать не надо, он подтянется сам в веб-интерфейсе
cryptsetup luksOpen /dev/sdb data01
mount /dev/mapper/data01-data01--lvmthin_pve01 /mnt/pve/data01-lvmthin_pve01/
Вариант 4. ZFS
cryptsetup luksFormat /dev/sdc
cryptsetup luksOpen /dev/sdc data02
zpool create -m /mnt/data02 data02 /dev/mapper/data02
blkid
... /dev/sdc: UUID="afeb41b5-a8ad-463d-9718-86e858be7e6a" TYPE="crypto_LUKS" ...
nano /etc/crypttab
... data02 UUID=afeb41b5-a8ad-463d-9718-86e858be7e6a none luks,discard
reboot
Во время загрузки вводим пароль шифрования для data02
Проверяем
lsblk