前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Linux中使用'Cryptsetup'工具设置加密的文件系统和交换空间

如何在Linux中使用'Cryptsetup'工具设置加密的文件系统和交换空间

作者头像
用户2323866
修改2021-06-18 10:54:34
4.6K0
修改2021-06-18 10:54:34
举报
文章被收录于专栏:技术派技术派

加密的理念是只允许受信任的人访问您的敏感数据,并保护它不会落入错误的手中,以防丢失或盗窃您的机器/硬盘。

简单来说,一个键用于“ 锁定 ”访问的信息,以便它当系统正在运行,并且由授权用户解锁变得可用。 这意味着,如果一个人试图检查磁盘内容(将其插入到自己的系统或通过使用LiveCD / DVD / USB引导机器),他将只找到不可读的数据,而不是实际的文件。

在这篇文章中,我们将讨论如何建立与对于dm-crypt(简称设备映射器和加密),标准的内核级加密工具加密的文件系统。 请注意,由于DM-隐窝是块级工具,它只能被用于加密完整设备,分区或回路设备(不会在常规的文件或目录工作)。

准备驱动器/分区/回路设备进行加密

因为我们会擦出( 为/ dev / sdb的 )出现在我们所选择的驱动器的所有数据,首先,我们需要进一步讨论之前执行包含在该分区中的所有重要文件的备份。

擦拭从/ dev / sdb的所有数据。 我们要在这里用dd命令,但你也可以用其它工具,如一丝一毫做到这一点。 接下来,我们将在此设备上创建一个分区中,/ dev / sdb1的 ,在后面的说明第4部分-在Linux中创建分区和文件系统的LFCS系列。

代码语言:javascript
复制
# dd if=/dev/urandom of=/dev/sdb bs=4096 
测试加密支持

在我们继续进行之前,我们需要确保我们的内核已经编译加密支持:

代码语言:javascript
复制
# grep -i config_dm_crypt /boot/config-$(uname -r)
检查Linux中的加密支持
检查Linux中的加密支持

检查加密支持

作为图像在上面概述的,DM-隐窝内核模块需要为了建立加密被装载。

安装Cryptsetup

Cryptsetup是用于创建,配置,访问和管理使用dm-crypt加密文件系统的一个前端接口。

代码语言:javascript
复制
# aptitude update && aptitude install cryptsetup 		[On Ubuntu]
# yum update && yum install cryptsetup 				[On CentOS] 
# zypper refresh && zypper install cryptsetup 			[On openSUSE]
设置加密分区

对于cryptsetup的默认运行方式是LUKS(Linux的统一密钥设置 ),所以我们会坚持下去。 我们将首先设置LUKS分区和密码:

代码语言:javascript
复制
# cryptsetup -y luksFormat /dev/sdb1
创建加密分区
创建加密分区

创建加密分区

上述命令运行cryptsetup使用默认参数,可以与上市,

代码语言:javascript
复制
# cryptsetup --version
Cryptsetup参数
Cryptsetup参数

Cryptsetup参数

如果要更改密码哈希 ,或关键参数,您可以使用-cipher,-hash-key大小的标志,分别与从/ proc /密码的取值。

接下来,我们需要打开LUKS分区(我们将提示您输入之前输入的密码)。 如果认证成功,我们的加密分区将可里面的/ dev /映射器使用指定的名称:

代码语言:javascript
复制
# cryptsetup luksOpen /dev/sdb1 my_encrypted_partition
加密分区
加密分区

加密分区

现在,我们将进行格式化分区为ext4。

代码语言:javascript
复制
# mkfs.ext4 /dev/mapper/my_encrypted_partition

并创建一个挂载点来挂载加密分区。 最后,我们可能需要确认安装操作是否成功。

代码语言:javascript
复制
# mkdir /mnt/enc
# mount /dev/mapper/my_encrypted_partition /mnt/enc
# mount | grep partition
在Linux中挂载加密分区
在Linux中挂载加密分区

安装加密分区

当您完成对加密文件系统的写入或读取操作时,只需卸载它

代码语言:javascript
复制
# umount /mnt/enc

并关闭LUKS分区使用,

代码语言:javascript
复制
# cryptesetup luksClose my_encrypted_partition
测试加密

最后,我们将检查我们的加密分区是否安全:

1.打开LUKS分区

代码语言:javascript
复制
# cryptsetup luksOpen /dev/sdb1 my_encrypted_partition

2.输入密码

3.安装分区

代码语言:javascript
复制
# mount /dev/mapper/my_encrypted_partition /mnt/enc

4.在装载点内创建一个虚拟文件。

代码语言:javascript
复制
# echo “This is Part 3 of a 12-article series about the LFCE certification” > /mnt/enc/testfile.txt

5.验证您是否可以访问刚刚创建的文件。

代码语言:javascript
复制
# cat /mnt/enc/testfile.txt

6.卸载文件系统。

代码语言:javascript
复制
# umount /mnt/enc

7.关闭LUKS分区。

代码语言:javascript
复制
# cryptsetup luksClose my_encrypted_partition

8.尝试将该分区装载为常规文件系统。 它应该指示一个错误。

代码语言:javascript
复制
# mount /dev/sdb1 /mnt/enc
测试分区上的加密
测试分区上的加密

测试分区上的加密

加密交换空间以进一步确保安全

先前输入使用加密分区的密码存储在RAM内存,而它的开放。 如果有人可以得到他的手上这个密钥,他将能够解密数据。 这在笔记本电脑的情况下尤其容易做到,因为休眠时RAM的内容保存在交换分区上。

为了避免将您的密钥的副本留给窃贼,请按照以下步骤加密交换分区:

1创建要用作具有(在本例中的/ dev / SDD1)适当大小的交换和如前所述进行加密的分区。 命名为方便起见,它只是“ 交换 ”“。

2.将其设置为交换并激活它。

代码语言:javascript
复制
# mkswap /dev/mapper/swap
# swapon /dev/mapper/swap

3.接下来,更改/ etc / fstab中相应的条目。

代码语言:javascript
复制
/dev/mapper/swap none        	swap	sw          	0   	0

4.最后,编辑/ etc / crypttab和重启。

代码语言:javascript
复制
swap               /dev/sdd1         /dev/urandom swap

系统完成引导后,您可以验证交换空间的状态:

代码语言:javascript
复制
# cryptsetup status swap
检查交换加密状态
检查交换加密状态

检查交换加密状态

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备驱动器/分区/回路设备进行加密
    • 测试加密支持
      • 安装Cryptsetup
        • 设置加密分区
          • 测试加密
      • 加密交换空间以进一步确保安全
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档