温馨提示×

VirtualBox虚拟机在Ubuntu上如何加密

小樊
42
2026-01-06 17:17:07
栏目: 云计算

在 Ubuntu 上加密 VirtualBox 虚拟机的可行方案

  • 方案一:启用 VirtualBox 全磁盘加密(VM Encryption),对虚拟机磁盘与配置进行加密,主机不持密钥无法启动或导出该虚拟机。适合需要整机防护、合规与便携的场景。
  • 方案二:在 客户机内使用 LUKS 分区/容器 加密数据盘或整个系统盘,适合已有虚拟机、只需保护其中数据的场景。

方案一 VirtualBox 全磁盘加密步骤

  • 检查扩展包与能力

    • 确认已安装 Oracle VM VirtualBox Extension Pack,它提供 Disk Encryption / NVMe / full VM encryption 等能力。
    • 在主机执行:
      • 查看版本:vboxmanage -v
      • 查看扩展包:vboxmanage list extpacks
      • 安装扩展包(示例,请与你的版本一致):
        wget https://download.virtualbox.org/virtualbox/7.0.14/Oracle_VM_VirtualBox_Extension_Pack-7.0.14-161095.vbox-extpack
        sudo vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-7.0.14-161095.vbox-extpack
      • 若已安装,列表中应能看到 Extension Pack 且包含 “Disk Encryption, … full VM encryption”。
  • 加密已有虚拟机(命令行)

    • 关闭虚拟机:vboxmanage controlvm “<VM 名称>” poweroff
    • 设置加密密码(交互输入并确认):
      vboxmanage encryptvm “<VM 名称>” --newpassword
    • 启动验证:vboxmanage startvm “<VM 名称>”
    • 说明:加密后,虚拟机的磁盘与配置受该密码保护;导出/克隆前需先解密或提供密码。
  • 创建即加密的新虚拟机(示例)

    • vboxmanage createvm --name “encvm” --register
    • vboxmanage modifyvm “encvm” --memory 2048 --cpus 2 --nic1 nat
    • vboxmanage storagectl “encvm” --name “SATA” --add sata --controller IntelAhci
    • vboxmanage createmedium disk --filename ~/encvm/encvm.vdi --size 20480
    • vboxmanage storageattach “encvm” --storagectl “SATA” --port 0 --device 0 --type hdd --medium ~/encvm/encvm.vdi
    • vboxmanage modifyvm “encvm” --boot1 dvd --dvd ~/iso/ubuntu-22.04.iso
    • 关闭虚拟机后执行加密:
      vboxmanage encryptvm “encvm” --newpassword
    • 启动安装:vboxmanage startvm “encvm”

方案二 客户机内使用 LUKS 加密

  • 适用:已有虚拟机,只想加密其中的数据盘或系统盘。
  • 基本流程(以数据盘为例):
    • 在客户机安装工具:sudo apt-get update && sudo apt-get install cryptsetup
    • 准备磁盘(示例为 /dev/sdb,先分区为 /dev/sdb1):sudo fdisk /dev/sdb
    • 加密分区(会清空数据,输入大写 YES 确认):sudo cryptsetup luksFormat /dev/sdb1
    • 打开并映射:sudo cryptsetup luksOpen /dev/sdb1 enc_data
    • 格式化并挂载:
      sudo mkfs.ext4 /dev/mapper/enc_data
      sudo mkdir -p /mnt/enc_data
      sudo mount /dev/mapper/enc_data /mnt/enc_data
    • 卸载与关闭:
      sudo umount /mnt/enc_data
      sudo cryptsetup luksClose enc_data
  • 自动解密与挂载(可选):编辑 /etc/crypttab 与 /etc/fstab,配合密钥文件可实现开机自动解锁与挂载;但将密钥文件保存在未加密分区存在泄露风险,远程/无人值守场景不建议启用自动解锁。

两种方案对比与选择建议

维度 VirtualBox 全磁盘加密 客户机内 LUKS 加密
保护范围 虚拟机磁盘与配置 客户机内指定分区/容器
启动依赖 需输入 VirtualBox 加密口令 需输入 LUKS 口令(或密钥文件)
性能影响 极小(主机侧透明加密) 极小(内核 dm-crypt)
适用场景 合规、整机防护、便携与导出受限 已有 VM、仅保护数据
管理复杂度 低(VBoxManage 几条命令) 中(需分区、crypttab/fstab 管理)

安全与运维提示

  • 备份与导出:加密后请在可用状态做好备份;导出/克隆前先解密或确保可访问密钥。
  • 密码与密钥:使用高强度口令;LUKS 的自动解锁需权衡密钥存放位置与泄露风险。
  • 主机安全:加密并非替代主机防护,仍需保持 系统更新、最小权限、防火墙 等基础安全实践。

0