Image

知识库 → 自动挂载加密的Luks文件

[虚拟服务器]
出版日期: 20.01.2024

在 VDS Linux 上创建加密磁盘一文中,我们描述了如何创建加密文件并将其挂载为磁盘。 在该示例中,为了进行连接,我们每次都输入密码,在处理文件后,我们将其禁用。 这种工作方法在处理数据时提供了高级别的安全性。

缺点是,如果所有操作都记录在输入密码的电脑上,我们每次输入的密码都可能被截获。 (已安装键盘记录器)

在本例中,我们将向您展示如何使用密钥文件自动挂载加密文件并在每次服务器启动时挂载磁盘。

1.创建密钥文件

dd if=/dev/urandom of=/root/random_data_keyfile1 bs=1024 count=4

1.1 让我们只为 root 分配权限

chmod 0400 /root/random_data_keyfile1

1.2 在我们的加密文件中添加密钥文件

cryptsetup luksAddKey /root/crypt-drive /root/random_data_keyfile1

Enter any existing passphrase:

2.添加自动连接的配置

2.1 文件 /etc/crypttab

# <target name>	<source device>		<key file>	<options>
crypto-my /root/crypt-drive /root/random_data_keyfile1 luks,discard

如果删除密钥文件并重新启动服务器,在启动阶段会提示您输入加密文件的密码,但此阶段无法通过网络访问服务器。 正确输入密码后,服务器将继续加载,包括网络服务。

2.1.1 为确保密钥文件丢失时服务器继续启动,添加超时选项

# <target name>	<source device>		<key file>	<options>
crypto-my /root/crypt-drive /root/random_data_keyfile1 luks,discard,timeout=30

现在输入密码,如果没有密钥文件,将等待 30 秒,之后服务器将继续加载并可通过网络访问。

2.2 文件/etc/fstab

...
/dev/mapper/crypto-my /mnt/crypt-volume ext4 defaults 0 0

完成后,您可以重新启动服务器并检查。

df -h

Filesystem             Size  Used Avail Use% Mounted on
udev                   962M     0  962M   0% /dev
tmpfs                  197M  504K  197M   1% /run
/dev/sda1               62G  2.7G   56G   5% /
tmpfs                  984M     0  984M   0% /dev/shm
tmpfs                  5.0M     0  5.0M   0% /run/lock
/dev/mapper/crypto-my  974M   72K  908M   1% /mnt/crypt-volume
tmpfs                  197M     0  197M   0% /run/user/0

这种方法有其缺点,因为当您物理访问服务器时,可以重置root密码,并且由于密钥文件存储在服务器上,您将能够访问加密分区中的数据。





暂时没有评论