Автоматическое монтирование зашифрованной файловой системы (с использованием случайного ключа), находящейся в обычном файле в CentOS 6.*

Автоматическое монтирование зашифрованной файловой системы (с использованием случайного ключа), находящейся в обычном файле в CentOS 6.*

Задача: в системе CentOS 6.x настроить и смонтировать автоматически зашифрованную файловую систему, находящуюся в обычном файле, используя одноразовый (случайный) ключ.

/etc/crypttab в CentOS 6.* не позволяет использовать простой файл в качестве блочного устройства для автоматического монтирования и сопоставления.

Итак, строка /etc/crypttab выглядит так:

cfs   /var/file-with-encrypted-filesystem    some-password-source

игнорируется в CentOS.

Для выполнения этой задачи в CentOS можно использовать следующую последовательность команд:

losetup /dev/loop0 /var/tmpfile
dd if=/dev/urandom of=/dev/shm/tmppass bs=512 count=1
cryptsetup luksFormat /dev/loop0 --use-urandom --batch-mode --key-file /dev/shm/tmppass
cryptsetup luksOpen /dev/loop0 ctmp --batch-mode --key-file /dev/shm/tmppass
mkfs.ext2 /dev/mapper/ctmp
mount -t ext2 /dev/mapper/ctmp /mountpoint
shred -n 1 /dev/shm/tmppass
rm -f /dev/shm/tmppass

предполагая, что файл для хранения файловой системы — /var/tmpfile

Есть ли менее громоздкий способ добиться того же самого в стиле Debian (указав соответствующие записи в /etc/crypttab и /etec/fstab )?

решение1

Следующая запись /etc/crypttab — это то, как это можно сделать в Ubuntu:

# <target name>  <source device>                      <key file>    <options>
cfs              /var/file-with-encrypted-filesystem  /dev/urandom  tmp=ext4

Очень похоже на то, как обрабатывается зашифрованный своп — см. пример страницы руководства crypttab ниже:

# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap

Есть ли на man-странице CentOS для crypttab какие-либо указания по выполнению этого? Сейчас у меня нет машины CentOS, но на машине RHEL 6 поддерживаются те же параметры.


Ладно, хорошо, мне было интересно. Это работает и немного лучше. Поместите это где-нибудь вроде /etc/rc.local. Проверено на RH 6:

LODEV=$(losetup -f)
losetup $LODEV /path/to/existing/cryptfile
cryptsetup create cfs $LODEV --key-file /dev/urandom
mkfs.ext2 /dev/mapper/cfs 
mount /dev/mapper/cfs /wherever

Связанный контент