The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Миграция на файловую систему LVM с поддержкой шифрования в Debian linux
Администрирование Debian: How To по миграции на файловую систему LVM с поддержкой шифрования

Целью данного документа является описание пути перехода на полностью шифрованную файловую 
систему LVM (корневая файловая система и пользовательские данные, кроме загрузочного раздела). 
Миграция возможна как с обычной LVM, так и с ext3. Все, что вам понадобится -
наличие внешнего хранилища.

Отдельно стоит отметить, что данная операция должна проводиться человеком, имеющим некоторый опыт.

ЧАСТЬ 1. Установка необходимого ПО и сохранение текущей системы.

Есть два способа реализации Full Encrypted LVM (далее - FELVM).
a) Debian way (TM), где LVM размещаетя на зашифрованном виртуальном устройстве (cryptsetup).
b) Другой путь, когда LVM создается на физическом устройстве, а затем шифруются логические разделы.

Конечно, я выбираю debian way, хотя никаких определенных причин для этого нет.

В качестве исходных данных у меня имеется /dev/hda1 типа Windows NTFS и несколько других разделов, 
тип которых не важен, так как их скоро не останется.

Перед тем, как мы начнем, рекомендую сделать полную копию ваших данных на
внешний носитель с помощью CloneZilla,
чтобы потом не иметь бледный вид.

Для начала установим  'cryptsetup'. Также ядро должно ключать образ initrd для
загрузки. Если это не так,
установите пакет initramfs-tools. Затем создайте следующий файл в каталоге /etc/initramfs-tools/conf.d:

   filename: cryptroot
   contents:
   target=lukspace,source=/dev/hda3,key=none,lvm=vg-root

Затем выполните команду:

   # update-initramfs -u

Она создаст образ initrd, который будет знать, где находятся шифрованные разделы после создания.

Создадим, и это обязательно, tar архив вашей системы на внешний носитель:

   # tar cSjf /my/external/storage/sysbackup.tar.bz2 /bin/ /boot/ \
    /etc/ /home/ /lib/ /opt/ /root/ /sbin/ /selinux/ /srv/ /usr/ /var/

Если вы хотите повысить скорость выполнения данной операции, уберите флаг 'j' и расширение bz2.

Это позволит сохранить все права доступа, файлы, владельцев файлов и т.д. 
Как вы можете заметить, я пропустил каталоги /dev/, /media, /mnt, /proc, /sys, /tmp, 
так как они будут вновь созданы на новой системе (кроме /media).

Я подразумеваю, что никаких действий в системе после сохранения не производится - 
не открываются консоли и сессии X window, кроме корневой.

Настало время получить данные с внешних хранилищ. Будем считать, что оно примонтировано 
в /media/abyss. Конечно, /media так же содержит cdrom и прочие полезные вещи.

# tar cSjf /my/external/storage/databackup.tar.bz2 /media/cdrom /media/whatever /media/... 
Все ЗА ИСКЛЮЧЕНИЕМ точки монтирования внешнего хранилища!

Теперь мы защищены от любых ошибок при конфигурировании.



ЧАСТЬ 2. Переформатирование диска и создание структуры FELVM.

Помните: если дела приняли дурной оборот - вы всегда можете восстановиться с помощью clonezilla.

Я использую clonezilla CD для большинства работ, где мне нужен live CD.

Загружаем Clonezilla, настраиваем сеть. Затем в консоли (sudo su) выполняем команды:

   # aptitude update && aptitude dist-upgrade

Возможно перед этим вам понадобится выполнить что-то подобное:

   # ifconfig eth0 up
   # dhclient eth0

После того, как live CD обновит ПО нужно установить следущее:

   # aptitude install cryptsetup joe

Joe - мой любимый редактор, поэтому далее мы будем считать, что и ваш тоже.

Очищаем диск!

   # cfdisk /dev/hda

и удаляем все разделы за исключением /dev/hda1 (NTFS).

Создаем раздел, с которого будет осуществляться загрузка: /dev/hda2 размером 200 MB.

Затем создаем другой раздел, занимающий все свободное пространство(/dev/hda3). 
Его в последствии будет занимать rootfs и данные.

Записываем таблицу разделов на диск и выходим.

Мы все поломали, но не стоит волноваться, все будет восстановлено с tar архивов.

Окончательно удаляем наши данные, заполняя все случайными последовательностями, 
заодно проверяя наличие badblock:

   # badblocks -s -w -t random -v /dev/hda2
   # badblocks -s -w -t random -v /dev/hda3

