自动挂载加密文件系统(使用随机密钥),驻留在 CentOS 6.* 下的常规文件中

自动挂载加密文件系统(使用随机密钥),驻留在 CentOS 6.* 下的常规文件中

任务:在 CentOS 6.x 系统中,使用一次性(随机)密钥设置并自动挂载加密文件系统,驻留在常规文件中。

CentOS 6.* 中的 /etc/crypttab 不允许使用纯文件作为块设备自动挂载和映射。

因此,/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

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

相关内容