Создание шифрованного раздела в linux используя cryptsetup-luks.

Давно я хотел сделать раздел в linux аналог pgpdisk в windows, которым я активно пользовался лет 5 назад. Эта небольшая статья расскажет как создать зашифрованный раздел в linux используя сryptsetup с поддержкой LUKS.

Cryptsetup

Cryptsetup скрипт для упрощения создания и управления зашифрованными разделов в linux.

Linux Unified Key Setup (LUKS)

LUKS это стандарт для упрощения использования шифрования дисков. Он встраивает в заголовок партиции информацию о алгоритме шифрования, поэтому теперь пользователю не надо помнить его. Флэш накопитель зашифрованный с помощью этого стандарта прекрасно видится HAL'ом и будучи воткнутым в usb порт определяется как зашифрованная и перед подключением предлагает ввести ключ. Также LUKS позволяет использовать несколько ключей одновременно для разных пользователей и несколько других возможностей.

Создание и присоединение зашифрованного файла контейнера и партиции.

Сначала нам надо установить cryptsetup с поддержкой LUKS.

[foot@olin ~]$ sudo yum install cryptsetup-luks

Теперь создаем файл контейнер и loopback и присоединим его.

[foot@olin ~]$ dd if=/dev/urandom of=testfile.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 20.9833 s, 5.0 MB/s
 
[foot@olin ~]$ sudo losetup /dev/loop0 testfile.img
[foot@olin ~]$

Перед тем как мы сможем открыть зашифрованную партицию, мы должны инициализировать ее.

[foot@olin ~]$ sudo cryptsetup luksFormat /dev/loop0
 
WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.
 
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Verify passphrase: 
Command successful.
[foot@olin ~]$

Партиция инициализирована и мы можем создать Device-Mapper привязку к ней.

[foot@olin ~]$ sudo cryptsetup luksOpen /dev/loop0 testfs
Enter LUKS passphrase for /dev/loop0: 
key slot 0 unlocked.
Command successful.
 
[foot@olin ~]$ ls /dev/mapper/testfs 
/dev/mapper/testfs
[foot@olin ~]$

Теперь можно отформатировать партицию.

[foot@olin ~]$ sudo mkfs.ext2 /dev/mapper/testfs
mke2fs 1.41.4 (27-Jan-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2432 inodes, 9724 blocks
486 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=9961472
2 block groups
8192 blocks per group, 8192 fragments per group
1216 inodes per group
Superblock backups stored on blocks: 
	8193
 
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[foot@olin ~]$

Примечание: ФС с поддержкой журналирования (ext3) у меня не заработало.

Присоединим партицию.

[foot@olin ~]$ mkdir ~/mnt/testfs
[foot@olin ~]$ sudo mount /dev/mapper/testfs ~/mnt/testfs/
[foot@olin ~]$ sudo chown foot:foot ~/mnt/testfs -R
[foot@olin ~]$

Примечание: Тут "foot:foot" это имя моего пользователя и группа в системе.

Подключение существующего зашифрованного файла контейнера.

[foot@olin ~]$ sudo losetup /dev/loop0 testfile.img 
[foot@olin ~]$ sudo cryptsetup luksOpen /dev/loop0 testfs
Enter LUKS passphrase for /dev/loop0: 
key slot 0 unlocked.
Command successful.
[foot@olin ~]$ sudo mount /dev/mapper/testfs ~/mnt/testfs/
[foot@olin ~]$

Отключение зашифрованного файла контейнера.

[foot@olin ~]$ sudo umount ~/mnt/testfs 
[foot@olin ~]$ sudo cryptsetup luksClose /dev/mapper/testfs
[foot@olin ~]$ sudo losetup -d /dev/loop0
[foot@olin ~]$

Добавление дополнительных ключей

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

Добавление нового ключа.

[foot@olin ~]$ sudo cryptsetup luksAddKey /dev/loop0
Enter any LUKS passphrase: 
key slot 0 unlocked.
Enter new passphrase for key slot: 
Verify passphrase: 
Command successful.
[foot@olin ~]$

Просмотр заголовка LUKS.

[foot@olin ~]$ sudo cryptsetup luksDump /dev/loop0
LUKS header information for /dev/loop0
 
Version:       	1
Cipher name:   	aes
Cipher mode:   	cbc-essiv:sha256
Hash spec:     	sha1
Payload offset:	1032
MK bits:       	128
MK digest:     	be 6e 6f 7b 1a 3f 2d b6 eb 18 7d 5f b4 32 16 02 43 f0 fc 67 
MK salt:       	90 af e6 a6 68 a5 bf 6f ab 65 9a a3 31 65 ee 25 
               	76 03 15 67 99 ed 24 86 d6 42 e4 2c 21 5e ea 84 
MK iterations: 	10
UUID:          	2eae6133-f9fb-4dd5-8b40-4b621dd0f383
 
Key Slot 0: ENABLED
	Iterations:         	244906
	Salt:               	87 c4 c9 9b a6 9e 6d e7 6e b9 ba 1b de 8e c1 ab 
	                      	eb 2a eb 53 f3 bf ad 9a 8d 1b 23 1f 0e 49 1e 9f 
	Key material offset:	8
	AF stripes:            	4000
Key Slot 1: ENABLED
	Iterations:         	244707
	Salt:               	9f 9f bb 3e 67 be e3 1e cf a2 a4 f8 f8 28 d3 e2 
	                      	eb 8a 9f 30 72 09 5c 0a 27 d0 42 5f 7b 37 e3 fa 
	Key material offset:	136
	AF stripes:            	4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
[foot@olin ~]$ 

Удаление ключа.

[foot@olin ~]$ sudo cryptsetup luksKillSlot /dev/loop0 1
Enter any remaining LUKS passphrase: 
key slot 1 verified.
Command successful.
[foot@olin ~]$

Света (не проверено) on февраля 04th 2012

О новом смартфоне k800 от lenovo на базе Intel Medfield

Света (не проверено) on февраля 04th 2012

О новом смартфоне k800 от lenovo на базе Intel Medfield

Ilon (не проверено) on февраля 03rd 2012

Классно, когда можно бесплатно скачать PES 2012

Гость (не проверено) on сентября 14th 2011

Проблема неполных семей, планирование семьи, права человека.
Договорные отношения в банковском деле, органы финансового надзора, автоматизированные банковские системы.
Бухгалтерский учет в торговле, банковский бухгалтерский учет, общая теория бухгалтерского учета.
seropol3

Alex (не проверено) on сентября 23rd 2010

Великолепно описано.

geeker (не проверено) on февраля 07th 2010

щас попробую повторить :)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h1> <h2> <h3> <h4>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Twitter-style @usersnames are linked to their Twitter account pages.
  • Twitter-style #hashtags are linked to search.twitter.com.

Подробнее о форматировании