Linux分区怎样进行加密
导读:Linux 分区加密实操指南 一 方案选择与原理 推荐使用 LUKS/dm-crypt:这是 Linux 上的事实标准,工作在块设备层,提供透明的磁盘加密;通过 cryptsetup 工具创建、打开与管理加密卷,支持多密钥槽、密码/密钥文...
Linux 分区加密实操指南
一 方案选择与原理
- 推荐使用 LUKS/dm-crypt:这是 Linux 上的事实标准,工作在块设备层,提供透明的磁盘加密;通过 cryptsetup 工具创建、打开与管理加密卷,支持多密钥槽、密码/密钥文件、以及与发行版安装器的无缝集成。适合加密系统盘、数据盘、外置盘等。
- 目录级替代 eCryptfs:堆叠式文件系统,适合加密用户主目录或特定目录,登录自动挂载/登出卸载,性能略低于 LUKS,且不适合全盘加密。
- 场景补充:跨平台或移动介质可用 VeraCrypt;云同步目录可用 Cryptomator 等。
二 快速上手 LUKS 加密一个数据分区
- 准备与确认
- 确认目标分区(如:/dev/sdb1 或 /dev/nvme0n1p2),确保已备份数据,后续操作会覆盖分区内容。
- 安装工具(如未预装):Debian/Ubuntu 执行
sudo apt install cryptsetup;Fedora 执行sudo dnf install cryptsetup。
- 初始化加密分区
- 交互式设置口令:
sudo cryptsetup luksFormat /dev/sdb1 - 或使用密钥文件(更安全、便于自动化):
sudo dd if=/dev/urandom of=/etc/cryptfs.key bs=1 count=4096 sudo chmod 600 /etc/cryptfs.key sudo cryptsetup luksFormat /dev/sdb1 /etc/cryptfs.key
- 交互式设置口令:
- 打开并映射
- 口令方式:
sudo cryptsetup open /dev/sdb1 encrypted_part - 密钥文件方式:
sudo cryptsetup open --key-file=/etc/cryptfs.key /dev/sdb1 encrypted_part - 成功后会出现 /dev/mapper/encrypted_part。
- 口令方式:
- 创建文件系统并挂载
sudo mkfs.ext4 /dev/mapper/encrypted_part sudo mkdir -p /mnt/secure sudo mount /dev/mapper/encrypted_part /mnt/secure - 卸载与关闭
sudo umount /mnt/secure sudo cryptsetup close encrypted_part - 提示
- 使用 SSD 且设备支持 TRIM 时,可在打开时加
--allow-discards以获得更好性能(注意隐私影响):
sudo cryptsetup --allow-discards luksOpen /dev/sdb1 encrypted_part
- 使用 SSD 且设备支持 TRIM 时,可在打开时加
三 开机自动解锁与挂载
- 编辑 /etc/crypttab(使用 UUID 更稳定,避免设备名变化)
- 口令解锁(启动时会提示输入口令):
encrypted_part UUID=< 你的分区UUID> none luks - 密钥文件解锁(请确保密钥文件权限为 600,且妥善备份):
encrypted_part UUID=< 你的分区UUID> /etc/cryptfs.key luks
- 口令解锁(启动时会提示输入口令):
- 编辑 /etc/fstab
/dev/mapper/encrypted_part /mnt/secure ext4 defaults 0 2
- 使配置生效
- 更新 initramfs(视发行版而定):
Ubuntu/Debian:sudo update-initramfs -u
RHEL/CentOS/Fedora:sudo dracut -f
- 更新 initramfs(视发行版而定):
- 说明
- 若使用密钥文件,需确保其可用(如放入 initramfs 或网络密钥服务);口令解锁最通用。
四 系统盘加密与注意事项
- 分区规划
- 系统盘加密通常需将 /boot 单独分区(不加密),其余如 /、/home 放入 LUKS 容器;安装器(如 Ubuntu 的 ubiquity、Fedora 的 anaconda)提供“加密 LVM”选项可简化流程。
- 解锁与引导
- 系统启动会先提示输入 LUKS 口令,解锁后由 initramfs 挂载根文件系统;确保 initramfs 包含 cryptsetup 与必要驱动。
- 交换分区与休眠
- 建议对 swap 也加密(可用 LUKS 分区或 swapfile 置于 LUKS 卷中),并在休眠/恢复时正确处理密钥,避免明文泄露。
- 备份与恢复
- 备份 LUKS 头部(极其重要,头部损坏将导致数据不可解密):
sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /root/luks-header-backup.img - 恢复:
sudo cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /root/luks-header-backup.img
- 备份 LUKS 头部(极其重要,头部损坏将导致数据不可解密):
- 风险提示
- 加密无法防止所有风险,尤其是 物理损坏导致的头部/扇区损坏;务必做好离线备份与恢复演练。
五 常用命令速查
- 查看设备:
lsblk、blkid - 初始化:
sudo cryptsetup luksFormat /dev/sdX [keyfile] - 打开/关闭:
sudo cryptsetup open [--key-file=] /dev/sdX name、sudo cryptsetup close name - 查看头部信息:
sudo cryptsetup luksDump /dev/sdX - 文件系统:
sudo mkfs.ext4 /dev/mapper/name、sudo mount /dev/mapper/name /mnt/point - 自动挂载:
/etc/crypttab、/etc/fstab与update-initramfs/dracut配合使用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux分区怎样进行加密
本文地址: https://pptw.com/jishu/788518.html
