文章目录
-
-
- 前言:
- 工具:
- 原理:
- 操作步骤:
-
- 1、对磁盘进行分区格式化
- 2、对新建的分区进行加密
- 3、挂载测试
-
-
- 1、 加密情况下无法挂载
- 2、打开映射
- 3、查看映射状态
- 4、对映射进行格式化和挂载
- 5、格式化后映射进行挂载
-
- 使用crysetup关闭分区
-
前言:
因为保密需要,一般系统会对文件或者磁盘进行加密。 今天我们来一起讨论下Linux磁盘的加密技术。
工具:
cryptsetup
原理:
cryptsetup其实是一种设备的映射关系,我们用它来把一个设备映射成另外一个设备,然后对这个新的设备进行操作,并进行加密,这样就不会使我们的原设备直接被使用,从而达到一种安全的效果。
操作步骤:
1、对磁盘进行分区格式化
2、对新建的分区进行加密
3、映射挂载测试
1、对磁盘进行分区格式化
一、进行分区
[[email protected] ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 8月 24 18:55 /dev/sdb
[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x5ca94e43 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
二、进行格式化
[email protected] ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 8月 24 19:09 /dev/sdb
brw-rw----. 1 root disk 8, 17 8月 24 19:09 /dev/sdb1
[[email protected] ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
mkfx.xfs 是centos 7中的 文件格式,mkfs.ext(1,2,3,4) 是对于centos 6 的文件格式
2、对新建的分区进行加密
[[email protected] ~]# cryptsetup luksFormat /dev/sdb1
WARNING!
========
这将覆盖 /dev/sdb1 上的数据,该动作不可取消。
Are you sure? (Type uppercase yes): YES
输入 /dev/sdb1 的口令:
确认密码:
密码质量检查失败:
密码未通过字典检查 - 过于简单化/系统化
[[email protected] ~]# cryptsetup luksFormat /dev/sdb1
WARNING!
========
这将覆盖 /dev/sdb1 上的数据,该动作不可取消。
Are you sure? (Type uppercase yes): YES
输入 /dev/sdb1 的口令: #密码数8位以上,不能过于简单化
确认密码:
3、挂载测试
1、 加密情况下无法挂载
[[email protected] ~]# mount /dev/sdb1 /mnt
mount: 未知的文件系统类型“crypto_LUKS”
2、打开映射
[[email protected] ~]# cryptsetup luksOpen /dev/sdb1 my_disk
输入 /dev/sdb1 的口令:
3、查看映射状态
[[email protected] ~]# cryptsetup status my_disk
/dev/mapper/my_disk is active.
type: LUKS1
cipher: aes-xts-plain64
keysize: 256 bits
key location: dm-crypt
device: /dev/sdb1
sector size: 512
offset: 4096 sectors
size: 41936896 sectors
mode: read/write
4、对映射进行格式化和挂载
[[email protected] ~]# mkfs.xfs /dev/mapper/my_disk
meta-data=/dev/mapper/my_disk isize=512 agcount=4, agsize=1310528 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242112, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5、格式化后映射进行挂载
[[email protected] ~]# mount /dev/mapper/my_disk /mnt
[[email protected] ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 894M 0 894M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 11M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 4.0G 14G 24% /
/dev/sda1 1014M 184M 831M 19% /boot
tmpfs 182M 4.0K 182M 1% /run/user/42
tmpfs 182M 24K 182M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/my_disk 20G 33M 20G 1% /mnt
可以看到已经挂载成功,挂载的是一个映射关系,而不是硬盘本身。
使用crysetup关闭分区
卸载映射
[[email protected] ~]# umount /mnt/
[[email protected] ~]# ll /dev/mapper/my_disk
lrwxrwxrwx. 1 root root 7 8月 24 19:24 /dev/mapper/my_disk -> ../dm-2
[[email protected] ~]# cryptsetup luksClose /dev/mapper/my_disk
[[email protected] ~]# ll /dev/mapper/my_disk
ls: 无法访问/dev/mapper/my_disk: 没有那个文件或目录
这里用的是luksClose ,关闭映射分区后,之前的映射分区就不存在了。