Сделать стартовой / Добавить в избранное / Написать нам
МЕНЮ
ОС Windows
ОС Linux
    » Дистрибутивы
    » Безопасность
    » Сети
    » Аппаратное обеспечение
    » Программирование
    » Система, ядро, утилиты
    » Программное обеспечение
    » Прочее
BIOS
Сети
Безопасность
Вебмастеру
Программисту
Железо

СВЕЖИЙ СОФТ
ЕГЭ ГИА 2011 репетитор и задачник
Гость 11 Портье
Мини-Сайт v.3.6
Мини-Каталог 1.0
Мини-Кадры 1.0
Мини-Смета v.1.4
Мини-Автопредприятие v.1.13
Мини-Зарплата v.3.3
Жадюга 1.9
LLLLLL
ОС Linux   Система, ядро, утилиты

ОС Linux -> Система, ядро, утилиты ->Шифрование дисковых разделов в Linux

Шифрование дисковых разделов в Linux

дата добавления: 26.06.2005, просмотров: 3299

Подготовка

  1. Рабочая система с отдельным разделом /boot. Если система не работает на обычной файловой системе, то шифрование ничего не исправит.
  2. Исходные коды loop-AES, скачать можно здесь http://sourceforge.net/projects/loop-aes/ Прочитайте loop-AES README, чтобы знать, что делать, если что-нибудь пойдет неправильно.
  3. Исходные коды util-linux-2.11y. Получить можно на любом сайте, распространяющем ядро Linux, например ftp://ftp.kernel.org/pub/utils/util-linux.
  4. CD с Knoppix или Knoppix lite Получить можно на http://www.knoppix.net Необходимо убедиться, что вы можете загрузится с этого диска. В knoppix уже есть поддержка loop-AES.
  5. !!!СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ ВАШИХ ДАННЫХ!!!

Установка

  1. Пересоберите ядро с установками:
       CONFIG_MODULES=y
       CONFIG_BLK_DEV_LOOP=n ([y] or [m] НЕ РАБОТАЕТ),
       CONFIG_BLK_DEV_RAM=y,
       CONFIG_BLK_DEV_RAM_SIZE=4096,
       CONFIG_BLK_DEV_INITRD=y,
       CONFIG_MINIX_FS=Y (это потому, что ramdisk is minix),
       CONFIG_DEVFS=Y (dev file system support (EXPERIMENTAL)=Y)
       CONFIG_PROC_FS=Y
       (остальное - по желанию)
    

    Файловая система должна быть включена в ядре как [Y] (а не [M],-прим.ред.), потому что ядро не сможет получить доступа к модулям с зашифрованной файловой системы до тех пор, пока не будет знать ключ расшифровки. Остальное можно оставить в виде модулей (по желанию)

  2. Перейдите в каталог /usr/src и распакуйте loop-AES.хххх.tar (loop-AES-v1.7a.tar.bz2 в нашем случае) Перейдите в новообразованный каталог и запустите make. В результате будут собраны драйвера к loop device, которые знают как шифровать/расшифровать файловую систему
  3. Скопируйте util-linux-2.11y.tar (следите за совпадением diff от loop-AES и util-linux) в каталог loop-AES и распакуйте, затем переместитесь во вновь созданный каталог (cd util-linux-2.11y) ПОДМОНТИРУЙТЕ ВАШУ ЗАГРУЗОЧНУЮ ПАРТИЦИЮ К /BOOT теперь несколько команд
    patch -p1 <../util-linux-2.11y.diff
    #~~~~~~~~~~~~~~Пример~~~~~~~~~~~~~~~~~~~~~~~~~~
    #patch -p1 <../util-linux-2.11y.diff
    #patching file mount/Makefile
    #patching file mount/aes.c
    #patching file mount/aes.h
    #patching file mount/lomount.c
    #patching file mount/losetup.8
    #patching file mount/loumount.c
    #patching file mount/mount.8
    #patching file mount/mount.c
    #patching file mount/rmd160.c
    #patching file mount/rmd160.h
    #patching file mount/sha512.c
    #patching file mount/sha512.h
    #patching file mount/swapon.8
    #patching file mount/swapon.c
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    export CFLAGS=-O2
    export LDFLAGS='-static -s'
    ./configure
    make SUBDIRS="lib mount"
    cd mount
    install -m 4755 -o root mount umount /bin
    install -m 755 losetup swapon /sbin
    rm -f /sbin/swapoff && ( cd /sbin && ln -s swapon swapoff )
    rm -f /usr/share/man/man8/{mount,umount,losetup,swapon,swapoff}.8.gz
    install -m 644 mount.8 umount.8 losetup.8 /usr/share/man/man8
    install -m 644 swapon.8 swapoff.8 /usr/share/man/man8
    rm -f /usr/share/man/man5/fstab.5.gz
    install -m 644 fstab.5 /usr/share/man/man5
    cp -p /lib/modules/`uname -r`/block/loop.o /boot/loop-`uname -r`.o
    
  4. В каталоге loop-AES отредактируйте переменные в файле build-initrd.sh
    BOOTDEV
    BOOTTYPE
    CRYPTROOT
    ROOTYPE
    CIPHERTYPE
    USEDEVFS=1 (включена поддержка devfs в ядре )
    USEPIVOT=1
    

    с необходимыми значениями, (остальное оставьте по умолчанию)

       BOOTDEV=/dev/ide/host2/bus0/target0/lun0/part1 (это будет /dev/hde1)
       CRYPTROOT=/dev/ide/host0/bus0/target0/lun0/part10 (это будет /dev/hda10)
    

    (посмотреть можно командой "ls -aR /dev/ide/"), затем выполните

          sh build-initrd
    

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

    #~~~~~~~~Пример~~~~~~~~~~~~~~~~~
    #build-initrd.sh
    #15+0 входных записей
    #15+0 выходных записей
    #32 inodes
    #15 blocks
    #Firstdatazone=5 (5)
    #Zonesize=1024
    #Maxsize=268966912
    #
    #Файловая система  1K-блоков    Испол Доступно Исп%Подключено к
    #/usr/src/loop-AES-v1.7a/tmp-i-13211 10 7 3 70% /usr/src/loop-AES-v1.7a/tmp-d-13211
    #-rw-------    1 root     root         1888 2003-04-17 02:33 /boot/initrd.gz
    #Copying /sbin/losetup to /boot
    #Copying /sbin/insmod to /boot
    #Copying /lib/libc.so.6 to /boot
    #Copying /lib/ld-linux.so.2 to /boot
    #Done.
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
  5. Загрузитесь с Knoppix CD с параметром knoppix 2 для получения root-терминала (мы не грузим то, что не надо и ускоряем процесс). После этого дайте команду на исполнение:
    losetup -e AES256 -T /dev/loop0 /dev/hda2 (здесь указать вашу корневую партицию)
    

    и наберите вашу парольную фразу (и, желательно, не забудьте ее!)

     dd if=/dev/hda2 of=/dev/loop0 bs=64k conv=notrunc
    

    (рездел должен быть неподмонтированным, копирование займет немного времени, прямо пропорционально рамеру раздела)

    #~~~~~~Пример~~~~~~~~~~~~~
    # использовали time для замера времени
    #
    #time dd if=/dev/hda6 of=/dev/loop0 bs=64k conv=notrunc
    #96012+1 входных записей
    #96012+1 выходных записей
    #
    #real    9m56.848s
    #user    0m0.610s
    #sys     2m4.030s
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
  6. Затем создайте директорию
         mkdir /mnt/gentoo
         mkdir /mnt/gentoo/boot
    

    подмонтируйте резделы

         mount /dev/hda2 /mnt/gentoo
         mount /dev/hda1 /mnt/gentoo/boot
    

    теперь смените корневой раздел

         chroot /mnt/gentoo /bin/bash
    

    отредактируйте fstab, так чтобы корневой раздел указывал на /dev/loop5 вместо /dev/hdaENCRYPTED

  7. Перейдите в раздел /boot/grub и добавьте в grub.conf строки:
         title=Encrypted
         root (hd0,0)
         kernel /boot/bzImage-crypt root=/dev/ram0 init=/linuxrc
         initrd /boot/initrd.gz
    
       Note: init=/linuxrc, not init=/boot/linuxrc.
    
  8. Перезагрузитесь (не забудьте извлечь диск с Knoppix) В GRUB выберете Encrypted Root и введите парольную фразу по запросу загрузчика
  9. Если что-то не работает, прочитайте файл README в loop-AES, загрузитесь с Knoppix CD и переделайте losetup (пункт 6). dd if=/dev/hda2 of=/dev/loop0 bs=64k conv=notrun ПОВТОРЯТЬ НЕ НАДО

