DigitalOcean块存储上创建加密的文件系统教程

DigitalOcean是我们熟悉的一家美国云主机服务器商,产品整体性能优越,而且采用SSD硬盘存储,支持按小时计费模式,因而备受国内站长欢迎。DigitalOcean Volumes是可扩展的,基于SSD的块存储设备。卷使您可以创建和扩展基础结构的存储容量,而无需调整Droplet的大小。Volumes在静止状态下被加密,这意味着卷上的数据在其存储群集之外无法读取。将Volumes附加到Droplet时,Droplet会显示一个解密的块存储设备,并且所有数据都通过隔离的网络传输。

为了提高安全性,您还可以在Volume 的LUKS加密磁盘中创建文件系统。这意味着磁盘将需要由Droplet上的操作系统解密才能读取任何数据。下面就给大家简单介绍下如何在DigitalOcean块存储上创建加密的文件系统,仅供大家参考。

一、创建加密磁盘

cryptsetup是一个实用程序,用于管理其他加密格式之外的LUKS卷。首先,用于cryptsetup初始化卷上的加密磁盘。

sudo cryptsetup -y -v luksFormat /dev/disk/by-id/scsi-0DO_Volume_volume-lon1-01

确保volume-lon1-01用Volume的名称替换。-y当系统提示您创建密码时,该标志将要求您输入两次密码。该-v标志添加了其他人类可读的输出,以验证命令是否成功。

输出将要求您确认覆盖卷上的数据。键入YES全部大写,然后按ENTER继续。

Output

WARNING!

========

This will overwrite data on /dev/disk/by-id/scsi-0DO_Volume_volume-lon1-01 irrevocably.

Are you sure? (Type uppercase yes): YES

接下来,输出将提示您为加密磁盘创建密码。输入一个唯一的强密码短语,然后再次输入以进行验证。此密码无法恢复,因此请将其保存在安全的地方。

Output

. . .

Enter passphrase:

Verify passphrase:

Command successful.

如果需要,将来可以使用cryptsetup luksChangeKey命令更改此密码。您还可以使用最多为每个设备添加8个其他密码短语cryptsetup luksAddKey。

此时,您的磁盘已创建并加密。接下来,将其解密并将其映射到标签以便于引用。在这里,我们将其标记为secure-volume,但是您可以使用任何喜欢的标记它。

sudo cryptsetup luksOpen /dev/disk/by-id/scsi-0DO_Volume_volume-lon1-01 secure-volume

系统将提示您输入密码。输入后,卷现在将映射到/dev/mapper/secure-volume。

为确保一切正常,请验证加密磁盘的详细信息。

cryptsetup status secure-volume

您将看到这样的输出,指示“卷”标签和类型。

Output

/dev/mapper/secure-volume is active.

type: LUKS1

cipher: aes-xts-plain64

keysize: 256 bits

device: /dev/sda

offset: 4096 sectors

size: 209711104 sectors

mode: read/write

此时,您具有受密码保护的加密磁盘。下一步是在该磁盘上创建文件系统,以便操作系统可以使用它来存储文件。

二、创建和挂载文件系统

首先让我们看一下Droplet上的当前可用磁盘空间。

df -h

您将看到类似于此的输出,具体取决于您的Droplet配置:

Output

Filesystem Size Used Avail Use% Mounted on

udev 2.0G 0 2.0G 0% /dev

tmpfs 396M 5.6M 390M 2% /run

/dev/vda1 78G 877M 77G 2% /

tmpfs 2.0G 0 2.0G 0% /dev/shm

tmpfs 5.0M 0 5.0M 0% /run/lock

tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup

/dev/vda15 105M 3.4M 101M 4% /boot/efi

tmpfs 396M 0 396M 0% /run/user/1000

目前,由于Droplet尚无法访问该卷,因此未显示在此列表上。为了使其可访问,我们需要创建并挂载文件系统。/dev/mapper/secure-volume

使用mkfs.xfs实用程序(中号一个ķ ë ˚F ILE 小号 ystem)来创建一个XFS在卷上的文件系统。

sudo mkfs.xfs /dev/mapper/secure-volume

创建文件系统后,您可以挂载它,这意味着可以在Droplet上将其提供给操作系统使用。

创建一个挂载点,将文件系统附加到该挂载点。挂载点的一个很好的建议是该目录中有一个空/mnt目录,因此我们将使用。/mnt/secure

