Задача: в системе 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)?
Следующая запись / 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
Предоставляет ли справочная страница 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