搜索
首页运维CentOS详解centos7基于luks对磁盘进行加密

下面由centos基础教程栏目给大家介绍centos7基于luks对磁盘进行加密的方法,希望对需要的朋友有所帮助!

详解centos7基于luks对磁盘进行加密

centos7基于luks对磁盘进行加密

LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,它不仅能通用于不同的Linux发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。

工具:cryptsetup(默认已经安装)

[root@node1 ~]# cryptsetup --help
cryptsetup 1.7.4
用法: cryptsetup [选项…] <动作> <动作特定参数>
 --version 打印软件包版本
 -v, --verbose 显示更详细的错误信息
 --debug 显示调试信息
 -c, --cipher=STRING 用于加密磁盘的密文(参见 /proc/crypto)
 -h, --hash=STRING 用于从密码创建加密密钥的哈希值
 -y, --verify-passphrase 两次询问密码以进行验证
 -d, --key-file=STRING 从文件读取密钥。
 --master-key-file=STRING 从文件读取卷(主)密钥。
 --dump-master-key 转储卷(主)密钥而不是键槽信息。
 -s, --key-size=位 加密密钥大小
 -l, --keyfile-size=字节 限制从密钥文件读取
 --keyfile-offset=字节 要从密钥文件跳过的字节数
 --new-keyfile-size=字节 限制从新增密钥文件的读取
 --new-keyfile-offset=字节 要从新增密钥文件跳过的字节数
 -S, --key-slot=INT 新密钥的槽号(默认为第一个可用的)
 -b, --size=扇区 设备大小
 -o, --offset=扇区 后端设备的起始偏移量
 -p, --skip=扇区 从开头要跳过的加密数据扇区数量
 -r, --readonly 创建只读映射
 -i, --iter-time=毫秒 LUKS 默认 PBKDF2 迭代时间(毫秒)
 -q, --batch-mode 不要请求确认
 -t, --timeout=秒 交互式密码提示符超时长度(秒)
 -T, --tries=INT 输入密码的最大重试频率
 --align-payload=扇区 于 <n> 个扇区边界处对其载荷数据 - 供 luks 格式用
 --header-backup-file=STRING 带有 LUKS 数据头和密钥槽备份的文件。
 --use-random 使用 /dev/random 生成卷密钥。
 --use-urandom 使用 /dev/urandom 生成卷密钥。
 --shared 与另一个不重合的加密段共享设备。
 --uuid=STRING 设备使用的 UUID 已占用。
 --allow-discards 允许设备的 discard(或称 TRIM)请求。
 --header=STRING 带有分离 LUKS 数据头的设备或文件。
 --test-passphrase 不要激活设备,仅检查密码。
 --tcrypt-hidden 使用隐藏数据头(隐藏 TCRYPT 设备)
 --tcrypt-system 设备为系统 TCRYPT 驱动器(带有引导器)。
 --tcrypt-backup 使用备份(次级)TCRYPT 标头。
 --veracrypt 同时扫描 VeraCrypt 兼容的设备。
 -M, --type=STRING 设备元数据类型:luks, 纯粹 (plain), loopaes, tcrypt.
 --force-password 禁用密码质量检查 (如果已启用)。
 --perf-same_cpu_crypt 使用 dm-crypt same_cpu_crypt 性能兼容性选项。
 --perf-submit_from_crypt_cpus 使用 dm-crypt submit_from_crypt_cpus 性能兼容性选项。

帮助选项:
 -?, --help 显示此帮助
 --usage 显示简短用法

<动作> 为其中之一:
 open <设备> [--type <类型>] [<名称>] - 以映射 <名称> 打开设备
 close <名称> - 关闭设备(移除映射)
 resize <名称> - 改变活动设备大小。
 status <名称> - 显示设备状态
 benchmark [--cipher <cipher>] - 测试密文
 repair <设备> - 尝试修复磁盘上的元数据
 erase <设备> - 清空所有密钥槽(移除加密密钥)
 luksFormat <设备> [<新密钥文件>] - 格式化一个 LUKS 设备
 luksAddKey <设备> [<新密钥文件>] - 向 LUKS 设备添加密钥
 luksRemoveKey <设备> [<密钥文件>] - 移除 LUKS 设备中指定的密钥或密钥文件
 luksChangeKey <设备> [<密钥文件>] - 更改 LUKS 设备中指定的密钥或密钥文件
 luksKillSlot <设备> <密钥槽> - 从 LUKS 设备清理标号为 <key slot> 的密钥
 luksUUID <设备> - 输出 LUKS 设备的 UUID(唯一标识符)
 isLuks <设备> - 从 <device> 探测 LUKS 分区标头
 luksDump <设备> - 调出 LUKS 分区信息
 tcryptDump <设备> - 调出 TCRYPT 设备信息
 luksSuspend <设备> - 挂起 LUKS 设备并清除密钥(冻结所有 IO 操作)。
 luksResume <设备> - 恢复已暂停的 LUKS 设备。
 luksHeaderBackup <设备> - 备份 LUKS 设备标头和密钥槽
 luksHeaderRestore <设备> - 恢复 LUKS 设备标头和密钥槽

