Skip to content

LUKS DISK Encryption

Matvey Gladkikh edited this page Feb 3, 2022 · 1 revision

Первичная настройка шифрования нового сервера:

Базовая система = 100Gb - не зашифрована, в ней ничего не будет.

Мы полностью шифруем следующие диски:

быстрые nvmе отдаем под /var/lib/lxc (здесь будут контейнеры LXC и Docker внутри этих контейнеров) большие sata отдаем под /backup (здесь будут локальные бекапы)

Если вдруг сервер перезагружен физически - надо зайти по ssh и выполнить команду luks-mount-and-start и ввести правильный пароль от дисков.

Как мы сетапим зашифрованные разделы?

#(создаем раздел /dev/nvme0n1p4 все свободное место type=LinuxRAID)
cfdisk /dev/nvme0n1 

#(создаем раздел /dev/nvme1n1p4 все свободное место type=LinuxRAID)
cfdisk /dev/nvme1n1

#(создаем раздел /dev/sda1 все свободное место type=LinuxRAID)
cfdisk /dev/sda

#(создаем раздел /dev/sdb1 все свободное место type=LinuxRAID)
cfdisk /dev/sdb 

Создаем рейд массив:

mdadm --create /dev/md3 --chunk=64 --level=raid1 --raid-devices=2 /dev/nvme0n1p4 /dev/nvme1n1p4
mdadm --create /dev/md4 --chunk=64 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1

Обязательно создаем конфиг рейда - иначе после ребута массивы будут с номерами /dev/md126 /dev/md127

echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
update-initramfs -k all -u

Шифруем диски

cryptsetup luksFormat /dev/md3
cryptsetup luksOpen /dev/md3 CRYPTEDNVME
pvcreate /dev/mapper/CRYPTEDNVME
vgcreate NVME /dev/mapper/CRYPTEDNVME


cryptsetup luksFormat /dev/md4
cryptsetup luksOpen /dev/md4 CRYPTEDHDD
pvcreate /dev/mapper/CRYPTEDHDD
vgcreate HDD /dev/mapper/CRYPTEDHDD

Создаем директории

mkdir -p /backup
mkdir -p /var/lib/lxc

Добавляем скрипт который будет расшифровывать и запускать сервисы:

cat > /usr/local/bin/luks-mount-and-start <EOF
#!/bin/bash
cryptsetup luksOpen /dev/md3 lxc
mount /dev/mapper/lxc /var/lib/lxc

cryptsetup luksOpen /dev/md4 backup
mount /dev/mapper/backup /backup

/usr/sbin/service lxc restart
EOF

chmod +x /usr/local/bin/luks-mount-and-start

Описываем все это дело в /etc/info

cat >> /etc/info <<EOF

	luks-mount-and-start (раскриптовать и запустить сервисы)

EOF
Clone this wiki locally