The Civic Security Guide

A comprehensive resource for activists, protesters, and community organizers.

View the Project on GitHub lumpencamp/civic-security

A Practical, Security-Focused Guide to Qubes OS

This guide is for technically competent users who are new to the Qubes OS paradigm. It provides a comprehensive overview of its philosophy, core concepts, and practical, secure workflows.


1. The Philosophy: What is Qubes OS?

Qubes OS is not just another Linux distribution; it’s a fundamentally different approach to computing security. Its core design is built on the principle of Security by Compartmentalization.

Imagine your digital life is a house. In a traditional operating system (like Windows, macOS, or a standard Linux distro), this house is a single, open-plan studio apartment. If a burglar (malware) gets in through an open window (a vulnerable web browser), they have immediate access to everything: your desk (work documents), your filing cabinet (passwords), and your personal photos. A single point of failure compromises the entire system.

Qubes OS rebuilds this house into a series of separate, sealed rooms, each with its own reinforced door. Your work happens in one room, your personal banking in another, and your random web browsing in a third. A fire starting in the ‘browsing’ room is contained there; it cannot spread to the ‘banking’ room or the ‘password vault’ room. Each room is a qube, an isolated virtual machine. This is the essence of Security by Compartmentalization: if one component is compromised, the damage is contained, and the rest of your digital life remains secure.

Who is Qubes OS For?

Qubes OS is designed for those whose digital security is paramount. While anyone can benefit from its architecture, it is particularly vital for:


2. Hardware Requirements & Installation

Hardware choice is critical for Qubes OS. Because it relies on hardware virtualization features, not all computers are compatible.

The Hardware Compatibility List (HCL)

The single most important resource when choosing a machine for Qubes is the Hardware Compatibility List (HCL). This is a community-maintained database of systems that have been tested with Qubes OS. Before you attempt to install Qubes, you must check the HCL to see if your hardware is listed and what level of compatibility to expect.

Attempting to install on non-listed hardware is a gamble that can lead to a frustrating experience with non-functional devices (Wi-Fi, suspend, etc.) or a complete failure to install.

Key Hardware Features

For Qubes to function correctly, your system’s CPU and motherboard BIOS/UEFI must support the following virtualization technologies:

Installation Overview

  1. Download the ISO: Get the latest stable release from the official Qubes OS website.
  2. Verify the ISO: Use the provided cryptographic signatures to ensure your download is authentic and has not been tampered with.
  3. Create a Bootable USB: Use a tool like dd or Rufus to write the ISO to a USB drive. The Qubes documentation provides specific, secure instructions for this process.
  4. BIOS/UEFI Configuration: Boot into your system’s BIOS/UEFI settings and ensure that VT-x/AMD-V and VT-d/AMD-Vi are enabled.
  5. Install Qubes: Boot from the USB drive and follow the Anaconda installer prompts. The installer will guide you through disk partitioning and initial user setup.

3. Understanding the Core Concepts

Qubes OS has a unique vocabulary and architecture. Understanding these core concepts is key to using it effectively.

App Qubes (Domains)

An App Qube (or Domain) is an isolated virtual machine where you run your applications. Each qube is based on a TemplateVM (see below). You might have a work qube for your office applications, a personal qube for your private email, and an untrusted qube for random browsing. The most visible indicator of which qube an application window belongs to is its color-coded border. This is a critical security feature: a red border instantly tells you the window belongs to your untrusted qube, while a green border might belong to your personal qube, preventing you from accidentally entering a password in the wrong context.

TemplateVMs

TemplateVMs are the ‘master copies’ or ‘golden images’ for your App Qubes. You do not run applications directly in a TemplateVM. Instead, you install software into the TemplateVM. For example, to install the GIMP image editor, you would start the fedora-39 TemplateVM, install GIMP using the standard package manager (sudo dnf install gimp), and then shut it down. All App Qubes based on fedora-39 will now have GIMP available in their application menu after they are rebooted.

This design is incredibly efficient and secure. To update the software for dozens of App Qubes, you only need to update their single, underlying TemplateVM. The update process is centralized and secure.

DisposableVMs

DisposableVMs are single-use, throwaway qubes. They are perfect for opening a suspicious email attachment or clicking a link from an unknown source. When you open a file in a DisposableVM, a new, clean qube is created on the fly. You can view the document, and when you close the window, the entire virtual machine is instantly and permanently destroyed. Any malware that might have been in the document is destroyed with it, having never had a chance to touch your persistent qubes.

The Networking Stack

Networking in Qubes is a prime example of compartmentalization.

Deep Dive: sys-whonix and Anonymous Networking

Qubes OS provides strong anonymity by integrating the Whonix project. Whonix is an operating system designed to route all network connections through the Tor network. In Qubes, this is implemented through two key components:

  1. The Whonix Gateway (sys-whonix): This is a dedicated qube that acts as a Tor gateway. Its only purpose is to take incoming traffic from other qubes and force it through the Tor network. It is designed to be secure and prevent IP address leaks.

  2. The Whonix Workstation (Template for anon-whonix): This is a special TemplateVM that is pre-configured for security and anonymity. Applications run from this template (like the included Tor Browser) are hardened against fingerprinting and are configured to work safely with Tor.

How it Works in Practice:

Stream Isolation for Enhanced Anonymity:

This is a powerful concept. You can create multiple App Qubes based on the Whonix Workstation template, each for a different anonymous activity. For example:

Even though both of these qubes connect to the same sys-whonix gateway, Tor’s design ensures that the traffic from each is sent through a different Tor circuit (a different path through the network). This makes it extremely difficult for an outside observer to correlate your research activities with your social media persona. You are using different, isolated ‘streams’ of traffic for each identity, all while benefiting from the central protection of the Whonix Gateway.


4. Practical Secure Workflows

A default Qubes installation provides a good starting point, but its real power comes from creating a workflow that matches your personal threat model. Here is a classic, highly effective setup:


5. Secure Inter-Qube Operations

Because all qubes are isolated, simple actions like copy/paste and file transfer require special, secure mechanisms.

Secure Copy/Paste

A standard Ctrl+C and Ctrl+V will only work within the same qube. To securely move clipboard data between qubes:

  1. In the source qube window, select text and press Ctrl+Shift+C. This copies the text to a secure inter-qube clipboard and notifies the Qubes system that data is ready to be pasted.
  2. In the destination qube window, place your cursor and press Ctrl+Shift+V. This will paste the data.

This two-step process is intentional. It prevents a malicious qube from silently injecting data into your clipboard and tricking you into pasting a malicious command into a terminal in another, more privileged qube.

Secure File Transfer

To move a file from one qube to another:

  1. In the source qube’s file manager, right-click the file.
  2. Select Copy to other AppVM… (or Move to other AppVM…).
  3. A dialog box will appear, asking you to specify the destination qube from a dropdown list.
  4. Select the target qube and click OK.

This triggers a secure, user-approved transfer. The file is not simply ‘moved’ in a shared filesystem; it is securely passed from one isolated environment to another under your explicit control.


6. System Maintenance & Updates

Keeping the system updated is critical for security. Qubes provides a unified tool to handle this securely.

  1. Click the Qubes App Menu (the ‘Q’ icon).
  2. Go to System Tools -> Qubes Update.
  3. A window will appear, listing all of your TemplateVMs (e.g., fedora-39, debian-12, whonix-gw-17, whonix-ws-17).
  4. By default, all are selected. Click OK.

The Qubes Update tool will now securely and sequentially:

After the process completes, you must reboot any running App Qubes for the updates to take effect. This single process ensures that the foundational software for all your compartments is patched and secure.