你亦可使用老的 <动作> 语法别名:
 open: create (plainOpen), luksOpen, loopaesOpen, tcryptOpen
 close: remove (plainClose), luksClose, loopaesClose, tcryptClose

<name> 为要在 /dev/mapper 创建的设备
<device> 为加密设备
<key slot> 为需要更改的 LUKS 密钥槽
<key file> 提供给 luksAddKey 动作的密钥文件

默认集成的密钥和密码参数:
 密钥文件的最大大小:8192kB, 交互式密码的最大长度:512 (字符)
LUKS 的默认 PBKDF2 迭代时间:2000 (毫秒)

默认集成的设备密文参数:
 loop-AES:aes, 256 位密钥
 plain:aes-cbc-essiv:sha256, 密钥:256 位, 密码哈希:ripemd160
 LUKS1:aes-xts-plain64, 密钥:256 bits, LUKS 数据头哈希:sha256, RNG:/dev/urandom

1. 环境


  • OS: centos7
  • Kernel: 3.10.0-693.el7.x86_64
  • tools: cryptsetup.x86_64 0:1.7.4-4.el7

2. 创建加密分区


首先,我们添加一块硬盘/dev/sdb作为测试用,如下:

[root@node1 ~]# fdisk -l
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sda:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bfe7f

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 16777215 7339008 8e Linux LVM

磁盘 /dev/mapper/centos-root:6652 MB, 6652166144 字节,12992512 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos-swap:859 MB, 859832320 字节,1679360 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

下来我们格式化加密分区

[root@node1 ~]# cryptsetup luksFormat /dev/sdb

WARNING!
========
这将覆盖 /dev/sdb 上的数据,该动作不可取消。
Are you sure? (Type uppercase yes): YES  # 注意这里必须是大写的YES
输入密码:
确认密码:

5. 利用 key file 加密分区


除了密码之外,还可以选择使用 key file 解密你的硬盘,也就是相当于一个密钥,当然可以也可以只使用 key file 或者同时使用密码与 key file

5.1 生成随机 key file


[root@node1 ~]# dd if=/dev/urandom of=/root/enc.key bs=1 count=4096
记录了4096+0 的读入
记录了4096+0 的写出
4096字节(4.1 kB)已复制,0.00967434 秒,423 kB/秒
[root@node1 ~]# ls
anaconda-ks.cfg enc.key kubernetes

5.2 添加 key file 作为密码之一


[root@node1 ~]# cryptsetup luksAddKey /dev/sdb /root/enc.key 
输入任意已存在的密码:

6. 移除解密密码


移除普通密码

[root@node1 ~]# cryptsetup luksRemoveKey /dev/sdb
输入要移除的密码:

移除 key file 密码

[root@node1 ~]# cryptsetup luksRemoveKey -d /root/enc.key /dev/sdb
WARNING!
========
这是最后一个密钥槽。设备在清空此密钥后将不可用。
Are you sure? (Type uppercase yes): YES

注意:千万不要将所有密码移除,至少需要留有一个密码访问设备,移除操作不可撤销

7分区映射与挂载


7.1 分区映射


[root@node1 ~]# cryptsetup luksOpen /dev/sdb data2
输入 /dev/sdb 的密码:

7.2 key file分区映射


也可以通过key file做映射

[root@node1 ~]# cryptsetup luksOpen -d /root/enc.key /dev/sdb data2

7.3 创建文件系统


在挂载使用之前,我们仍然需要对设备创建文件系统才可以使用,可以选择任何你喜欢的文件系统,例如 btrfs,ext4,vfat,ntfs等

[root@node1 ~]# mkfs.ext4 /dev/mapper/data2 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2096640 blocks
104832 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成 
正在写入inode表: 完成 
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

7.4 挂载


现在可以像正常分区一样挂载我们的加密分区设备了

[root@node1 ~]# mkdir /data2
[root@node1 ~]# mount /dev/mapper/data2 /data2
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 6.2G 1.8G 4.5G 28% /
devtmpfs 4.4G 0 4.4G 0% /dev
tmpfs 4.4G 0 4.4G 0% /dev/shm
tmpfs 4.4G 8.5M 4.4G 1% /run
tmpfs 4.4G 0 4.4G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 883M 0 883M 0% /run/user/0
/dev/mapper/data2 7.8G 36M 7.3G 1% /data2

7.5 卸载挂载点并关闭加密分区


[root@node1 /]# umount /data2
[root@node1 /]# cryptsetup luksClose data2

8. 总结


在完成整个步骤以后,您现在需要做的就是妥善保管您的加密存储,可采用同样的方式加密多个设备进行备份,因为谁也不能保证这移动设备会不会在什么时候丢掉。

以上是详解centos7基于luks对磁盘进行加密的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:cnblogs。如有侵权,请联系admin@php.cn删除
CENTOS:社区驱动的Linux分销CENTOS:社区驱动的Linux分销Apr 17, 2025 am 12:03 AM

CentOS是一个稳定的、企业级的Linux发行版,适用于服务器和企业环境。1)它基于RedHatEnterpriseLinux,提供免费、开源且兼容的操作系统。2)CentOS使用Yum包管理系统,简化软件安装和更新。3)支持高级自动化管理,如使用Ansible。4)常见错误包括软件包依赖和服务启动问题,可通过日志文件解决。5)性能优化建议包括使用轻量级软件、定期清理系统和优化内核参数。

Centos之后发生的事情:前方的道路Centos之后发生的事情:前方的道路Apr 16, 2025 am 12:07 AM

CentOS的替代方案包括RockyLinux、AlmaLinux、OracleLinux和SLES。1)RockyLinux和AlmaLinux提供与RHEL兼容的二进制包和长期支持。2)OracleLinux提供企业级支持和Ksplice技术。3)SLES提供长期支持和稳定性,但商业许可可能增加成本。

Centos:探索替代方案Centos:探索替代方案Apr 15, 2025 am 12:03 AM

CentOS的替代方案包括UbuntuServer、Debian、Fedora、RockyLinux和AlmaLinux。1)UbuntuServer适合基本操作,如更新软件包和配置网络。2)Debian适用于高级用法,如使用LXC管理容器。3)RockyLinux可通过调整内核参数优化性能。

centos关机命令行centos关机命令行Apr 14, 2025 pm 09:12 PM

CentOS 关机命令为 shutdown,语法为 shutdown [选项] 时间 [信息]。选项包括:-h 立即停止系统;-P 关机后关电源;-r 重新启动;-t 等待时间。时间可指定为立即 (now)、分钟数 ( minutes) 或特定时间 (hh:mm)。可添加信息在系统消息中显示。

centos和ubuntu的区别centos和ubuntu的区别Apr 14, 2025 pm 09:09 PM

CentOS 和 Ubuntu 的关键差异在于:起源(CentOS 源自 Red Hat,面向企业;Ubuntu 源自 Debian,面向个人)、包管理(CentOS 使用 yum,注重稳定;Ubuntu 使用 apt,更新频率高)、支持周期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社区支持(CentOS 侧重稳定,Ubuntu 提供广泛教程和文档)、用途(CentOS 偏向服务器,Ubuntu 适用于服务器和桌面),其他差异包括安装精简度(CentOS 精

centos配置ip地址centos配置ip地址Apr 14, 2025 pm 09:06 PM

CentOS 中配置 IP 地址的步骤:查看当前网络配置:ip addr编辑网络配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0更改 IP 地址:编辑 IPADDR= 行更改子网掩码和网关(可选):编辑 NETMASK= 和 GATEWAY= 行重启网络服务:sudo systemctl restart network验证 IP 地址:ip addr

centos如何安装centos如何安装Apr 14, 2025 pm 09:03 PM

CentOS 安装步骤:下载 ISO 映像并刻录可引导媒体;启动并选择安装源;选择语言和键盘布局;配置网络;分区硬盘;设置系统时钟;创建 root 用户;选择软件包;开始安装;安装完成后重启并从硬盘启动。

centos8重启sshcentos8重启sshApr 14, 2025 pm 09:00 PM

重启 SSH 服务的命令为:systemctl restart sshd。步骤详解:1. 访问终端并连接到服务器;2. 输入命令:systemctl restart sshd;3. 验证服务状态:systemctl status sshd。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)