sudo mkdir /mnt/secure

然后挂载文件系统。

sudo mount /dev/mapper/secure-volume /mnt/secure

为确保其正常工作,请再次检查Droplet上的可用磁盘空间。

df -h

现在,您会看到列出的内容。/dev/mapper/secure-volume

Output

Filesystem Size Used Avail Use% Mounted on

udev 2.0G 0 2.0G 0% /dev

tmpfs 396M 5.6M 390M 2% /run

/dev/vda1 78G 877M 77G 2% /

tmpfs 2.0G 0 2.0G 0% /dev/shm

tmpfs 5.0M 0 5.0M 0% /run/lock

tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup

/dev/vda15 105M 3.4M 101M 4% /boot/efi

tmpfs 396M 0 396M 0% /run/user/1000

/dev/mapper/secure-volume 100G 33M 100G 1% /mnt/secure

这意味着您的加密文件系统已连接并可以使用。

当不再需要访问卷上的数据时,可以卸载文件系统并锁定加密的磁盘。

sudo umount /mnt/secure

sudo cryptsetup luksClose secure-volume

您可以验证df -h文件系统不再可用。为了使卷上的数据再次可访问,您将执行以下步骤来打开磁盘(cryptsetup luksOpen …),创建安装点并安装文件系统。

为了避免每次要使用Volume时都要执行此手动过程,可以将文件系统配置为在Droplet引导时自动挂载。

三、在启动时自动挂载文件系统

加密的磁盘最多可以具有8个密码短语。在最后一步中,我们将创建一个密钥并将其添加为密码短语,然后使用该密钥来配置要在Droplet引导时解密和装入的Volume。

在创建密钥文件/root/.secure_key。此命令将创建一个具有随机内容的4 KB文件:

sudo dd if=/dev/urandom of=/root/.secure-key bs=1024 count=4

调整此密钥文件的权限,以便只有root用户才能读取。

sudo chmod 0400 /root/.secure-key

然后将密钥添加为加密磁盘的密码。

cryptsetup luksAddKey /dev/disk/by-id/scsi-0DO_Volume_volume-lon1-01 /root/.secure-key

系统会提示您输入密码。您可以输入首次创建加密磁盘时设置的磁盘。

/etc/crypttab是一个配置文件,用于定义要在系统启动时设置的加密磁盘。使用nano或您喜欢的文本编辑器打开此文件。

sudo nano /etc/crypttab

将以下行添加到文件底部以在启动时映射卷。

/ etc / crypttab

. . .

secure-volume /dev/disk/by-id/scsi-0DO_Volume_volume-lon1-01 /root/.secure-key luks

中的行格式/etc/crypttab为device_name device_path key_path options。在这里,设备名称为secure-volume(或您选择的名称),路径为,密钥文件是我们刚刚在创建的,而选项指定加密。/dev/disk/by-id/…/root/.secure_keyluks

保存并关闭文件。

/etc/fstab是用于自动安装的配置文件。打开此文件进行编辑。

sudo nano /etc/fstab

在文件底部添加以下行,以在引导时自动挂载磁盘。

/ etc / fstab

. . .

/dev/mapper/secure-volume /mnt/secure xfs defaults,nofail 0 0

行中的前三个参数/etc/fstab始终为device_path mount_point file_system_type。在这里,我们具有与步骤2相同的设备路径和安装点,并且指定了XFS文件系统。您可以在fstab的手册页(man fstab)中了解其他字段。

保存并关闭文件。现在,将您的加密文件系统设置为在Droplet引导时自动安装。您可以通过重新启动Droplet来进行测试,但请谨慎使用任何正在运行的服务。

默认情况下,DigitalOcean卷未连接到Droplet时将被加密。在本教程中,您通过将文件系统放在Volume上的加密磁盘中添加了附加的安全层。您可以创建加密的磁盘,向其添加密码,然后手动或自动挂载以在Droplet中使用。

更多教程:DigitalOcean教程

(本文由美国主机侦探原创,转载请注明!)

微信扫码加好友进群

主机优惠码及时掌握

QQ群号:164393063

主机优惠发布与交流

温馨提示:

1、本站部分图片来源于互联网,如有侵权请联系删除。QQ:800013301

2、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

3、美国主机侦探免费为您提供美国主机购买咨询。

返回顶部