首页主机资讯Linux分区怎样进行加密

Linux分区怎样进行加密

时间2026-01-21 11:28:03发布访客分类主机资讯浏览439
导读: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

三 开机自动解锁与挂载

  • 编辑 /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 或网络密钥服务);口令解锁最通用。

四 系统盘加密与注意事项

  • 分区规划
    • 系统盘加密通常需将 /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
  • 风险提示
    • 加密无法防止所有风险,尤其是 物理损坏导致的头部/扇区损坏;务必做好离线备份与恢复演练。

五 常用命令速查

  • 查看设备:lsblkblkid
  • 初始化:sudo cryptsetup luksFormat /dev/sdX [keyfile]
  • 打开/关闭:sudo cryptsetup open [--key-file=] /dev/sdX namesudo cryptsetup close name
  • 查看头部信息:sudo cryptsetup luksDump /dev/sdX
  • 文件系统:sudo mkfs.ext4 /dev/mapper/namesudo mount /dev/mapper/name /mnt/point
  • 自动挂载:/etc/crypttab/etc/fstabupdate-initramfs/dracut 配合使用

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux分区怎样进行加密
本文地址: https://pptw.com/jishu/788518.html
Linux分区如何进行扩容 Linux分区如何检测错误

游客 回复需填写必要信息