温馨提示×

Linux分区:如何加密分区以保护数据安全

小樊
34
2025-11-22 09:19:27
栏目: 网络安全

Linux分区加密实操指南

一、方案选型与准备

  • 推荐方案:使用 LUKS/dm-crypt(块设备级加密),通过 cryptsetup 管理,适合加密整个分区、磁盘或作为容器使用,具备多口令、密钥槽等能力。若仅需目录级加密,可考虑 eCryptfs/EncFS(堆叠式文件系统,使用更轻量)。全新安装系统时,部分发行版(如 Ubuntu 安装器的 Alternate/高级安装)支持“Guided – use entire disk and set up encrypted LVM”,可一键完成全盘加密与 LVM 配置。操作前务必备份数据,加密会清空目标分区数据;准备好 root/sudo 权限与可引导介质。

二、使用 LUKS 加密一个数据分区的标准步骤

  • 安装工具
    • Debian/Ubuntu:sudo apt-get install cryptsetup
    • RHEL/CentOS:sudo yum install cryptsetup
  • 准备分区
    • 使用 fdisk /dev/sdXparted 创建分区(如 /dev/sdb1),确认无误后写入分区表。
  • 加密分区(会清空数据)
    • 交互口令:sudo cryptsetup luksFormat /dev/sdb1
    • 或指定密钥文件:sudo cryptsetup luksFormat /dev/sdb1 /path/keyfile
  • 打开并映射
    • 交互口令:sudo cryptsetup luksOpen /dev/sdb1 enc_vol
    • 密钥文件:sudo cryptsetup luksOpen --key-file=/path/keyfile /dev/sdb1 enc_vol
  • 创建文件系统并挂载
    • sudo mkfs.ext4 /dev/mapper/enc_vol
    • sudo mkdir -p /mnt/enc
    • sudo mount /dev/mapper/enc_vol /mnt/enc
  • 卸载与关闭
    • sudo umount /mnt/enc
    • sudo cryptsetup luksClose enc_vol
  • 验证与查看
    • 查看映射:ls -l /dev/mapper/
    • 查看头信息:sudo cryptsetup luksDump /dev/sdb1
  • 提示
    • 使用密钥文件时,注意其权限(如 0600)与备份;口令/密钥丢失将无法恢复数据。

三、开机自动解锁与挂载(含 LUKS 头备份)

  • 使用 UUID 更稳健(避免设备名变动)
    • 获取分区 UUID:blkid /dev/sdb1
  • 配置自动解锁:编辑 /etc/crypttab
    • 示例(交互口令,按提示输入):
      • enc_vol UUID=<你的UUID> none luks
    • 示例(密钥文件,需 root 可读):
      • enc_vol UUID=<你的UUID> /etc/cryptfs.key luks,keyfile-timeout=10
  • 配置自动挂载:编辑 /etc/fstab
    • /dev/mapper/enc_vol /mnt/enc ext4 defaults 0 0
  • 测试
    • sudo cryptdisks_start enc_vol(触发解锁)
    • sudo mount -a(挂载所有 fstab 项)
  • 重要备份:LUKS 头与分区表
    • 备份 LUKS 头:sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /root/luks-header-sdb1.bak
    • 备份分区表(MBR 场景示例):sudo dd if=/dev/sda of=./mbr-partitions.img skip=446 bs=1 count=66
    • 建议将备份离线保存;LUKS 头一旦损坏,数据通常不可恢复。

四、进阶场景与替代方案

  • 加密整个磁盘或 LVM(含系统盘)
    • 安装阶段选择“Guided – use entire disk and set up encrypted LVM”,或手动对物理分区 luksFormat 后用 pvcreate /dev/mapper/<name> 创建 PV,加入 LVM 再建 LV、格式化与挂载。适合需要全盘/主目录加密的场景。
  • 目录级加密(无需改动分区)
    • eCryptfssudo mount -t ecryptfs ~/encrypted ~/decrypted(按向导选择算法与选项),适合用户目录或特定目录的透明加密。
    • EncFSencfs ~/encrypted ~/decrypted,FUSE 用户态实现,便于按需挂载与卸载。
  • 多平台或移动介质
    • VeraCrypt:支持跨平台、容器/分区/全盘加密,适合与 Windows/macOS 共享介质。

五、安全与恢复要点

  • 强口令与密钥管理:使用足够长且随机的口令;密钥文件妥善备份并限制权限(如 0600),丢失即无法访问数据。
  • 性能与场景:加密会带来一定 CPU 开销;对系统盘/大量小文件场景影响更明显,可结合 LVM 做灵活卷管理。
  • 备份与演练:定期备份 LUKS 头 与关键数据;在演练环境中验证自动解锁与恢复流程,确保真实故障时可恢复。
  • 风险提示:加密操作会不可逆清空目标分区;生产环境务必先完整备份,并在非生产设备上验证流程。

0