网站搜索

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 )它将被分为两个分区。

  1. 一个分区 (/dev/sdd1 -primary) 用于 LUKS 加密。
  2. 第二个分区(/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
  1. 目标名称:设备的描述性名称(请参阅上面EXT4 LUKS上的22点)。
  2. 源驱动器:针对LUKS格式化的硬盘分区(请参见上面EXT4 LUKS上的21点)。
  3. 密钥文件:选择无
  4. 选项:指定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 记忆棒、闪存、外部硬盘等,以保护重要、秘密或敏感数据,以防窃听或窃取。