• О проекте
  • Контакты
  • Форум
Главное меню
  • На главную
  • Поиск
Разделы
  • SysAdmin
    • Linux
      • Apache
      • Dial-in сервера
      • DNS
      • Gentoo
      • Samba
      • SpamAssassin
      • FTP
      • IPTables
      • LDAP
      • Почтовые системы
      • Программирование под Linux
      • Разное
      • KDE
      • SSH
      • SQL
      • Crypto
    • Microsoft
      • ISA
      • Exchange Server
      • Active Directory
      • Outlook
      • Windows Server
      • Windows XP/Vista/7
    • Citrix
    • Cisco
    • Mikrotik
    • PBX и VoIP
    • Virtual
    • Asterisk
  • Разное интересное
  • tmp
Login Form



  • Забыли пароль?
  • Забыли логин?

PostHeaderIcon Шифрование корневого раздела dm-crypt на Getnoo

Взято: http://wiki.enchtex.info/howto/gentoo/gentoo_dmcrypt_root

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

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

Дано:

  • /dev/sda - текущей диск на котором установлена Gentoo.
  • /dev/sdb - новый чистый диск, который только что воткнули.
  • Ввод пароля будет осуществятся с клавиатуры при включении компьютера.

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

Подготовка

Диск

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

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

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

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

emerge sys-fs/cryptsetup -av

Модуль dm_crypt

modprobe dm_crypt

Если данного модуля у вас нету, то включите его я ядре

Настройки ядра

Device Drivers  --->
  [*] Block devices  --->
  [*] Multiple devices driver support (RAID and LVM)  --->
       Device mapper support
       Crypt target support
-*- Cryptographic API  --->
     SHA224 and SHA256 digest algorithm
     SHA384 and SHA512 digest algorithms

Пересобрать ядро и перезагрузить

reboot

Проверить

modprobe dm_crypt

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

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

cryptsetup luksFormat /dev/sdb3

Подключение

cryptsetup luksOpen /dev/sdb3 root

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

mkfs.ext2 /dev/sdb1
mkswap /dev/sdb2
mkfs.ext3 -j /dev/mapper/root

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

Копирование

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

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

rsync -AaHSxv / /tmp/root/

 

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

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

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

Ядро новой системы

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

 

Переход в окружение новой системы
env-update && source /etc/profile

Настройки ядра будут немного отличаться:

  1. Все модули должны быть включены в само ядро
  2. Для возможности загрузиться, необходим образ initramfs, для этого нам и нужна утилита genkernel.

Установить

emerge sys-kernel/genkernel -av

Настроить

/etc/genkernel.conf

...

SAVE_CONFIG="yes"
LUKS="yes"
DISKLABEL="yes"

 

Что бы genkernel не испортил текущий конфиг, своими настройками по умолчанию, мы укажем ему, что нужно использовать только наш конфиг, но для этого необходимо обязательно сделать копию.

 

cd /usr/src/linux
cp .config .config_my
genkernel --kernel-config=./.config_my --menuconfig all

 

Настройки ядра

General setup  --->
  [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Device Drivers  --->
  Generic Driver Options  --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs 
  [*] Block devices  --->
       Loopback device support
           Cryptoloop Support
       RAM block device support
  [*] Multiple devices driver support (RAID and LVM)  --->
       Device mapper support
       Crypt target support

-*- Cryptographic API  --->
  -*-   CBC support
     SHA224 and SHA256 digest algorithm
     SHA384 and SHA512 digest algorithms
     AES cipher algorithms
  
File systems  --->                                                                                                
   Second extended fs support

После сборки ядра должны появиться файлы

gentoo linux # ls -la /boot/
итого 7319
drwxr-xr-x  4 root root    1024 Сен  7 13:44 .
drwxr-xr-x 21 root root    4096 Сен  7 10:12 ..
-rw-r--r--  1 root root 1676834 Сен  7 16:19 initramfs-genkernel-x86_64-2.6.38-gentoo-r6
-rw-r--r--  1 root root 3656720 Сен  7 16:19 kernel-genkernel-x86_64-2.6.38-gentoo-r6
-rw-r--r--  1 root root 2107782 Сен  7 16:19 System.map-genkernel-x86_64-2.6.38-gentoo-r6

 

Конфиг текущего ядра genkernel сохранит
/etc/kernels/kernel-config-x86_64-2.6.38-gentoo-r6

и будет использовать его по умолчанию, поэтому в дальнейшем достаточно команды

genkernel --menuconfig all

 

GRUB

 

По прежнему находимся в окружении новой системы
Установка
emerge sys-boot/grub -av

Установка загрузчика на sdb (это hd1)

grub
>root (hd1,0)
>setup (hd1)
>quit

Посмотрим UUID

gentoo linux # blkid
/dev/sdb1: UUID="3ba6aaa8-c58b-48d7-a8eb-9a3062bf7514" TYPE="ext2" 
/dev/sdb2: UUID="4bce9506-2067-4642-878a-f13a36077179" TYPE="swap" 
/dev/sdb3: UUID="66482f3a-d8e4-47a0-8385-6b0a1ca9aefb" TYPE="crypto_LUKS"  # crypt_root
/dev/mapper/root: UUID="24222a99-f949-4e6c-9c9e-b1c73f1bf794" TYPE="ext3"  # real_root

Настройка

/boot/grub/menu.lst

title Gentoo Linux 2.6.38-r6
root (hd1,0)
kernel /boot/kernel-genkernel-x86_64-2.6.38-gentoo-r6 crypt_root=UUID="66482f3a-d8e4-47a0-8385-6b0a1ca9aefb" real_root=UUID="24222a99-f949-4e6c-9c9e-b1c73f1bf794" root=/dev/ram0
initrd /boot/initramfs-genkernel-x86_64-2.6.38-gentoo-r6

# Или так
#title Gentoo Linux 2.6.38-r6
#root (hd1,0)
#kernel /boot/kernel-genkernel-x86_64-2.6.38-gentoo-r6 crypt_root=/dev/sdb3 real_root=/dev/mapper/root root=/dev/ram0 udev
#initrd /boot/initramfs-genkernel-x86_64-2.6.38-gentoo-r6

genkernel >=3.4.4

  • Now, you use crypt_root=/dev/blah instead of real_root=luks:/dev/blah.

 

FSTAB

 

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

/etc/fstab

...
# /boot = /dev/sdb1
UUID="3ba6aaa8-c58b-48d7-a8eb-9a3062bf7514" /boot       ext2    noauto,noatime  1 2
# / = /dev/mapper/root
UUID="24222a99-f949-4e6c-9c9e-b1c73f1bf794" /           ext3    noatime         0 1
# swap = /dev/sdb2
UUID="4bce9506-2067-4642-878a-f13a36077179" none        swap    sw              0 0

Завершение

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

exit

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

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

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

reboot

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

Ничего не загрузилось с первого раза - это нормально. Посмотрите внимательно сообщения, логи, что-то где-то пропустили.
 

Copyright © 2010 MiaNet.RU.
All Rights Reserved.

Designed by tim.