Qubes 4 的新功能
正在考虑迁移到 Qubes 4 吗? 本文介绍了一些重大变化。
在我最近的文章 “重构因素” 中,我谈到了Linux Journal 的新化身,背景是一个正在进行重构的大型软件项目
任何参与过 Linux 社区的人都熟悉重构。开源项目重构有着悠久的历史,通常发生在主要版本发布前后。GNOME 和 KDE 尤其都使用 .0 版本来完全重新思考这些桌面环境。尽管这种重构可能会引起社区的抱怨,但任何从事过大型软件项目的人都会告诉您,有时您必须深入其中,保留有效的部分,删除无用的代码,使其更易于维护,并重新思考您的用户现在如何使用该软件以及他们将来将如何使用它。
我已经将 Qubes 作为我的主要桌面使用了两年多,并且之前在我的 Linux Journal 专栏中写过关于它的文章,所以我很高兴听到 Qubes 在新的 4.0 版本中也进行了自己的重构。与大多数重构一样,这次重构导致一些过去的功能在候选版本中消失,但从 4.0-rc4 开始,该版本开始稳定下来,恢复了 Qubes 3.2 用户习惯的大部分功能。但这并不是说一切都一样。事实上,无论是表面上还是底层,都发生了很多变化。
尽管 Qubes 在其 Qubes 4 变更日志 中概述了所有重大更改,但我不想重复每个低级别更改,而是想重点介绍 Qubes 4 中的一些表面更改,以及无论您过去是否使用过 Qubes,或者现在才开始尝试使用它,这些更改可能会如何影响您。
安装程序在很大程度上,Qubes 4 安装程序的外观和行为都类似于 Qubes 3.2 安装程序,但有一个很大的不同:Qubes 4 开箱即用地使用了许多不同的 CPU 虚拟化功能以提高安全性,因此现在对未启用这些功能的 CPU 更加挑剔,并且会告诉您。在选择语言后的安装过程开始时,您将收到关于任何未启用的虚拟化功能的警告。特别是,如果您没有启用 IOMMU(在 Intel 处理器上也被称为 VT-d,这是一种向 VM 内需要 DMA 的设备呈现虚拟化内存的方法)和 SLAT(硬件强制内存虚拟化),安装程序会警告您。如果您跳过警告并完成安装,您会发现启动 VM 时遇到问题。
对于 IOMMU 的情况,您可以通过从 Qubes dom0 终端将 sys-net
和 sys-usb
VM(默认情况下,只有这两个 VM 分配了 PCI 设备)的虚拟化模式从 HVM(硬件 VM)更改为 PV(准虚拟化)来解决此问题
$ qvm-prefs sys-net virt_mode pv
$ qvm-prefs sys-usb virt_mode pv
这将消除对 IOMMU 支持的依赖,但这也意味着您失去了 IOMMU 提供的保护——您插入的恶意 DMA 启用设备可能能够访问 VM 外部的 RAM!(我在下一节中讨论了 HVM 和 PV VM 之间的差异。)
VM 更改Qubes 4 中的默认模板都已更新并不奇怪——软件更新始终是新发行版版本中预期的。Qubes 4 现在开箱即用地附带 Fedora 26 和 Debian 9 模板。管理桌面的 dom0 VM 也具有更新的 4.14.13 内核和 Xen 4.8,因此您更有可能获得更好的硬件支持(这个更新的 Xen 版本修复了较新硬件上的一些挂起问题,例如 Purism Librem 13v2)。
Qubes 4 的另一个重大区别是它使用的默认 VM 类型。Qubes 依赖 Xen 作为其虚拟化平台,并为 VM 提供三种主要的虚拟化模式
PV(准虚拟化):这是传统的 Xen VM 类型,需要 Xen 启用的内核才能工作。由于与操作系统的挂钩,它非常高效;但是,这也意味着您无法运行没有启用 Xen 的操作系统(例如没有 Xen 内核的 Windows 或 Linux 发行版)。
HVM(硬件 VM):这种 VM 类型使用 CPU 中的完整硬件虚拟化功能,因此您不需要特殊的 Xen 支持。这意味着您可以运行 Windows VM 或任何其他操作系统,无论它是否具有 Xen 内核,并且它还提供更强大的安全性,因为您可以对每个 VM 进行硬件级别的隔离,使其与其他 VM 隔离。
PVH(PV 混合模式):这是一种特殊的 PV 模式,它利用硬件虚拟化功能,同时仍然使用准虚拟化内核。
过去,Qubes 默认对所有 VM 使用 PV,但从 Qubes 4 开始,几乎所有 VM 都将默认使用 PVH 模式。尽管最初的计划是将所有 VM 默认为 HVM 模式,但现在大多数 VM 的默认模式是 PVH 模式,以帮助使用 HVM 模式保护 VM 免受 Meltdown 攻击,HVM 模式保留用于具有 PCI 设备的 VM(如 sys-net
和 sys-usb
)。
Qubes 4 中的另一个重大变化与 GUI VM 管理器有关。在过去的版本中,该程序提供了一种图形化方式来启动、停止和暂停 VM。它还允许您更改所有 VM 设置、防火墙规则,甚至哪些应用程序出现在 VM 的菜单中。它还提供了一种 GUI 方式来备份和还原 VM。在 Qubes 4 中,很多都发生了变化。Qubes 4 的最终目标是用独立的工具替换 VM 管理器,这些工具可以复制原始功能的大部分。
VM 管理器中首先被替换的部分之一是管理设备(麦克风和 USB 设备,包括存储设备)的能力。过去,您会插入一个 USB 拇指驱动器,然后在 VM 管理器中右键单击一个 VM 以将其连接到该 VM,但现在桌面面板中有一个始终存在的图标(图 1),您可以单击该图标,直接将麦克风和任何 USB 设备分配给 VM。在该图标旁边是另一个 Qubes 图标,您可以单击该图标来关闭 VM 并访问其首选项。