На выполнение этих команд требуется время, так что будьте терпеливы.

Создаем файловую систему на загрузочном разделе:

   # mkfs.ext3 /dev/hda2

Используя cryptsetup создадим большой раздел как устройство dm-crypt. Это очень просто:

   # cryptsetup -y -s 256 -c aes-cbc-essiv:sha256 luksFormat /dev/hda3

Я не буду приводить объяснение всех опций, если хотите - посмотрите сами. 
Обязательно выберите хорошее ключевое слово, которое вы сможете запомнить. 
Позже вы сможете сменить его или сделать несколько ключевых слов.

Подошло время использовать инициализированное пространство:

   # cryptsetup luksOpen /dev/hda3 lukspace

Эта команда спросит у вас ранее введенное ключевое слово и сделает доступным /dev/mapper/lukspace. 
Это может быть расценено как устройство, готовое принять любой вид данных. 
Вы можете форматировать его в ext3 или построить LVM, чем мы сейчас и займемся.

Создаем LVM:

   # pvcreate /dev/mapper/lukspace
   # vgcreate vg /dev/mapper/lukspace
   # lvcreate -L10G -nroot vg
   # lvcreate -l 100%FREE -nmyspace vg

Так мы получим логический том LVM /dev/vg/root для корневой файловой системы и
/dev/vg/myspace для наших данных.
Это было несложно, не так ли?

Дальше еще проще:

   # mkfs.ext3 /dev/vg/root
   # mkfs.ext3 /dev/vg/myspace


ЧАСТЬ 3. Восстановление системных файлов и загрузка новой системы.

После того, как вы создадите место для корневой файловой системы, настанет 
пора разархивировать туда наши данные.
 
Сперва создадим точку монтирования, которую назовем /media/rootfs и затем:

   # mount /dev/vg/root /media/rootfs

а теперь:

   # cd /media/rootfs
   # tar xSjf /external_storage/sysbackup.tar.bz2

После чего ждем завершения процесса.

Создаем каталоги, которые не были сархивированы:

   # mkdir proc sys media dev tmp mnt
   # chmod 1777 tmp

Теперь создаем точку монтирования bootfs и монтируем к ней будущий загрузочный раздел:

   # mkdir bootfs
   # mount /dev/hda2 bootfs

Затем перемещаем загрузочные файлы из rootfs/boot в bootfs. Теперь /dev/hda2 
содержит все необходимые для загрузки файлы. И последнее - изменим файл fstab  в rootfs/etc 
таким образом, чтобы указать новое устройство /dev/vg/root.

Перезагружаемся. После загрузки grub нажимаем 'e' для редактирования опций ядра и 
указания правильного root=..., чтобы машина могла загрузиться.

Хочется надеяться, что LUKS спросит у вас кодовое слово, и все пойдет хорошо!

После того, как вы наиграетесь с вашей зашифрованной системой, отредактируйте /boot/grub/menu.lst 
для указания корректного устройства root=... и запустите update-grub.

Giorgos Pallas
 
01.08.2008 , Автор: Сгибнев Михаил , Источник: http://www.debian-administration.or...
Ключи: linux, debian, fs, lvm
Раздел:    Корень / Администратору / Система / Диски и файлы / Файловые системы

Обсуждение [ RSS ]
  • 1.1, Аноним (1), 13:10, 01/08/2008 [ответить]  
  • +/
    Не лишним заметить,
    что при установке новой системы
    всё вышеописанное можно сделать изкаробки
    с помощью полностью руссифицированного инсталлятора
    DebianInstaller.
     
     
  • 2.5, Аноним (-), 14:04, 07/08/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, я пытался на срезе Lenny. Так я еще не выражался в отношении инсталаторов.
     

  • 1.2, r (?), 01:00, 02/08/2008 [ответить]  
  • +/
    LVM -- это НЕ файловая система.
     
  • 1.3, Аноним (3), 01:03, 03/08/2008 [ответить]  
  • +/
    файловая система LVM?
     
  • 1.6, Anonymous (?), 14:47, 11/08/2008 [ответить]  
  • +/
    >корневая файловая система и пользовательские данные, кроме загрузочного раздела).

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

     
     
  • 2.7, fenume (ok), 21:54, 15/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что сначала должно чтото загрузится чтобы расшифровать зашифрованые разделы)
    В способе описаном в статье сначала загружается миниобраз в initramfs , подключает зашифрованые разделы и только этого передается управление обычному ядру и продолжается нормальная загрузка
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру