The OpenNET Project / Index page

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

Шифрование дисковых разделов в Linux (crypt mount fs disk linux)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: crypt, mount, fs, disk, linux,  (найти похожие документы)
From: dmitrio Date: Mon, 23 Feb 2004 14:31:37 +0000 (UTC) Subject: Шифрование дисковых разделов в Linux Оригинал: http://www.linuxshop.ru/forum/viewtopic.php?p=4190#4190 Криптование/разкриптование рутовой партици и swap По материалам http://forums.gentoo.org/viewtopic.php?t=31363 ----------------- Подготовка ----------------- 1. Рабочая система с раздельной /boot партицией. Если система не работает на обычной файловой системе, то криптование ничего не исправит. 2. loop-AES исходники, скачать можно здесь http://sourceforge.net/projects/loop-aes/ Прочитать loop-AES README что бы знать где копать если что нибудь пойдет не правильно. 3. исходники для util-linux-2.11y. Получить можно на любом ядреном сайте типа ftp://ftp.kernel.org/pub/utils/util-linux. 4. Knoppix или Knoppix lite нарезанный компакт. Получить можно на http://www.knoppix.net и необходимо убедится что вы можете загрузится с этого компакта. В knoppix уже есть поддержка loop-AES. 5. !!!BACKUP YOU DATA СДЕЛАЙТЕ КОПИЮ ВАШИХ ДАННЫХ!!! ------------------ Установка ------------------ 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] потому как ядро не сможет получить доступа к модулям с зашифрованной файловой системы, до тех пор пока не будет знать ключ расшифровки. остальное можно оставить в виде модулей - по желанию так сказать 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 (партиция должна быть неприкрепленной UNMOUNTED, выполнение займет немного времени, прямо пропорционально рамеру партиции) #~~~~~~Пример~~~~~~~~~~~~~ # использовали 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 CD) в GRUB выбрать Encrypted Root и когда попросит выдать ему парольную фразу. 9. Если что то не работает то прочитать README loop-AES файл и загрузится с knoppix CD и переделать losetup с пункта 6. (dd if=/dev/hda2 of=/dev/loop0 bs=64k conv=notrun ПОВТОРЯТЬ НЕ НАДО) Для расшифровки файловой системы надо 1) Загрузиться с Knoppix 2) losetup -e AES256 /dev/loop0 /dev/hdaENCRYPTED (ваша рутовая партиция) Для проверки можно выполнить 2.5) mount /dev/loop0 /mnt/222 (подмонтировать директорию) 2.6) ls /mnt/222 (должны увидеть свои файлы) 2.7) umount /mnt/222 (отмонтировать директорию) 3) dd if=/dev/loop0 of=/dev/hdaENCRYPTED bs=64k conv=notrunc Как зашифровать своп 1) отмоунтить своп swapoff -a 2) изменить fstab значения как это описано в loop-AES readme /dev/hdaSWAP none swap sw,loop=/dev/loop6,encryption=AES128 0 0 3) здесь указать пароль 20 и более символов losetup -e AES256 /dev/loop0 /dev/hdaSWAP 4) здесь криптуется физический раздел dd if=/dev/hdaSWAP of=/dev/loop6 bs=64k conv=notrunc 5) отмоунтить своп от loop losetup -d /dev/loop0 6) активируем своп (автоматически будет подключатся к указанному loop device) swapon -a 7) просмотр свопа - в начале будет идти масса нулей od -xa /dev/hdaSWAP | less

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

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




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

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