[[ Шифрование корневого раздела на Ubuntu 11.04 (flash ключ) ]]

Ubuntu

Шифрование корневого раздела на Ubuntu 11.04 (flash ключ)

Модуль dm-crypt включен в ядро >=2.6.4

Статья рассматривает перенос Ubuntu на новый диск с зашифрованным корнем.

Дано:

  • /dev/sda - текущей диск на котором установлена Ubuntu.
  • /dev/sdb - новый чистый диск, который только что воткнули.
  • Флешка (FAT32), на которой будет храниться электронный ключ.

Так же к ознакомлению : Шифрование разделов dm-crypt Ubuntu 8.04

Подготовка

Флешка

Вставляем флешку и посмотрим UUID (далее пригодиться)

lexa@ubuntu-11-04:~$ sudo blkid 
/dev/sdс1: LABEL="KINGSTON" UUID="3433-3231" TYPE="vfat" 

Создание ключа my_ubuntu.key

sudo mkdir /media/KINGSTON/dm-keys
sudo dd if=/dev/random of=/media/KINGSTON/dm-keys/my_ubuntu.key bs=1 count=256

Сейчас флешка примонтирована в /media/KINGSTON/

Диск

Разобьем диск следующим образом:

Имя    Флаги        Тип раздела  Тип ФС    [Метка]  Размер (МБ)
----------------------------------------------------------------
sdb1   Загрузочный  Основной     Linux              509,97      # Загрузочный ext2
sdb2                Основной     Linux              3997,49     # Зашифрованный SWAP
sdb3                Основной     Linux              100002,96   # Зашифрованный корень
sdb4                Основной     Linux              395597,46   # Не зашифрованный раздел для файл помойки

Утилиты и модули

Понадобятся cryptsetup

sudo apt-get install cryptsetup

Модуль dm_crypt

sudo modprobe dm_crypt

Форматирование

Создание шифрованного раздела ROOT

sudo cryptsetup luksFormat /dev/sdb3 /media/KINGSTON/dm-keys/my_ubuntu.key

Для тех кто не силен в английстом

A you sure? (Type uppercase yes):

правильный ответ большими буквами: YES

Флшека может потеряться, самовозгореться, дематерелизоваться и т.п.
Можно подстраховаться и помимо ключа установить так же запасной пароль в ~20-30 символов (цивры, буквы маленькие и большие но все латинские), что снизит надежность по сравнению с 256 битным ключом.

sudo cryptsetup luksAddKey /dev/sdb3 --key-file=/media/KINGSTON/dm-keys/my_ubuntu.key

Подключение

sudo cryptsetup luksOpen /dev/sdb3 root --key-file=/media/KINGSTON/dm-keys/my_ubuntu.key

Форматирование

sudo mkfs.ext2 /dev/sdb1
sudo mkfs.ext4 -j /dev/mapper/root

Перенос системы

Монтирование

sudo mkdir /tmp/root
sudo mount /dev/mapper/root /tmp/root/
sudo mkdir /tmp/root/boot
sudo mount /dev/sdb1 /tmp/root/boot/

Копирование

Скопировать корень системы на новый диск

sudo rsync -AaHSxv / /tmp/root/

Команда rsync скопирует данные с сохранением всех прав.
Копирование с ключом x, это значит, содержимое каталогов примантированных в текущей момент к корню не будет скопировано в корень новой системы.
Будьте внимательны если /boot, /usr, /home и т.п. каталоги у вас примантированны с других разделов.

Папка /tmp/root/dev/ сейчас пуста, создать устройства

sudo mknod /tmp/root/dev/console -m 0600 c 5 1
sudo mknod /tmp/root/dev/null -m 0666 c 1 5



FSTAB

<note warning > Выполнить переход в окружение новой системы

sudo mount -t proc none /tmp/root/proc/
sudo mount -o bind /dev/ /tmp/root/dev/
sudo mount -o bind /sys/ /tmp/root/sys/
sudo chroot /tmp/root/ /bin/bash

</WRAP>

Посмотрим UUID

root@ubuntu-11-04:/# sudo blkid 
/dev/sda1: UUID="527bc30d-0b20-44cd-8f4c-e12a6fbecb4d" TYPE="ext4" 
/dev/sda5: UUID="eb993171-e029-468a-9ae7-eddec8c75fa3" TYPE="swap" 
/dev/sdb1: UUID="179dde80-2397-49ab-afd1-a156e2d8d3c2" TYPE="ext2" 
/dev/sdb2: UUID="14ed580c-4c2b-40af-85a7-3b2f205779a7" TYPE="crypto_LUKS" 
/dev/sdb3: UUID="33c0f114-23c3-43ad-832e-3170d4d43c47" TYPE="crypto_LUKS" 
/dev/mapper/root: UUID="c4e1b954-e7e1-4bc0-bd17-22e594592151" TYPE="ext4" 
/dev/mapper/swap: UUID="ce62d5b5-77f1-416d-ab5a-2e4e9b3aa1c6" TYPE="swap

Внесем изменения

/etc/fstab

...

# / was on /dev/mapper/root
UUID=c4e1b954-e7e1-4bc0-bd17-22e594592151 /      ext4    errors=remount-ro  0 1
# /boot was on /dev/sdb1
UUID=179dde80-2397-49ab-afd1-a156e2d8d3c2 /boot  ext2    noauto,noatime     1 2
# swap was on /dev/mapper/swap
/dev/mapper/swap none   swap    sw                 0 0

/etc/crypttab

swap UUID=14ed580c-4c2b-40af-85a7-3b2f205779a7 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256,hash=sha256


INITRAMFS

По прежнему находимся в окружении новой системы

Добавить модули

/etc/initramfs-tools/modules

dm_mod
dm_crypt
cryptoloop
sha256
sha512
aes
cbc

Создать

/etc/initramfs-tools/conf.d/cryptroot

target=root,source=UUID=33c0f114-23c3-43ad-832e-3170d4d43c47,key=flash-key,rootdev

«flash-key» специальное зарезервированное имя для скрипта

/etc/default/cryptdisks

CRYPTDISKS_ENABLE=Yes
CRYPTDISKS_MOUNT=""
CRYPTDISKS_CHECK=blkid
CRYPTDISKS_PRECHECK=

Дальше необходимо отредактировать скрипт /usr/share/initramfs-tools/scripts/local-top/cryptroot

Изменения в формате diff

Или скачать и заменить

wget http://wiki.enchtex.info/_media/howto/ubuntu/cryptroot.txt
mv cryptroot.txt /usr/share/initramfs-tools/scripts/local-top/cryptroot
chmod +x /usr/share/initramfs-tools/scripts/local-top/cryptroot

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

Обновление

sudo update-initramfs -u



GRUB

По прежнему находимся в окружении новой системы

Установка загрузчика на sdb

sudo cp /proc/mounts /etc/mtab
sudo grub-install  /dev/sdb

Обновление

sudo update-grub

Проверим UUID

/boot/grub/grub.cfg

...

### BEGIN /etc/grub.d/10_linux ###

...

menuentry 'Ubuntu, с Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        set gfxpayload=$linux_gfx_mode
        insmod part_msdos
        insmod ext2
        set root='(/dev/sdb,msdos1)'
        search --no-floppy --fs-uuid --set=root 179dde80-2397-49ab-afd1-a156e2d8d3c2
        linux   /vmlinuz-2.6.38-11-generic root=/dev/mapper/root ro   quiet splash vt.handoff=7
        initrd  /initrd.img-2.6.38-11-generic
}


Завершение

Выход из виртуального окружения

exit

Размонтирование

cd /
sudo umount /tmp/root/dev/
sudo umount /tmp/root/sys/
sudo umount /tmp/root/proc/
sudo umount /tmp/root/boot/
sudo umount /tmp/root/

Перезагрузка

sudo reboot

Не забыть в BIOS выбрать загрузку с диска sdb.

SWAP не успевает мгновенно подключиться поэтому и возникает сообщение /dev/mapper/swap не найден, на это можно забить.



Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
105 -4 =
 
howto/ubuntu/ubuntu_dmcrypt_root_flash.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki