ECS服务器操作系统版本
uname -a Linux Anolis8 5.10.134-16.2.an8.x86_64 #1 SMP Mon Mar 4 16:14:16 CST 2024 x86_64 x86_64 x86_64 GNU/Linux
额外挂载一块磁盘,用gdisk做分区,但不要格式化。
cryptsetup简介
cryptsetup是与dm-crypt交互的命令行工具,用于创建、访问和管理加密设备。它在大多数主流Linux发行版中都是内置的软件包。通过cryptsetup可以方便地设置LUKS(Linux Unified Key Setup)格式的加密分区或卷,从而实现对磁盘数据的安全保护。
下面对刚创建的分区使用SM4加密算法加密。
cryptsetup --cipher sm4-xts-plain64 --key-size=256 --hash sm3 luksFormat /dev/vdb1 #根据提示输入大写的YES,并输入密码。 ~~~~~~~~~~~~~~~以下是命令参数详解:~~~~~~~~~~~~~~~~ --cipher sm4-xts-plain64:指定了加密算法为SM4,使用XTS模式,且区块大小为64位。SM4是中国国家密码管理局发布的分组加密算法。 --key-size=256:指定密钥大小为256位。因为XTS模式需要两个独立的密钥,所以这里指的是总共的密钥长度。 --hash sm3:指定了哈希算法为SM3,这是中国国家标准的密码散列函数,用于保护数据完整性。 luksFormat /dev/vdb1:对 /dev/vdb1 分区进行LUKS格式化,将其初始化为一个新的加密卷。 执行此命令后,系统会提示您输入并确认一个用于加密分区的新密码。之后,该磁盘或分区上的所有数据都将被加密,并且在未提供正确密码的情况下不可访问。请确保在此之前备份重要数据,因为一旦格式化完成,原有数据将无法恢复。
解锁刚刚创建的luks分区
[root@Anolis8 ~]#cryptsetup luksOpen /dev/vdb1 diskluks [root@Anolis8 ~]# cryptsetup status diskluks [root@Anolis8 ~]# lsblk -fp NAME FSTYPE LABEL UUID MOUNTPOINT /dev/vda ├─/dev/vda1 ├─/dev/vda2 vfat 9B5A-4235 /boot/efi └─/dev/vda3 ext4 root d9dd46c5-8041-4c35-a62d-07cc68ebba5a / /dev/vdb └─/dev/vdb1 crypto_LUKS dabe7f11-68c3-41b9-9589-3e5ecd78eabf └─/dev/mapper/diskluks
接下来可以格式化(如果尚未格式化)并挂载这个解密后的设备。
mkfs.ext4 /dev/mapper/diskluks mount /dev/mapper/diskluks /mnt/
之后就可以正常使用已挂载的磁盘。
[root@Anolis8 mnt]# cat xxhh.txt this is a text
取消挂载并改名博加密存储卷
umount /mnt cryptsetup luksClose diskluk #cryptsetup luksClose diskluks 这条命令用于关闭一个已经打开的 LUKS 加密卷。具体来说,它会卸载与 diskluks 关联的映射设备,使得系统不再能够访问这个加密卷,直到再次使用 cryptsetup luksOpen 命令重新打开。 这条命令执行后,加密卷中的数据仍然存在并且保持加密状态,只是无法直接访问而已。如果需要重新访问该加密卷,则必须提供正确的密码或密钥文件来解锁它。
此时磁盘为加密状态,无法访问。如想重新访问的话,按照上面的步骤先解锁再挂载。