图 1. 从面板进行设备管理
在相当多的候选版本中,这些是您可以通过 GUI 执行的唯一功能。其他一切都需要您回退到命令行。但是,从 Qubes 4.0-rc4 版本开始,出现了一个名为 Qube Manager 的新 GUI 工具,它试图复制以前工具的大部分功能,包括备份和还原(图 2)。新工具缺少的主要功能是那些已移至面板中的功能。似乎最终目标是将所有功能移至独立工具中,而此 GUI 工具更像是为了应对过去依赖它的用户的权宜之计。

图 2. 新的 Qube Manager
备份和还原您将在 Qubes 4 中发现的最后一个明显的表面变化是在备份和还原方面。随着 Qube Manager 的创建,您现在可以再次备份 VM 的 GUI,就像 Qubes 3.2 一样。一般的备份过程与过去相同,但从 Qubes 4 开始,所有备份都是加密的,而不是可选的。
还原备份在很大程度上也像过去的版本一样。但是,一个变化是还原 Qubes 3.2 VM 时。以前的一些候选版本根本无法还原 3.2 VM。尽管您现在可以在 Qubes 4 中还原 Qubes 3.2 VM,但有一些变化。首先,旧的 dom0 备份不会显示出来进行还原,因此您需要手动移动这些文件。其次,旧的模板 VM 不包含 Qubes 4 模板具有的一些新工具,因此尽管您可以还原它们,但它们可能无法与 Qubes 4 很好地集成,而无需进行一些工作。这意味着当您还原依赖旧模板的 VM 时,您需要将它们更改为指向新的 Qubes 4 模板。那时,它们应该像往常一样启动。
结论正如我在本文开头提到的,这些只是 Qubes 4 中一些更明显的表面变化。与大多数重构一样,幕后也发生了更多变化。如果您对一些底层技术变化感到好奇,请查看 Qubes 4 发行说明 并关注与特定功能相关的链接。