Давно я хотел сделать раздел в linux аналог pgpdisk в windows, которым я активно пользовался лет 5 назад. Эта небольшая статья расскажет как создать зашифрованный раздел в linux используя сryptsetup с поддержкой LUKS.
скрипт для упрощения создания и управления зашифрованными разделов в linux.
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 ~]$
Присоединим партицию.
[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@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
щас попробую повторить :)
Отправить комментарий