我是一个普通的严重依赖图形界面的qubes用户,我更喜欢用鼠标点,而不是用命令行敲。我将按照普通用户的思维写教程。不像开发人员那样专业,如有疏漏请指出。这篇教程着重于帮您初步认识qubes系统,澄清基本概念,指出新手需要留意的点,具体操作则只是一带而过。为了解决教程中没有详解的问题,您需具备使用网络查阅资料、调试机器的能力,和一定的英文阅读能力。
一、Qubes OS是什么?
对我来说,qubes就是专门管理虚拟机的操作系统。当您有许多虚拟机时,这些虚拟机将会非常消耗存储。qubes所使用的xen架构能够使虚拟机共用存储,减少资源消耗。即使同时打开十多个虚拟机也不会有明显的卡顿。qubes用许多虚拟机隔离你的硬件设备usb、pci,你也可以用虚拟机隔离私用和工作用的场景,隔离每一个软件,隔离你的每次风险操作。总之在qubes里你唯一需要做的就是隔离,隔离,再隔离。
qubes内置了多种类型的系统,有fedora、debian、whonix,如果您愿意花费更多时间甚至可以在qubes内安装一个windows。qubes的主系统是fedora,在qubes主系统被称为dom0。主系统dom0是不联网的,它与其他虚拟机存在严格的隔离。即使dom0有bug,大部分bug也不会让dom0变脆弱。dom0的所有更新通过一个专用的更新虚拟机进行(名为default-mgmt-dvm),所有文件通过签名验证后安装到dom0。
二、学习路径
如果您没有linux的使用经验,建议您先用visual box安装whonix / debian虚拟机,使用一段时间后过渡到qubes。
您遇到问题大多数其他人都曾遇到过,您可以查阅官方文档,或者在官方论坛检索,也可以询问社区。
官方文档:
https://doc.qubes-os.org/en/latest/
各种故障应对:
https://doc.qubes-os.org/en/latest/user/troubleshooting/installation-troubleshooting.html
询问官方论坛:
https://forum.qubes-os.org/
诊断问题发生的原因,确定合适的关键字。如果您在用whonix时遇到问题,更多应以whonix或者debian为关键字搜索。
三、安装
检查系统硬件要求
https://doc.qubes-os.org/en/latest/user/hardware/system-requirements.html
可能卡住你的要求:
USB:非usb键盘(通常手提电脑自带)或多个usb控制器(看主板说明书,要求多个usb控制器是为了把键盘与其他usb设备隔离)
可信任平台模组:Trusted Platform Module (TPM) ,如果没有TPM,fTPM也是可以的。
调整BIOS菜单
通常需要调整的项:
开启虚拟化,看到诸如Intel VT-d 、 AMD-Vi、AMD IOMMU的字样,统统enable。
看到TPM、Trusted Platform Module之类的,也enable。(请注意,安装qubes时会覆盖TPM里的密钥。)
个别情况可能需要您根据自己的硬件调整与UEFI相关的兼容性
写入镜像到u盘
https://doc.qubes-os.org/en/latest/user/downloading-installing-upgrading/installation-guide.html
u盘分区表的格式可能影响安装过程,经实验msr比gpt格式有更好的兼容性。linux的dd写入指令会保留分区表的格式,而rufus会强行把分区表重置为gpt。如果您的安装失败了可以考虑更改一下分区表。很显然安装失败的原因不止一种,这种情况您未必会遇到。
断网安装
安装时请拔掉网线,因为安装程序可能会自动下载文件。
usb qube
在安装时勾选usb qube,系统会自动创建一个名为sys-usb的虚拟机,把您的所有usb设备隔离在dom0之外。因此涉及usb qube的选项请小心对待,您有可能封锁自己使用键盘和鼠标的所有渠道,如果这还是发生了,就只能重装一遍系统。如果你使用usb键盘请把usb input devices中keyboard这项设为enable而不是always ask。后续如果您更好地理解了usb qube,再根据您的需求把keyboard设为always ask。
安装后立刻关闭自动检查更新
Qubes OS Global Config → Updates → Check for qube updates → Disable
如果不关闭,qubes可能绕过sys-whonix检查是否有可用更新
中文用户需额外解决的问题
输入法和字体
如果不装字体,汉字会被显示为方块。
如果不能用,请搜索whonix chinese input method
代理
前置透明代理,或者在系统内部设置sys-vpn。不建议软路由,因为从软路由到你的虚拟机这段流量是未加密的。
https://forum.qubes-os.org/t/gfw/35126
https://forum.qubes-os.org/t/i2pd-netvm-debian-12-chinese-version/31529
四、使用
您几乎无法在主系统dom0里做任何事情,它不能联网,不能从网页复制粘贴,很难截图,文件不能从dom0传输到虚拟机。这些限制都是为了帮助您养成安全的操作习惯。您的大部分操作都可以在虚拟机中完成。
下图是Qubes中常见的虚拟机,其中AdminVM就是我们说的dom0。sys-usb用于隔离您的usb设备,sys-net用于隔离网卡。VM是Visual Machine(虚拟机)的简写,sys是system(系统)的简写。AppVM是从模板(TemplateVM)派生的子虚拟机。AppVM里发生的任何事都不会影响到TemplateVM,且AppVM每次关闭后都会还原到初始状态,也就是在AppVM安装的软件会被清除(除非您特别指认要保留),AppVM中只有用户数据能永久保存。
您可以根据自己的使用场景,创建自己的虚拟机。指派颜色以区分它们的可信等级。
https://doc.qubes-os.org/en/latest/user/how-to-guides/how-to-organize-your-qubes.html
名词解释
dom0:qubes对主系统的称呼,AdminVM
VM:Visual Machine(虚拟机)
qube:与VM等同
| 虚拟机类型 | 什么数据会被保留? | 可以联网吗? | 通常用途 |
|---|---|---|---|
| TemplateVM | 所有 | 不可以,但能用apt安装软件 | 充当纯净的备份,可安装你特别信任的软件。如果你不懂怎么在AppVM安装软件,把软件装载你克隆的templateVM里 |
| AppVM | 用户数据,比如/home/user。软件存取的数据也会保留 | 可以 | 隔离软件 |
| DisposableVM | 无 | 可以 | 隔离有危险性的单次操作 |
| StandaloneVM | 所有 | 可以 | 在你无法适应qubes操作习惯时用它 |
| dom0 | 所有 | 不可以 | 管理虚拟机 |
usb设备的管理
qubes建议用usb qube(sys-usb)隔离usb设备,并且用PS/2接口的键盘
https://doc.qubes-os.org/en/latest/user/advanced-topics/usb-qubes.html
如果您使用usb键盘,您的主板最好能有多个usb控制器。您可以将其中一个usb控制器交由dom0管理,您将用这个usb控制器连接键盘。其余usb控制器交由usb qube管理。请查看主板说明书,或者通过实验弄清楚哪个usb接口由哪个usb控制器管理。不要把非键盘的usb设备插到与dom0直连的usb接口上!建议选用低端且廉价的键盘和鼠标,因为高端键鼠通常内置了可编程芯片,因此有更多作文章的空间。请不要用您的qubes专用键盘再去连接其他电脑或其他系统。
请阅读下文确保知悉usb设备的风险
https://doc.qubes-os.org/en/latest/user/security-in-qubes/device-handling-security.html#usb-security
当您手动地创建usb qube,走到这一步:
- Add
usbcore.authorized_default=0andrd.qubes.dom0_usb=<BDF>to that line, where<BDF>is the USB controller identifier.
如果这一步失败,比如您找不到< BDF >,您可以在从qube manager中打开sys-usb的设置,在devices选项卡中移除对应的usb控制器。被移除的usb控制器会回到dom0。关于硬件的设备的操作需谨慎,如果错了您可能被锁在系统外,那么就只能重装一遍系统。
五、各种故障应对方法
https://doc.qubes-os.org/en/latest/user/troubleshooting/installation-troubleshooting.html
六、参考文献
https://doc.qubes-os.org/en/latest/developer/services/dom0-secure-updates.html
