我们有一台 Debian X64 服务器,配置如下。一块 512GB SSD,上面有我们的操作系统;两块 2.0TB HDD,上面有附件等数据。
两个 2.0 TB 驱动器采用 RAID-1 配置。出于安全考虑,我想加密此 RAID-1 设置。我不明白的是,即使是加密的驱动器也需要密钥才能解密。这是我遇到的两个问题:
- 如何设置加密的 RAID-1。我发现了很多有关使用 LVM 的 RAID 的内容。
- 用于解密驱动器的密钥将存储在何处以及如何存储。
这是我的突袭配置:
mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Feb 2 16:35:52 2016
Raid Level : raid1
Array Size : 1953382336 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953382336 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Feb 11 10:00:37 2016
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : domain:0 (local to host domain)
UUID : e3750654:c7e1a24c:3f0a15b6:46f26d0d
Events : 22
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
任何帮助都很好。谢谢。
答案1
加密文件系统不如完整分区加密那么安全,而且可以说更难使用,速度也更慢。
设置加密的典型方法是设置 RAID1,然后设置 LVM,然后加密到 LVM 卷。(您可以跳过 LVM 卷位,但它增加了更多的灵活性)。我想大多数发行版都会允许您在全新安装时执行此操作 - 这是正确的Ubuntu/Mint如果你想切换LVM 和加密层这里。我确信您也可以使用 Redhat 及其衍生产品来做到这一点。
至于存储密钥 - 全盘加密使用卢克斯,因此密钥存储在磁盘的头部,并使用您的密码进行加密。这意味着您可以更改密码,而无需重新加密磁盘。
运行加密 FS 时,每次启动时都需要重新输入密钥。(如果您使用 Ubuntu 用户加密,情况就不一样了 - 它从用户密码中获取密钥 - 而且安全性也较低)。
评论后的扩展信息
既然您已经构建了 RAID 1 阵列,第一步就是在其上构建 LVM。您应该通过 Google 搜索以完全理解它,但这有三个部分 -
使用该命令
pvcreate /dev/md0
使 RAID 设备成为 LVM 资源。使用命令添加卷组
vgcreate RaidVG /dev/md0
使用如下命令创建逻辑卷
lvcreate -n LVMVol RaidVG -L +1700G
(最好确保逻辑卷小于整个磁盘大小,以便您可以进行快照和其他有趣的操作)
这将创建一个名为 的新卷(类似于分区)/dev/RaidVG/LVMVol
,然后您将对其进行加密。为此,请使用命令cryptsetup -u u-v luksFormat /dev/RaidVG/LVMVol
创建卷。
要挂载卷(每次重新启动系统时都需要运行此命令),请键入cryptsetup luksOpen /dev/RaidVG/LVMVol CryptVol
- 这将要求您输入密码,然后创建一个/dev/mapper/CryptVol
您可以操作的新卷/分区 - 并且所有操作都将被加密。
在此之后,您需要创建文件系统 - 例如mkfs.ext4 /dev/mapper/CryptVol
,然后安装它mount /dev/mapper/CryptVol /path/to/mountpoint
- 当然,您需要在每次重新启动计算机时手动安装该卷,然后按照上述方法先解密。
答案2
如何设置加密的 RAID-1。
最简单的方法:设置未加密的 RAID 1 并加密文件系统。(没有磁盘或分区)。
我自己从来没有这样做过,但似乎有一种方法可以做到这一点:
- cryptsetup 选项 luksFormat 设备
- cryptsetup 打开设备名称
- mkfs.fstype /dev/mapper/name(在加密设备上完成)
用于解密驱动器的密钥将存储在何处以及如何存储。
啊,好问题。答案应该是“计算机上任何地方都没有”。
否则它就像一把钥匙仍插在里面的锁一样。
每次启动时您都需要手动输入密钥。
显然,您也可以将其存储在 /etc/crypttab 中,但这样安全性就会大大降低。它可以防止有人直接物理移除磁盘并读取内容。但如果他们可以访问磁盘,那么他们可能也可以访问您的 SSD 并检索密钥。
答案3
假设您已在 中安装了 RAID /dev/md0
。使用以下命令检查它:
cat /proc/mdstat
如果你看到类似这样的内容,md0 : active raid1 sdc[1] sda[0]
那么你就可以开始了:
sudo cryptsetup --verbose --verify-passphrase luksFormat /dev/md0
打开它
sudo cryptsetup luksOpen /dev/md0 my_raid
检查尺寸
ls -l /dev/mapper/my_raid
创建文件系统
sudo mkfs.ext4 /dev/mapper/my_raid
安装它
sudo mount /dev/mapper/my_raid /mnt/my_raid
核实
df -h | grep raid
以下是我们加密的、已安装的突袭:
/dev/mapper/my_raid 3.6T 89M 3.4T 1% /mnt/my_raid
哒哒。