LUKS:Linux 中支持 NTFS 的 Linux 硬盘数据加密
LUKS 缩写代表 Linux 统一密钥设置,它是 Linux 内核广泛使用的磁盘加密方法,并通过 cryptsetup 包实现。
cryptsetup 命令行使用从提供的密码派生的对称加密密钥动态加密卷磁盘,每次安装卷磁盘、分区和整个磁盘(甚至 USB 记忆棒)时都会提供该密码。文件系统层次结构并使用 aes-cbc-essiv:sha256 密码。
由于 LUKS 可以加密 Linux 系统上的整个块设备(硬盘、USB 记忆棒、闪存盘、分区、卷组等),因此主要推荐用于保护可移动存储介质、笔记本电脑硬盘或 Linux 交换文件,而不推荐用于文件保护级加密。
NTFS(新技术文件系统)是微软开发的专有文件系统。
Ubuntu 14.04 借助 ntfs-3g 软件包提供了对 LUKS 加密的全面支持以及对 Windows 的 NTFS 本机支持。
为了证明我在本教程中的观点,我在 Ubuntu 14.04 盒子上添加了一个新硬盘(第 4 个)(系统对新添加硬盘的引用是 /dev/sdd )它将被分为两个分区。
- 一个分区 (/dev/sdd1 -primary) 用于 LUKS 加密。
- 第二个分区(/dev/sdd5 - 扩展)采用 NTFS 格式,用于访问基于 Linux 和 Windows 的系统上的数据。
此外,重启后分区将自动挂载到 Ubuntu 14.04 上。
第1步:创建磁盘分区
1. 将硬盘物理添加到计算机上后,使用 ls 命令列出所有 /dev/devices(第四个磁盘是 /dev/sdd)。
ls /dev/sd*
2.接下来使用fdisk命令检查新添加的硬盘。
sudo fdisk –l /dev/sdd
因为还没有写入任何文件系统,所以磁盘还不包含有效的分区表。
3. 接下来的步骤使用 cfdisk 磁盘实用程序对硬盘进行切片以获得两个分区结果。
sudo cfdisk /dev/sdd
4. 下一个屏幕将打开 cfdisk 交互模式。选择您的硬盘可用空间,然后使用左/右键箭头导航至新建选项。
5. 选择您的分区类型为主,然后按Enter。
6.记下您所需的分区大小(以MB为单位)。
7. 在硬盘可用空间的开头处创建此分区。
8. 接下来导航到分区类型选项并按Enter。
9. 下一个提示显示所有类型的文件系统及其数字代码(十六进制数字)的列表。该分区将采用 Linux LUKS 加密,因此选择 83 代码并再次按 Enter 创建分区。
10. 第一个分区已创建,cfdisk 实用程序提示符将返回到开头。要创建用作 NTFS 的第二个分区,请选择剩余的可用空间,导航至新建选项,然后按Enter键。
11. 这次分区将是扩展逻辑分区。因此,导航到逻辑选项,然后再次按Enter。
12.再次输入您的分区大小。要使用剩余的可用空间作为新分区,请保留大小的默认值,然后按 Enter。
13.再次选择您的分区类型代码。对于 NTFS 文件系统,选择 86 卷代码。
14. 查看并验证分区后,选择写入,在下一个交互式提示问题上回答是,然后退出离开< b>cfdisk 实用程序。
恭喜!您的分区已成功创建,现在可以格式化和使用。
15.要再次验证磁盘分区表,请再次发出fdisk命令,这将显示详细的分区表信息。
sudo fdisk –l /dev/sdd
第2步:创建分区文件系统
NTFS文件系统
16.要在第二个分区上创建NTFS文件系统,请运行mkfs命令。
sudo mkfs.ntfs /dev/sdd5
17. 要使分区可用,必须将其安装到文件系统上的安装点。使用 mount 命令将第四个硬盘上的第二个分区挂载到 /opt 挂载点。
sudo mount /dev/sdd5 /opt
18. 接下来,使用 cat 命令检查分区是否可用并在 /etc/mtab 文件中列出。
cat /etc/mtab
19. 要卸载分区,请使用以下命令。
sudo umount /opt
EXT4 幸运
20. 确保您的系统上安装了 cryptsetup 软件包。
sudo apt-get install cryptsetup [On Debian Based Systems]
yum install cryptsetup [On RedHat Based Systems]
21. 现在是时候通过发出以下命令来使用 ext4 文件系统格式化第四个硬盘上的第一个分区了。
sudo luksformat -t ext4 /dev/sdd1
在“您确定吗?”问题上用大写字母YES回答,并输入三倍您想要的密码。
注意:根据您的分区大小和HDD速度,文件系统创建可能需要一段时间。
22.您还可以验证分区设备状态。
sudo cryptsetup luksDump /dev/sdd1
23。 LUKS 支持最多添加 8 个密码。要添加密码,请使用以下命令。
sudo cryptsetup luksAddKey /dev/sdd1
要删除密码,请使用。
sudo cryptsetup luksRemoveKey /dev/sdd1
24.要使此加密分区处于活动状态,它必须在/dev/mapper目录中具有一个名称条目(已初始化),并借助以下命令cryptsetup 包。
此设置需要以下命令行语法:
sudo cryptsetup luksOpen /dev/LUKS_partiton device_name
其中“device_name”可以是您喜欢的任何描述性名称! (我将其命名为我的 crypted_volume)。实际命令如下所示。
sudo cryptsetup luksOpen /dev/sdd1 crypted_volume
25.然后验证您的设备是否列在/dev/mapper、目录、符号链接和设备状态中。
ls /dev/mapper
ls –all /dev/mapper/encrypt_volume
sudo cryptsetup –v status encrypt_volume
26. 现在,为了使分区设备广泛可用,请使用 mount 命令将其挂载到系统上的挂载点下。
sudo mount /dev/mapper/crypted_volume /mnt
可以看出,分区已安装并且可以写入数据。
27. 要使其不可用,只需从系统中卸载它并关闭设备即可。
sudo umount /mnt
sudo cryptsetup luksClose crypted_volume
第三步:自动挂载分区
如果您使用固定硬盘并需要在重新启动后自动挂载两个分区,则必须执行以下两个步骤。
28.首先编辑/etc/crypttab文件并添加以下数据。
sudo nano /etc/crypttab
- 目标名称:设备的描述性名称(请参阅上面EXT4 LUKS上的22点)。
- 源驱动器:针对LUKS格式化的硬盘分区(请参见上面EXT4 LUKS上的21点)。
- 密钥文件:选择无
- 选项:指定luks
最后一行如下所示。
encrypt_volume /dev/sdd1 none luks
29.然后编辑/etc/fstab并指定您的设备名称、挂载点、文件系统类型和其他选项。
sudo nano /etc/fstab
在最后一行使用以下语法。
/dev/mapper/device_name (or UUID) /mount_point filesystem_type options dump pass
并添加您的具体内容。
/dev/mapper/encrypt_volume /mnt ext4 defaults,errors=remount-ro 0 0
30. 要获取设备UUID,请使用以下命令。
sudo blkid
31. 要添加之前创建的 NTFS 分区类型,请在 fstab 中的新行上使用与上面相同的语法(此处为 Linux 文件附加重定向用来 )。
sudo su -
echo "/dev/sdd5 /opt ntfs defaults 0 0" >> /etc/fstab
32. 要验证更改重新启动您的计算机,请在“开始配置网络设备”启动消息后按 Enter 并键入您的设备密码。
正如您所看到的,两个磁盘分区都自动安装在 Ubuntu 文件系统层次结构上。作为建议,如果您无法访问重新启动序列来提供加密卷密码,请不要使用物理远程服务器上的 fstab 文件中的自动加密卷。
相同的设置可以应用于所有类型的可移动介质,例如 USB 记忆棒、闪存、外部硬盘等,以保护重要、秘密或敏感数据,以防窃听或窃取。