Linux分区怎样加密
导读:Linux 分区加密实操指南 一、方案与原理 常用方案是使用 LUKS/dm-crypt:内核的 dm-crypt 提供透明块设备加密,cryptsetup 是管理 LUKS 的命令行工具,支持在分区、整盘、LVM 逻辑卷、软件 RAID...
Linux 分区加密实操指南
一、方案与原理
- 常用方案是使用 LUKS/dm-crypt:内核的 dm-crypt 提供透明块设备加密,cryptsetup 是管理 LUKS 的命令行工具,支持在分区、整盘、LVM 逻辑卷、软件 RAID、可移动介质等上建立加密卷。LUKS 将必要的元数据与密钥管理信息存放在磁盘上,便于使用与迁移。若需要图形化,桌面环境可用 GNOME Disks 进行分区加密;跨平台或移动介质也可用 VeraCrypt。
二、命令行步骤 LUKS 加密一个分区
- 准备分区(示例为 /dev/vdb1):先备份数据,卸载目标分区,确认设备名无误。
- 安装工具(视发行版):如 yum install cryptsetup 或 apt install cryptsetup。
- 初始化加密分区(会清空数据,务必确认设备):
- 交互口令方式:
sudo cryptsetup luksFormat /dev/vdb1 - 密钥文件方式(更安全,便于自动化):
sudo dd if=/dev/urandom of=/root/key0.key bs=1 count=4096 sudo cryptsetup -q -s 512 luksFormat /dev/vdb1 /root/key0.key
- 交互口令方式:
- 打开加密卷并创建文件系统:
sudo cryptsetup open -d /root/key0.key /dev/vdb1 enc_data # 生成 /dev/mapper/enc_data sudo mkfs.xfs /dev/mapper/enc_data # 或 mkfs.ext4 sudo mount /dev/mapper/enc_data /mnt - 日常关闭与重新打开:
sudo umount /mnt sudo cryptsetup close enc_data # 重新打开 sudo cryptsetup open -d /root/key0.key /dev/vdb1 enc_data sudo mount /dev/mapper/enc_data /mnt - 提示:锁定后直接挂载原分区会失败(显示为 crypto_LUKS),必须先 open 再挂载。
三、开机自动解锁与挂载
- 使用密钥文件时,配置自动解锁与自动挂载:
- 将密钥文件权限设为仅 root 可读写:
sudo chmod 600 /root/key0.key - 添加密钥到 LUKS(可同时保留口令):
sudo cryptsetup luksAddKey /dev/vdb1 /root/key0.key - 编辑 /etc/crypttab(映射名 设备 密钥文件/选项):
enc_data /dev/vdb1 /root/key0.key - 编辑 /etc/fstab(使用映射路径):
/dev/mapper/enc_data /mnt xfs defaults 0 0 - 测试(不影响当前会话的重启前验证):
sudo systemctl daemon-reload sudo cryptdisks_start enc_data sudo mount -a
- 将密钥文件权限设为仅 root 可读写:
- 说明:若使用口令解锁,可在 /etc/crypttab 中使用 keyscript 或交互式提示;服务器环境更推荐密钥文件或 TPM/网络密钥解锁。
四、其它常见场景
- 使用 LUKS + LVM:先对物理分区加密并 open,得到 /dev/mapper/crypt,再作为 PV 加入 LVM,创建 VG/LV 后格式化挂载,便于灵活扩容与快照。
- 文件级加密:对敏感文件/目录可用 GnuPG(对称或公私钥)或 EncFS(用户态堆叠式 FUSE 加密);跨平台移动盘可用 VeraCrypt。
五、安全与恢复要点
- 加密是破坏性操作:执行 luksFormat/mkfs 会清空设备数据,操作前务必完整备份。
- 密钥与权限:密钥文件严格限制权限(如 600),妥善存放;多密钥提升可用性与应急能力(如同时保留口令与密钥文件)。
- SSD/TRIM 与性能:在支持的设备上,使用 –allow-discards 可在 LUKS 开启 discard/TRIM,有助于 SSD 磨损均衡,但在部分场景存在信息泄露风险,需结合安全策略权衡。
- 应急与撤销:牢记 LUKS 头部备份(如 cryptsetup luksHeaderBackup),可在头部损坏时尝试恢复;撤销加密需先备份数据,然后关闭映射并对底层设备重新 mkfs。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux分区怎样加密
本文地址: https://pptw.com/jishu/748124.html