Для расшифровки файловой системы надо

  1. Загрузиться с Knoppix CD
  2. losetup -e AES256 /dev/loop0 /dev/hdaENCRYPTED (ваш раздел root)
    Для проверки можно выполнить
           mount /dev/loop0 /mnt/222 (подмонтировать директорию)
           ls /mnt/222 (должны увидеть свои файлы)
           umount /mnt/222 (отмонтировать директорию)
    
  3. dd if=/dev/loop0 of=/dev/hdaENCRYPTED bs=64k conv=notrunc

Как зашифровать swap

  1. Отключите swap-раздел
         swapoff -a
    
  2. измените значения в fstab, как это описано в loop-AES readme
    /dev/hdaSWAP  none  swap  sw,loop=/dev/loop6,encryption=AES128  0  0
    
  3. losetup -e AES256 /dev/loop0 /dev/hdaSWAP
    (потребуется указать пароль длиной 20 и более символов)

     

  4. Зашифруйте физический раздел
       
          dd if=/dev/hdaSWAP of=/dev/loop6 bs=64k conv=notrunc
    
  5. отключите swap от loop
          losetup -d /dev/loop0
    
  6. активируйтем swap (автоматически будет подключатся к указанному loop device)
          swapon -a
    
  7. Просмотрите swap - в начале будет идти масса нулей
          od -xa /dev/hdaSWAP | less
    

Оригинал: http://www.linuxshop.ru/forum/viewtopic.php?p=4190#4190
Статья взята с сайта OpenNet.

комментарии к статье (0)

Ссылки по теме:

  • Запись дисков CD-R/RW из консоли
  • Архитектура UNIX и Windows
  • История о том, как я настраивал USB flash-memory-drive в Linux
  • Установка Linux на устройство, которое не поддерживается дистрибутивом
  • Утилита lsof - инструмент администратора

  • ВХОД
    (?)
    |
     
       Copyright WinSov © 2003-2005. При использовании материалов ссылка на www.winsov.ru обязательна.
       Designed by "2BEST Studio",  Developed by #Dialer
    Вверх