一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux分区:如何实现分区加密

时间:2026-08-03 12:42:56 编辑:袖梨 来源:一聚教程网

Linux分区加密实操指南

一 方案与准备

  1. 推荐使用 LUKS/dm-crypt + cryptsetup,这是 Linux 上通用、兼容性好的块设备加密方案,支持多口令/密钥文件、基于 device-mapper 的透明加解密。适用于 /home、数据盘、可移动盘 等场景。若仅需目录级加密,可考虑 eCryptfs/EncFS,但对系统盘/启动盘支持不如 LUKS 直接。准备事项:
    1. 安装工具:sudo apt-get install cryptsetupsudo yum install cryptsetup(部分发行版为 cryptsetup-luks)。
    2. 备份数据:加密会不可逆覆盖目标分区数据,务必先完整备份。
    3. 规划分区:用 fdisk/parted 创建分区(如 /dev/sdb1),确认设备路径无误。

二 标准步骤 LUKS 加密分区

  1. 创建分区(示例为 /dev/sdb1)
    1. sudo fdisk /dev/sdb → 新建分区 → 写入分区表。
  2. 初始化 LUKS 加密容器
    1. 交互口令:sudo cryptsetup luksFormat /dev/sdb1
    2. 或指定密钥文件:sudo cryptsetup luksFormat /dev/sdb1 /etc/cryptfs.key
    3. 注意:执行 luksFormat 会清空分区数据,命令确认时输入大写的 YES。
  3. 打开并映射加密设备
    1. 交互口令:sudo cryptsetup luksOpen /dev/sdb1 encrypted_partition
    2. 密钥文件:sudo cryptsetup open --key-file=/etc/cryptfs.key /dev/sdb1 encrypted_partition
    3. 成功后生成映射设备 /dev/mapper/encrypted_partition。
  4. 在映射设备上创建文件系统并挂载
    1. sudo mkfs.ext4 /dev/mapper/encrypted_partition
    2. sudo mkdir -p /mnt/encrypted_partition
    3. sudo mount /dev/mapper/encrypted_partition /mnt/encrypted_partition
  5. 日常卸载与关闭
    1. sudo umount /mnt/encrypted_partition
    2. sudo cryptsetup luksClose encrypted_partition
  6. 验证
    1. lsblkcryptsetup status /dev/mapper/encrypted_partitiondf -h 查看状态与挂载。

三 开机自动解锁与挂载

  1. 生成密钥文件(可选,便于自动化)
    1. sudo dd if=/dev/urandom of=/etc/cryptfs.key bs=1k count=4
    2. sudo chmod 600 /etc/cryptfs.key
    3. 将密钥加入 LUKS:sudo cryptsetup luksAddKey /dev/sdb1 /etc/cryptfs.key
  2. 配置自动解锁:编辑 /etc/crypttab
    1. 建议用 UUID 识别设备,避免设备名变动:
      1. 获取 UUID:blkid /dev/sdb1
    2. 示例行(使用密钥文件):
      1. encrypted_partition UUID=xxxx-xxxx /etc/cryptfs.key luks
    3. 如需每次手动输入口令,第三列留空(不建议用于无人值守场景)。
  3. 配置自动挂载:编辑 /etc/fstab
    1. /dev/mapper/encrypted_partition /mnt/encrypted_partition ext4 defaults 0 0
  4. 测试
    1. sudo cryptdisks_start encrypted_partition(触发解锁)
    2. sudo mount -a(挂载所有 fstab 条目)
    3. 重启验证自动解锁与挂载是否生效。

四 密钥管理与备份恢复

  1. 多口令与密钥文件
    1. 添加额外口令:sudo cryptsetup luksAddKey /dev/sdb1
    2. 删除口令:sudo cryptsetup luksRemoveKey /dev/sdb1
    3. 查看密钥槽:sudo cryptsetup luksDump /dev/sdb1
  2. 备份 LUKS 头部
    1. 头部损坏将导致无法解密,建议离线备份:
      1. sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /root/sdb1-luks-header.bak
      2. 恢复:sudo cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /root/sdb1-luks-header.bak
  3. 密钥文件安全
    1. 设置严格权限(如 600),纳入备份与变更管控;丢失密钥等同于丢失数据。

五 常见问题与注意事项

  1. 性能与场景
    1. 加密/解密由 CPU 完成,现代处理器硬件加速下影响通常可接受;对 数据库/高 IOPS 场景建议进行压测评估。
  2. 故障与恢复
    1. 加密对介质错误更敏感,LUKS 头部/密钥槽损坏会导致整卷不可读;务必做好离线备份与演练恢复流程。
  3. 设备名漂移
    1. 生产环境优先使用 UUID 配置 /etc/crypttab/etc/fstab,避免插拔磁盘或重启后设备名变化导致解锁/挂载失败。
  4. 安全性提示
    1. 使用高强度口令与最小权限的密钥文件;对可移动介质实施物理防护与离线备份策略。

热门栏目