0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: linux, grub, luks, debian 8.10, ubuntu 16.04, cryptsetup, aes-cbc, aes-lrw, aes-xts, системное администрирование, uuid, перенос системы на зашифрованный раздел luks, шифрование дисков в linux</p>
1
<p>Теги: linux, grub, luks, debian 8.10, ubuntu 16.04, cryptsetup, aes-cbc, aes-lrw, aes-xts, системное администрирование, uuid, перенос системы на зашифрованный раздел luks, шифрование дисков в linux</p>
2
<p>Был солнечный тёплый день, когда мне поручили зашифровать все сервера. А это более 50 разных машин: на Centos, debian и ubuntu. Яростно погуглив, порыскав по форумам, я не нашёл однозначного решения. Помогли инструкции по переносу машин с диска на диск и инструкции запуска системы с флешки. Всё получилось, и вот уже несколько десятков машин крутятся с такой схемой.</p>
2
<p>Был солнечный тёплый день, когда мне поручили зашифровать все сервера. А это более 50 разных машин: на Centos, debian и ubuntu. Яростно погуглив, порыскав по форумам, я не нашёл однозначного решения. Помогли инструкции по переносу машин с диска на диск и инструкции запуска системы с флешки. Всё получилось, и вот уже несколько десятков машин крутятся с такой схемой.</p>
3
<h2>Итак, то же нужно сделать?</h2>
3
<h2>Итак, то же нужно сделать?</h2>
4
<p>Представляю вашему вниманию самописную инструкцию по переносу на зашифрованный раздел c использованием ESX 6.0. Её можно использовать и для переноса системы, если не брать в расчёт шифрование.</p>
4
<p>Представляю вашему вниманию самописную инструкцию по переносу на зашифрованный раздел c использованием ESX 6.0. Её можно использовать и для переноса системы, если не брать в расчёт шифрование.</p>
5
<h3>1. Подготовка к переносу</h3>
5
<h3>1. Подготовка к переносу</h3>
6
<p>Сначала подключаем диск нужного размера:</p>
6
<p>Сначала подключаем диск нужного размера:</p>
7
<h4>1.1 Разбиваем диск на 2 и более разделов</h4>
7
<h4>1.1 Разбиваем диск на 2 и более разделов</h4>
8
<p>/boot должен быть отдельно. Он, как вы догадались, не будет зашифрован. Диск не обязательно должен совпадать с исходным размером:</p>
8
<p>/boot должен быть отдельно. Он, как вы догадались, не будет зашифрован. Диск не обязательно должен совпадать с исходным размером:</p>
9
<p>Форматируем /boot mkfs.ext4 /dev/sda1</p>
9
<p>Форматируем /boot mkfs.ext4 /dev/sda1</p>
10
<p>Создаём зашифрованный раздел cryptsetup luksFormat /dev/sdb2</p>
10
<p>Создаём зашифрованный раздел cryptsetup luksFormat /dev/sdb2</p>
11
<p><strong>Важно: YES большими буквами!</strong>В принципе указание об этом будет, но на<em>басурманском</em>языке.</p>
11
<p><strong>Важно: YES большими буквами!</strong>В принципе указание об этом будет, но на<em>басурманском</em>языке.</p>
12
<h4>1.2 Инициализируем раздел</h4>
12
<h4>1.2 Инициализируем раздел</h4>
13
<p>cryptsetup luksOpen /dev/sdb sdb2_crypt и не забываем дописывать аргумент или удивляемся, что сделано не так.</p>
13
<p>cryptsetup luksOpen /dev/sdb sdb2_crypt и не забываем дописывать аргумент или удивляемся, что сделано не так.</p>
14
<h4>1.3 Далее я создал LVM на него и положил систему</h4>
14
<h4>1.3 Далее я создал LVM на него и положил систему</h4>
15
<p>Тут всё просто:</p>
15
<p>Тут всё просто:</p>
16
pvcreate /dev/mapper/sda2_crypt<p>Указываем зашифрованный диск:</p>
16
pvcreate /dev/mapper/sda2_crypt<p>Указываем зашифрованный диск:</p>
17
vgcreate crypto /dev/mapper/sda2_crypt<h4>1.4 Создаём раздел под корневой раздел</h4>
17
vgcreate crypto /dev/mapper/sda2_crypt<h4>1.4 Создаём раздел под корневой раздел</h4>
18
<p>lvcreate -l 100FREE% -n название раздела, название группы или как на картинке немного по-другому:</p>
18
<p>lvcreate -l 100FREE% -n название раздела, название группы или как на картинке немного по-другому:</p>
19
<h4>1.5 Создаём раздел для файла подкачки</h4>
19
<h4>1.5 Создаём раздел для файла подкачки</h4>
20
<p>lvcreate -L 2G -n swap название группы</p>
20
<p>lvcreate -L 2G -n swap название группы</p>
21
<p>Проверяем:</p>
21
<p>Проверяем:</p>
22
<p>lvscan</p>
22
<p>lvscan</p>
23
<h4>1.6 Форматируем LVM</h4>
23
<h4>1.6 Форматируем LVM</h4>
24
mkfs.ext4 /dev/crypto/vol1 mkfs.ext4 /dev/crypto/SWAP<p>Если нет<strong>swap</strong>, создаём и подключаем. Размер выбираем так, что если памяти выделено 2 Гб то<strong>swap</strong>должен быть от 2 до 4 Гб.</p>
24
mkfs.ext4 /dev/crypto/vol1 mkfs.ext4 /dev/crypto/SWAP<p>Если нет<strong>swap</strong>, создаём и подключаем. Размер выбираем так, что если памяти выделено 2 Гб то<strong>swap</strong>должен быть от 2 до 4 Гб.</p>
25
<h4>1.7 Создаём swap</h4>
25
<h4>1.7 Создаём swap</h4>
26
fallocate -l 4G /swapdir/swapfile<p>Проверяем , что он создан:</p>
26
fallocate -l 4G /swapdir/swapfile<p>Проверяем , что он создан:</p>
27
<h4>1.8 Настраиваем права</h4>
27
<h4>1.8 Настраиваем права</h4>
28
chmod 600 /swapdir/swapfile<p>Делаем из файла<strong>swap</strong>:</p>
28
chmod 600 /swapdir/swapfile<p>Делаем из файла<strong>swap</strong>:</p>
29
<h4>1.9 Подключаем в систему</h4>
29
<h4>1.9 Подключаем в систему</h4>
30
<p>Проверяем:</p>
30
<p>Проверяем:</p>
31
<p>Теперь самое интересное - всё то, что нажито непосильным трудом!</p>
31
<p>Теперь самое интересное - всё то, что нажито непосильным трудом!</p>
32
<h2>2. Приступаем к переносу!</h2>
32
<h2>2. Приступаем к переносу!</h2>
33
<h4>2.1 Создаём папки</h4>
33
<h4>2.1 Создаём папки</h4>
34
mkdir /mnt/new mkdir /mnt/old mkdir /mnt/boot<h4>2.2 Монтируем</h4>
34
mkdir /mnt/new mkdir /mnt/old mkdir /mnt/boot<h4>2.2 Монтируем</h4>
35
<p>Текущий корневой раздел монтируем в папку<strong>old</strong>.</p>
35
<p>Текущий корневой раздел монтируем в папку<strong>old</strong>.</p>
36
<h4>2.3 Новый LVM раздел</h4>
36
<h4>2.3 Новый LVM раздел</h4>
37
mount /dev/crypto/vol1/ /mnt/new/<h4>2.4 Раздел загрузки</h4>
37
mount /dev/crypto/vol1/ /mnt/new/<h4>2.4 Раздел загрузки</h4>
38
mount /dev/sdb1 /mnt/boot<h4>2.5 Копируем корневой раздел</h4>
38
mount /dev/sdb1 /mnt/boot<h4>2.5 Копируем корневой раздел</h4>
39
rsync -av /mnt/old/ /mnt/new/<h4>2.6 Копируем загрузку</h4>
39
rsync -av /mnt/old/ /mnt/new/<h4>2.6 Копируем загрузку</h4>
40
rsync -av /mnt/old/boot/ /mnt/boot/<h2>3. Перенос системы</h2>
40
rsync -av /mnt/old/boot/ /mnt/boot/<h2>3. Перенос системы</h2>
41
<h4>3.1 Монтируем систему</h4>
41
<h4>3.1 Монтируем систему</h4>
42
Mount -bind /sys /mnt/new/sys Mount -bind /dev /mnt/new/dev Mount -bind /proc /mnt/new/proc<h4>3.2 Меняем корневой раздел</h4>
42
Mount -bind /sys /mnt/new/sys Mount -bind /dev /mnt/new/dev Mount -bind /proc /mnt/new/proc<h4>3.2 Меняем корневой раздел</h4>
43
<p>Посмотреть все<strong>UUID</strong>. Ваши будут отличаться от представленных:</p>
43
<p>Посмотреть все<strong>UUID</strong>. Ваши будут отличаться от представленных:</p>
44
<h4>3.3 Монтирование дисков в новой системе</h4>
44
<h4>3.3 Монтирование дисков в новой системе</h4>
45
vim /etc/fstab /dev/mapper/crypto-vol1 / ext4 noatime,errors=remount-ro 0 1 UUID="3efdf7e2-4bff-4fd6-b95a-60bb60ece16c" /boot ext4 default 0 1 UUID=”09f94ec7-cb53-4bdf-9c20-d10b9b358719” /swap swap sw 0 0<h4>3.4 Монтируем Luks, чтобы загружался при загрузке</h4>
45
vim /etc/fstab /dev/mapper/crypto-vol1 / ext4 noatime,errors=remount-ro 0 1 UUID="3efdf7e2-4bff-4fd6-b95a-60bb60ece16c" /boot ext4 default 0 1 UUID=”09f94ec7-cb53-4bdf-9c20-d10b9b358719” /swap swap sw 0 0<h4>3.4 Монтируем Luks, чтобы загружался при загрузке</h4>
46
<h4>3.5 UUID крипто диска прописываем:</h4>
46
<h4>3.5 UUID крипто диска прописываем:</h4>
47
sda2_crypt UUID=0a6accdb-9968-403a-b8bd-f9be6d3aaaec none luks<p><strong>!!!Рекомендую сделать снапшот или бекап перед этим этапом!!!</strong></p>
47
sda2_crypt UUID=0a6accdb-9968-403a-b8bd-f9be6d3aaaec none luks<p><strong>!!!Рекомендую сделать снапшот или бекап перед этим этапом!!!</strong></p>
48
<h2>4 Загрузка</h2>
48
<h2>4 Загрузка</h2>
49
<h4>4.1 Редактируем GRUB</h4>
49
<h4>4.1 Редактируем GRUB</h4>
50
Vim /etc/default/grub GRUB_ENABLE_CRYPTODISK=y<h4>4.2 Устанавливаем GRUB на диск, с которого будет грузится:</h4>
50
Vim /etc/default/grub GRUB_ENABLE_CRYPTODISK=y<h4>4.2 Устанавливаем GRUB на диск, с которого будет грузится:</h4>
51
<p>Могут быть сообщения об ошибках<strong>lvm</strong>, игнорируем их.</p>
51
<p>Могут быть сообщения об ошибках<strong>lvm</strong>, игнорируем их.</p>
52
<h4>4.3 Обновляем GRUB</h4>
52
<h4>4.3 Обновляем GRUB</h4>
53
<h4>4.4 Обновляем образ</h4>
53
<h4>4.4 Обновляем образ</h4>
54
update-initramfs -k all -u<h4>4.5 Делаем EXIT</h4>
54
update-initramfs -k all -u<h4>4.5 Делаем EXIT</h4>
55
<p>Из корневого раздела /mnt/new</p>
55
<p>Из корневого раздела /mnt/new</p>
56
<h4>4.6 Отмонтируем</h4>
56
<h4>4.6 Отмонтируем</h4>
57
umount /mnt/new/sys umount /mnt/new/dev umount /mnt/new/proc umount /mnt/new umount /mnt/boot<h4>4.7 Выключаемся</h4>
57
umount /mnt/new/sys umount /mnt/new/dev umount /mnt/new/proc umount /mnt/new umount /mnt/boot<h4>4.7 Выключаемся</h4>
58
<h4>4.8 Меняем диск загрузки, грузимся</h4>
58
<h4>4.8 Меняем диск загрузки, грузимся</h4>
59
<p>После смены дисков, их названия изменятся. Например, были<strong>sdb</strong>- станет<strong>sda</strong>и наоборот.</p>
59
<p>После смены дисков, их названия изменятся. Например, были<strong>sdb</strong>- станет<strong>sda</strong>и наоборот.</p>
60
<p><em>Тестировалось на debian 8 и Ubuntu 16.04 для centos немного другая схема вместо grub-update , grub-mkconfig , а вместо update-initramfs dracut.</em></p>
60
<p><em>Тестировалось на debian 8 и Ubuntu 16.04 для centos немного другая схема вместо grub-update , grub-mkconfig , а вместо update-initramfs dracut.</em></p>
61
<h2>5. Варианты шифрования</h2>
61
<h2>5. Варианты шифрования</h2>
62
CBC:# cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat /dev/sdx LRW:# cryptsetup -y --cipher aes-lrw-benbi --key-size 384 luksFormat /dev/sdx XTS:# cryptsetup -y --cipher aes-xts-plain --key-size 512 luksFormat /dev/sdx<p>Вот и всё! Надеюсь, сильно не наврал! Если что - пишите в комментариях! Полезные ссылки: -<a>Вики о шифровании</a>-<a>Шифрование дисков в Linux</a></p>
62
CBC:# cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat /dev/sdx LRW:# cryptsetup -y --cipher aes-lrw-benbi --key-size 384 luksFormat /dev/sdx XTS:# cryptsetup -y --cipher aes-xts-plain --key-size 512 luksFormat /dev/sdx<p>Вот и всё! Надеюсь, сильно не наврал! Если что - пишите в комментариях! Полезные ссылки: -<a>Вики о шифровании</a>-<a>Шифрование дисков в Linux</a></p>
63
63