mirror of
https://github.com/QubesOS/qubes-doc.git
synced 2024-10-01 01:25:40 -04:00
parent
863f0ee9bd
commit
60bd80ad25
@ -114,7 +114,7 @@ vm_qrexec_gui/TC_20_DispVM_fedora-21/test_030_edit_file
|
|||||||
|
|
||||||
Example test run:
|
Example test run:
|
||||||
|
|
||||||
![snapshot-tests2.png](/attachment/doc/snapshot-tests2.png)
|
![snapshot-tests2.png](/attachment/wiki/developers/snapshot-tests2.png)
|
||||||
|
|
||||||
Tests are also compatible with nose2 test runner, so you can use this instead:
|
Tests are also compatible with nose2 test runner, so you can use this instead:
|
||||||
|
|
||||||
|
@ -94,6 +94,6 @@ make REMOTE=example.com:public_html/qubes/profiling/ upload
|
|||||||
|
|
||||||
This example is from `qubes-manager` (`qubesmanager/main.py`).
|
This example is from `qubes-manager` (`qubesmanager/main.py`).
|
||||||
|
|
||||||
!["update\_table-20140424-170010.svg"](//attachment/doc/update_table-20140424-170010.svg)
|
!["update\_table-20140424-170010.svg"](//attachment/wiki/Profiling/update_table-20140424-170010.svg)
|
||||||
|
|
||||||
It is apparent that the problem is around `get_disk_usage`, which calls something via `subprocess.call`. It does this 15 times, probably once per VM.
|
It is apparent that the problem is around `get_disk_usage`, which calls something via `subprocess.call`. It does this 15 times, probably once per VM.
|
||||||
|
@ -65,43 +65,43 @@ Ok, let's start.
|
|||||||
Every documentation page has an "Edit this page" button.
|
Every documentation page has an "Edit this page" button.
|
||||||
It may be on the side (in the desktop layout):
|
It may be on the side (in the desktop layout):
|
||||||
|
|
||||||
[![edit-button-desktop](/attachment/doc/03-button2.png)
|
[![edit-button-desktop](/attachment/wiki/doc-edit/03-button2.png)](/attachment/wiki/doc-edit/03-button2.png)
|
||||||
|
|
||||||
Or at the bottom (in the mobile layout):
|
Or at the bottom (in the mobile layout):
|
||||||
|
|
||||||
[![edit-button-mobile](/attachment/doc/02-button1.png)
|
[![edit-button-mobile](/attachment/wiki/doc-edit/02-button1.png)](/attachment/wiki/doc-edit/02-button1.png)
|
||||||
|
|
||||||
When you click on it, you'll be prompted for your GitHub username and password (if you aren't already logged in).
|
When you click on it, you'll be prompted for your GitHub username and password (if you aren't already logged in).
|
||||||
You can also create an account from here.
|
You can also create an account from here.
|
||||||
|
|
||||||
[![github-sign-in](/attachment/doc/04-sign-in.png)
|
[![github-sign-in](/attachment/wiki/doc-edit/04-sign-in.png)](/attachment/wiki/doc-edit/04-sign-in.png)
|
||||||
|
|
||||||
If this is your first contribution to the documentation, you need to "fork" the repository (make your own copy). It's easy --- just click the big green button on the next page.
|
If this is your first contribution to the documentation, you need to "fork" the repository (make your own copy). It's easy --- just click the big green button on the next page.
|
||||||
This step is only needed the first time you make a contribution.
|
This step is only needed the first time you make a contribution.
|
||||||
|
|
||||||
[![fork](/attachment/doc/05-fork.png)
|
[![fork](/attachment/wiki/doc-edit/05-fork.png)](/attachment/wiki/doc-edit/05-fork.png)
|
||||||
|
|
||||||
Now you can make your modifications.
|
Now you can make your modifications.
|
||||||
You can also preview the changes to see how they'll be formatted by clicking the "Preview changes" tab.
|
You can also preview the changes to see how they'll be formatted by clicking the "Preview changes" tab.
|
||||||
If you want to add images, please see [How to add images](#how-to-add-images).
|
If you want to add images, please see [How to add images](#how-to-add-images).
|
||||||
If you're making formatting changes, please [render the site locally](https://github.com/QubesOS/qubesos.github.io#instructions) to verify that everything looks correct before submitting any changes.
|
If you're making formatting changes, please [render the site locally](https://github.com/QubesOS/qubesos.github.io#instructions) to verify that everything looks correct before submitting any changes.
|
||||||
|
|
||||||
[![edit](/attachment/doc/06-edit.png)
|
[![edit](/attachment/wiki/doc-edit/06-edit.png)](/attachment/wiki/doc-edit/06-edit.png)
|
||||||
|
|
||||||
Once you're finished, describe your changes at the bottom and click "Propose file change".
|
Once you're finished, describe your changes at the bottom and click "Propose file change".
|
||||||
|
|
||||||
[![commit](/attachment/doc/07-commit-msg.png)
|
[![commit](/attachment/wiki/doc-edit/07-commit-msg.png)](/attachment/wiki/doc-edit/07-commit-msg.png)
|
||||||
|
|
||||||
After that, you'll see exactly what modifications you've made.
|
After that, you'll see exactly what modifications you've made.
|
||||||
At this stage, those changes are still in your own copy of the documentation ("fork").
|
At this stage, those changes are still in your own copy of the documentation ("fork").
|
||||||
If everything looks good, send those changes to us by pressing the "Create pull request" button.
|
If everything looks good, send those changes to us by pressing the "Create pull request" button.
|
||||||
|
|
||||||
[![pull-request](/attachment/doc/08-review-changes.png)
|
[![pull-request](/attachment/wiki/doc-edit/08-review-changes.png)](/attachment/wiki/doc-edit/08-review-changes.png)
|
||||||
|
|
||||||
You will be able to adjust the pull request message and title there.
|
You will be able to adjust the pull request message and title there.
|
||||||
In most cases, the defaults are ok, so you can just confirm by pressing the "Create pull request" button again.
|
In most cases, the defaults are ok, so you can just confirm by pressing the "Create pull request" button again.
|
||||||
|
|
||||||
[![pull-request-confirm](/attachment/doc/09-create-pull-request.png)
|
[![pull-request-confirm](/attachment/wiki/doc-edit/09-create-pull-request.png)](/attachment/wiki/doc-edit/09-create-pull-request.png)
|
||||||
|
|
||||||
If any of your changes should be reflected in the [documentation index (a.k.a. table of contents)](/doc/) --- for example, if you're adding a new page, changing the title of an existing page, or removing a page --- please see [How to edit the documentation index](#how-to-edit-the-documentation-index).
|
If any of your changes should be reflected in the [documentation index (a.k.a. table of contents)](/doc/) --- for example, if you're adding a new page, changing the title of an existing page, or removing a page --- please see [How to edit the documentation index](#how-to-edit-the-documentation-index).
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ Otherwise, we may have some questions for you, which we'll post in a comment on
|
|||||||
(GitHub will automatically notify you if we do.)
|
(GitHub will automatically notify you if we do.)
|
||||||
If, for some reason, we can't accept your pull request, we'll post a comment explaining why we can't.
|
If, for some reason, we can't accept your pull request, we'll post a comment explaining why we can't.
|
||||||
|
|
||||||
[![done](/attachment/doc/10-done.png)
|
[![done](/attachment/wiki/doc-edit/10-done.png)](/attachment/wiki/doc-edit/10-done.png)
|
||||||
|
|
||||||
## How to edit the documentation index
|
## How to edit the documentation index
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ To add an image to a page, use the following syntax in the main document.
|
|||||||
This will make the image a hyperlink to the image file, allowing the reader to click on the image in order to view the image by itself.
|
This will make the image a hyperlink to the image file, allowing the reader to click on the image in order to view the image by itself.
|
||||||
|
|
||||||
```
|
```
|
||||||
[![Image Title](/attachment/doc/image-filename.png)
|
[![Image Title](/attachment/wiki/page-title/image-filename.png)](/attachment/wiki/page-title/image-filename.png)
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, submit your image(s) in a separate pull request to the [qubes-attachment](https://github.com/QubesOS/qubes-attachment) repository using the same path and filename.
|
Then, submit your image(s) in a separate pull request to the [qubes-attachment](https://github.com/QubesOS/qubes-attachment) repository using the same path and filename.
|
||||||
|
@ -37,7 +37,7 @@ TBD
|
|||||||
|
|
||||||
## Components
|
## Components
|
||||||
|
|
||||||
![Admin API Architecture](/attachment/doc/admin-api-architecture.svg)
|
![Admin API Architecture](/attachment/wiki/AdminAPI/admin-api-architecture.svg)
|
||||||
|
|
||||||
A central entity in the Qubes Admin API system is a `qubesd` daemon, which
|
A central entity in the Qubes Admin API system is a `qubesd` daemon, which
|
||||||
holds information about all domains in the system and mediates all actions (like
|
holds information about all domains in the system and mediates all actions (like
|
||||||
|
@ -117,7 +117,7 @@ Details of all possible use cases and the messages involved are described below.
|
|||||||
|
|
||||||
### dom0: request execution of `cmd` in domX
|
### dom0: request execution of `cmd` in domX
|
||||||
|
|
||||||
![qrexec internals diagram dom0-vm](/attachment/doc/qrexec-dom0-vm.png)
|
![qrexec internals diagram dom0-vm](/attachment/wiki/qrexec3/qrexec-dom0-vm.png)
|
||||||
|
|
||||||
- **dom0**: `qrexec-client` is invoked in **dom0** as follows:
|
- **dom0**: `qrexec-client` is invoked in **dom0** as follows:
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ Details of all possible use cases and the messages involved are described below.
|
|||||||
|
|
||||||
### domX: request execution of service `admin.Service` in dom0
|
### domX: request execution of service `admin.Service` in dom0
|
||||||
|
|
||||||
![qrexec internals diagram vm-dom0](/attachment/doc/qrexec-vm-dom0.png)
|
![qrexec internals diagram vm-dom0](/attachment/wiki/qrexec3/qrexec-vm-dom0.png)
|
||||||
|
|
||||||
- **domX**: `qrexec-client-vm` is invoked as follows:
|
- **domX**: `qrexec-client-vm` is invoked as follows:
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ Details of all possible use cases and the messages involved are described below.
|
|||||||
|
|
||||||
### domX: invoke execution of qubes service `qubes.Service` in domY
|
### domX: invoke execution of qubes service `qubes.Service` in domY
|
||||||
|
|
||||||
![qrexec internals diagram vm-vm](/attachment/doc/qrexec-vm-vm.png)
|
![qrexec internals diagram vm-vm](/attachment/wiki/qrexec3/qrexec-vm-vm.png)
|
||||||
|
|
||||||
- **domX**: `qrexec-client-vm` is invoked as follows:
|
- **domX**: `qrexec-client-vm` is invoked as follows:
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ Typically, the first thing that a `qrexec-client` instance does is to send a req
|
|||||||
`qrexec-client` starts a vchan server, which `qrexec-agent` then connects to.
|
`qrexec-client` starts a vchan server, which `qrexec-agent` then connects to.
|
||||||
Once this channel is established, stdin/stdout/stderr from the VMprocess is passed between `qrexec-agent` and the `qrexec-client` process.
|
Once this channel is established, stdin/stdout/stderr from the VMprocess is passed between `qrexec-agent` and the `qrexec-client` process.
|
||||||
|
|
||||||
![qrexec basics diagram](/attachment/doc/qrexec3-basics.png)
|
![qrexec basics diagram](/attachment/wiki/qrexec3/qrexec3-basics.png)
|
||||||
|
|
||||||
The `qrexec-client` command is used to make connections to VMs from dom0.
|
The `qrexec-client` command is used to make connections to VMs from dom0.
|
||||||
For example, the following command creates an empty file called `hello-world.txt` in the home folder of `someVM`:
|
For example, the following command creates an empty file called `hello-world.txt` in the home folder of `someVM`:
|
||||||
|
@ -300,7 +300,7 @@ significantly differs from what is described in this section.
|
|||||||
The VM-VM channels in Qubes R2 are made via "gluing" two VM-Dom0 and Dom0-VM
|
The VM-VM channels in Qubes R2 are made via "gluing" two VM-Dom0 and Dom0-VM
|
||||||
vchan connections:
|
vchan connections:
|
||||||
|
|
||||||
![qrexec2-internals.png](/attachment/doc/qrexec2-internals.png)
|
![qrexec2-internals.png](/attachment/wiki/Qrexec2Implementation/qrexec2-internals.png)
|
||||||
|
|
||||||
Note that Dom0 never examines the actual data flowing in neither of the two
|
Note that Dom0 never examines the actual data flowing in neither of the two
|
||||||
vchan connections.
|
vchan connections.
|
||||||
|
@ -14,7 +14,7 @@ title: Architecture
|
|||||||
|
|
||||||
Qubes implements a Security by Isolation approach. To do this, Qubes utilizes virtualization technology in order to isolate various programs from each other and even to sandbox many system-level components, such as networking and storage subsystems, so that the compromise of any of these programs or components does not affect the integrity of the rest of the system.
|
Qubes implements a Security by Isolation approach. To do this, Qubes utilizes virtualization technology in order to isolate various programs from each other and even to sandbox many system-level components, such as networking and storage subsystems, so that the compromise of any of these programs or components does not affect the integrity of the rest of the system.
|
||||||
|
|
||||||
[![qubes-schema-v2.png](/attachment/doc/qubes-schema-v2.png)
|
[![qubes-schema-v2.png](/attachment/wiki/QubesArchitecture/qubes-schema-v2.png)](/attachment/wiki/QubesArchitecture/qubes-schema-v2.png)
|
||||||
|
|
||||||
Qubes lets the user define many security domains, which are implemented as lightweight Virtual Machines (VMs), or “AppVMs.” For example, the user can have “personal,” “work,” “shopping,” “bank,” and “random” AppVMs and can use the applications within those VMs just as if they were executing on the local machine. At the same time, however, these applications are well isolated from each other. Qubes also supports secure copy-and-paste and file sharing between the AppVMs, of course.
|
Qubes lets the user define many security domains, which are implemented as lightweight Virtual Machines (VMs), or “AppVMs.” For example, the user can have “personal,” “work,” “shopping,” “bank,” and “random” AppVMs and can use the applications within those VMs just as if they were executing on the local machine. At the same time, however, these applications are well isolated from each other. Qubes also supports secure copy-and-paste and file sharing between the AppVMs, of course.
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ Key Architecture features
|
|||||||
- Qubes GUI provides isolation between apps sharing the same desktop
|
- Qubes GUI provides isolation between apps sharing the same desktop
|
||||||
- Secure system boot based (optional)
|
- Secure system boot based (optional)
|
||||||
|
|
||||||
(For those interested in the history of the project, [Architecture Spec v0.3 [PDF]](/attachment/doc/arch-spec-0.3.pdf) is the original 2009 document that started this all.
|
(For those interested in the history of the project, [Architecture Spec v0.3 [PDF]](/attachment/wiki/QubesArchitecture/arch-spec-0.3.pdf) is the original 2009 document that started this all.
|
||||||
Please note that this document is for historical interest only.
|
Please note that this document is for historical interest only.
|
||||||
For the latest information, please see the rest of the [System Documentation](/doc/#system).)
|
For the latest information, please see the rest of the [System Documentation](/doc/#system).)
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ the Qubes system include:
|
|||||||
|
|
||||||
And all these components are "glued together" by the Qubes Core Stack.
|
And all these components are "glued together" by the Qubes Core Stack.
|
||||||
|
|
||||||
[![Qubes system components](/attachment/doc/qubes-components.png)
|
[![Qubes system components](/attachment/wiki/QubesArchitecture/qubes-components.png)](/attachment/wiki/QubesArchitecture/qubes-components.png)
|
||||||
|
|
||||||
This diagram illustrates the location of all these components in the overall
|
This diagram illustrates the location of all these components in the overall
|
||||||
system architecture. Unlike the other Qubes architecture diagram above, this one
|
system architecture. Unlike the other Qubes architecture diagram above, this one
|
||||||
|
@ -65,7 +65,7 @@ To sum up, this solution has the following benefits:
|
|||||||
- no changes to Xorg code
|
- no changes to Xorg code
|
||||||
- minimal size of the supporting code
|
- minimal size of the supporting code
|
||||||
|
|
||||||
![gui.png](/attachment/doc/gui.png)
|
![gui.png](/attachment/wiki/GUIdocs/gui.png)
|
||||||
|
|
||||||
Security markers on dom0 windows
|
Security markers on dom0 windows
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
@ -56,12 +56,12 @@ qvm-features ipv4-only-qube ipv6 ''
|
|||||||
|
|
||||||
This configuration is presented below - green qubes have IPv6 access, red one does not.
|
This configuration is presented below - green qubes have IPv6 access, red one does not.
|
||||||
|
|
||||||
![ipv6-1](/attachment/doc/ipv6-1.png)
|
![ipv6-1](/attachment/wiki/IPv6/ipv6-1.png)
|
||||||
|
|
||||||
In that case, system uplink connection have native IPv6. But in some cases it may not be true. Then some tunneling solution can be used (for example teredo). The same will apply when the user is connected to VPN service providing IPv6 support, regardless of user's internet connection.
|
In that case, system uplink connection have native IPv6. But in some cases it may not be true. Then some tunneling solution can be used (for example teredo). The same will apply when the user is connected to VPN service providing IPv6 support, regardless of user's internet connection.
|
||||||
Such configuration can be expressed by enabling `ipv6` feature only on some subset of Qubes networking, for example by creating separate qube to encapsulate IPv6 traffic and setting `ipv6` to `1` only there. See diagram below
|
Such configuration can be expressed by enabling `ipv6` feature only on some subset of Qubes networking, for example by creating separate qube to encapsulate IPv6 traffic and setting `ipv6` to `1` only there. See diagram below
|
||||||
|
|
||||||
![ipv6-2](/attachment/doc/ipv6-2.png)
|
![ipv6-2](/attachment/wiki/IPv6/ipv6-2.png)
|
||||||
|
|
||||||
Besides enabling IPv6 forwarding, standard Qubes firewall can be used to limit what network resources are available to each qube. Currently only `qvm-firewall` command support adding IPv6 rules, GUI firewall editor will have this ability later.
|
Besides enabling IPv6 forwarding, standard Qubes firewall can be used to limit what network resources are available to each qube. Currently only `qvm-firewall` command support adding IPv6 rules, GUI firewall editor will have this ability later.
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ TemplateVM has a shared root.img across all AppVMs that are based on it. This me
|
|||||||
|
|
||||||
There are two layers of the device-mapper snapshot device; the first one enables modifying root.img without stopping the AppVMs and the second one, which is contained in the AppVM, enables temporal modifications to its filesystem. These modifications will be discarded after a restart of the AppVM.
|
There are two layers of the device-mapper snapshot device; the first one enables modifying root.img without stopping the AppVMs and the second one, which is contained in the AppVM, enables temporal modifications to its filesystem. These modifications will be discarded after a restart of the AppVM.
|
||||||
|
|
||||||
![TemplateSharing2.png](/attachment/doc/TemplateSharing2.png)
|
![TemplateSharing2.png](/attachment/wiki/TemplateImplementation/TemplateSharing2.png)
|
||||||
|
|
||||||
## Snapshot device in Dom0
|
## Snapshot device in Dom0
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ It also has a very unique GUI virtualization infrastructure.
|
|||||||
### What about safe languages and formally verified microkernels?
|
### What about safe languages and formally verified microkernels?
|
||||||
|
|
||||||
In short: these are non-realistic solutions today.
|
In short: these are non-realistic solutions today.
|
||||||
We discuss this in further depth in our [Architecture Specification document](/attachment/doc/arch-spec-0.3.pdf).
|
We discuss this in further depth in our [Architecture Specification document](/attachment/wiki/QubesArchitecture/arch-spec-0.3.pdf).
|
||||||
|
|
||||||
### Why does Qubes use virtualization?
|
### Why does Qubes use virtualization?
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ Very paranoid users, or those who are high-profile targets, might use a dozen or
|
|||||||
### Why does Qubes use Xen instead of KVM or some other hypervisor?
|
### Why does Qubes use Xen instead of KVM or some other hypervisor?
|
||||||
|
|
||||||
In short: we believe the Xen architecture allows for the creation of more secure systems (i.e. with a much smaller TCB, which translates to a smaller attack surface).
|
In short: we believe the Xen architecture allows for the creation of more secure systems (i.e. with a much smaller TCB, which translates to a smaller attack surface).
|
||||||
We discuss this in much greater depth in our [Architecture Specification document](/attachment/doc/arch-spec-0.3.pdf).
|
We discuss this in much greater depth in our [Architecture Specification document](/attachment/wiki/QubesArchitecture/arch-spec-0.3.pdf).
|
||||||
|
|
||||||
### How is Qubes affected by Xen Security Advisories (XSAs)?
|
### How is Qubes affected by Xen Security Advisories (XSAs)?
|
||||||
|
|
||||||
|
@ -11,90 +11,90 @@ title: Screenshots
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
[![r4.0-xfce-desktop.png](/attachment/doc/r4.0-xfce-desktop.png)
|
[![r4.0-xfce-desktop.png](/attachment/wiki/QubesScreenshots/r4.0-xfce-desktop.png)](/attachment/wiki/QubesScreenshots/r4.0-xfce-desktop.png)
|
||||||
|
|
||||||
The default desktop environment is Xfce4.
|
The default desktop environment is Xfce4.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-xfce-start-menu.png](/attachment/doc/r4.0-xfce-start-menu.png)
|
[![r4.0-xfce-start-menu.png](/attachment/wiki/QubesScreenshots/r4.0-xfce-start-menu.png)](/attachment/wiki/QubesScreenshots/r4.0-xfce-start-menu.png)
|
||||||
|
|
||||||
Starting applications from different domains (AppVMs) is very easy.
|
Starting applications from different domains (AppVMs) is very easy.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-xfce-three-domains-at-work.png](/attachment/doc/r4.0-xfce-three-domains-at-work.png)
|
[![r4.0-xfce-three-domains-at-work.png](/attachment/wiki/QubesScreenshots/r4.0-xfce-three-domains-at-work.png)](/attachment/wiki/QubesScreenshots/r4.0-xfce-three-domains-at-work.png)
|
||||||
|
|
||||||
In this example, the word processor runs in the “work” domain, which has been assigned the “blue” label. It is fully isolated from other domains, such as the “untrusted” domain (assigned the “red” label -- “Watch out!”, “Danger!”) used for random Web browsing, news reading, as well as from the "work-web" domain (assigned the "yellow" label), which is used for work-related Web browsing that is not security critical. Apps from different domains run in different AppVMs and have different X servers, filesystems, etc. Notice the different color frames (labels) and VM names in the titlebars. These are drawn by the trusted Window Manager running in Dom0, and apps running in domains cannot fake them:
|
In this example, the word processor runs in the “work” domain, which has been assigned the “blue” label. It is fully isolated from other domains, such as the “untrusted” domain (assigned the “red” label -- “Watch out!”, “Danger!”) used for random Web browsing, news reading, as well as from the "work-web" domain (assigned the "yellow" label), which is used for work-related Web browsing that is not security critical. Apps from different domains run in different AppVMs and have different X servers, filesystems, etc. Notice the different color frames (labels) and VM names in the titlebars. These are drawn by the trusted Window Manager running in Dom0, and apps running in domains cannot fake them:
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r2b3-windows-seamless-1.png](/attachment/doc/r2b3-windows-seamless-1.png)
|
[![r2b3-windows-seamless-1.png](/attachment/wiki/QubesScreenshots/r2b3-windows-seamless-1.png)](/attachment/wiki/QubesScreenshots/r2b3-windows-seamless-1.png)
|
||||||
|
|
||||||
Qubes Release 2 can also run Windows AppVMs in seamless mode, integrated onto the common Qubes trusted desktop, just like Linux AppVMs! The seamless GUI integration has been introduced in Qubes R2 Beta 3. This requires [Qubes Windows Tools](https://github.com/Qubes-Community/Contents/blob/master/docs/os/windows/windows-tools.md) to be installed in the Windows VMs first.
|
Qubes Release 2 can also run Windows AppVMs in seamless mode, integrated onto the common Qubes trusted desktop, just like Linux AppVMs! The seamless GUI integration has been introduced in Qubes R2 Beta 3. This requires [Qubes Windows Tools](https://github.com/Qubes-Community/Contents/blob/master/docs/os/windows/windows-tools.md) to be installed in the Windows VMs first.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r2b3-windows-seamless-filecopy.png](/attachment/doc/r2b3-windows-seamless-filecopy.png)
|
[![r2b3-windows-seamless-filecopy.png](/attachment/wiki/QubesScreenshots/r2b3-windows-seamless-filecopy.png)](/attachment/wiki/QubesScreenshots/r2b3-windows-seamless-filecopy.png)
|
||||||
|
|
||||||
Windows AppVMs are fully integrated with the rest of the Qubes OS system, which includes things such as secure, policy governed, inter-VM file copy, clipboard, and generally our whole elastic qrexec infrastructure for secure inter-VM RPC! Starting with Qubes R2 Beta 3 we also support HVM-based templates allowing to instantly create many Windows AppVMs with shared "root filesystem" from the Template VM (but one should ensure their license allows for such instantiation of the OS in the template). Just like with Linux AppVMs!
|
Windows AppVMs are fully integrated with the rest of the Qubes OS system, which includes things such as secure, policy governed, inter-VM file copy, clipboard, and generally our whole elastic qrexec infrastructure for secure inter-VM RPC! Starting with Qubes R2 Beta 3 we also support HVM-based templates allowing to instantly create many Windows AppVMs with shared "root filesystem" from the Template VM (but one should ensure their license allows for such instantiation of the OS in the template). Just like with Linux AppVMs!
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-xfce-programmers-desktop.png](/attachment/doc/r4.0-xfce-programmers-desktop.png)
|
[![r4.0-xfce-programmers-desktop.png](/attachment/wiki/QubesScreenshots/r4.0-xfce-programmers-desktop.png)](/attachment/wiki/QubesScreenshots/r4.0-xfce-programmers-desktop.png)
|
||||||
|
|
||||||
Here we see Xfce4.14 Window Manager running in Dom0 (instead of KDE as on previous versions). Qubes supports customized Xfce4 in dom0 beginning with R2 Beta 2!
|
Here we see Xfce4.14 Window Manager running in Dom0 (instead of KDE as on previous versions). Qubes supports customized Xfce4 in dom0 beginning with R2 Beta 2!
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-password-prompt.png](/attachment/doc/r4.0-password-prompt.png)
|
[![r4.0-password-prompt.png](/attachment/wiki/QubesScreenshots/r4.0-password-prompt.png)](/attachment/wiki/QubesScreenshots/r4.0-password-prompt.png)
|
||||||
|
|
||||||
It is always clearly visible to which domain a given window belongs. Here it’s immediately clear that the passphrase-prompting window belongs to some domain with the “blue” label. When we look at the titlebar, we see “[qubes]”, which is the name of the actual domain. Theoretically, the untrusted application (here, the red Tor Browser running in a DisposableVM) beneath the prompt window could draw a similar looking window within its contents. In practice, this would be very hard, because it doesn’t know, e.g., the exact decoration style that is in use. However, if this is a concern, the user can simply try to move the more trusted window onto some empty space on the desktop such that no other window is present beneath it. Or, better yet, use the Expose-like effect (available via a hot-key). A malicious application from an untrusted domain cannot spoof the whole desktop because the trusted Window Manager will never let any domain “own” the whole screen. Its titlebar will always be visible.
|
It is always clearly visible to which domain a given window belongs. Here it’s immediately clear that the passphrase-prompting window belongs to some domain with the “blue” label. When we look at the titlebar, we see “[qubes]”, which is the name of the actual domain. Theoretically, the untrusted application (here, the red Tor Browser running in a DisposableVM) beneath the prompt window could draw a similar looking window within its contents. In practice, this would be very hard, because it doesn’t know, e.g., the exact decoration style that is in use. However, if this is a concern, the user can simply try to move the more trusted window onto some empty space on the desktop such that no other window is present beneath it. Or, better yet, use the Expose-like effect (available via a hot-key). A malicious application from an untrusted domain cannot spoof the whole desktop because the trusted Window Manager will never let any domain “own” the whole screen. Its titlebar will always be visible.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-xfce-tray-icons.png](/attachment/doc/r4.0-xfce-tray-icons.png)
|
[![r4.0-xfce-tray-icons.png](/attachment/wiki/QubesScreenshots/r4.0-xfce-tray-icons.png)](/attachment/wiki/QubesScreenshots/r4.0-xfce-tray-icons.png)
|
||||||
|
|
||||||
Qubes is all about seamless integration from the user’s point of view. Here you can see how it virtualizes tray icons from other domains. Notice the network icon is in red. This icon is in fact managed by the Network Manager running in a separate NetVM.
|
Qubes is all about seamless integration from the user’s point of view. Here you can see how it virtualizes tray icons from other domains. Notice the network icon is in red. This icon is in fact managed by the Network Manager running in a separate NetVM.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-manager-and-sysnet-network-prompt.png](/attachment/doc/r4.0-manager-and-sysnet-network-prompt.png)
|
[![r4.0-manager-and-sysnet-network-prompt.png](/attachment/wiki/QubesScreenshots/r4.0-manager-and-sysnet-network-prompt.png)](/attachment/wiki/QubesScreenshots/r4.0-manager-and-sysnet-network-prompt.png)
|
||||||
|
|
||||||
All the networking runs in a special, unprivileged NetVM. (Notice the red frame around the Network Manager dialog box on the screen above.) This means that in the event that your network card driver, Wi-Fi stack, or DHCP client is compromised, the integrity of the rest of the system will not be affected! This feature requires Intel VT-d or AMD IOMMU hardware (e.g., Core i5/i7 systems)
|
All the networking runs in a special, unprivileged NetVM. (Notice the red frame around the Network Manager dialog box on the screen above.) This means that in the event that your network card driver, Wi-Fi stack, or DHCP client is compromised, the integrity of the rest of the system will not be affected! This feature requires Intel VT-d or AMD IOMMU hardware (e.g., Core i5/i7 systems)
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-software-update.png](/attachment/doc/r4.0-software-update.png)
|
[![r4.0-software-update.png](/attachment/wiki/QubesScreenshots/r4.0-software-update.png)](/attachment/wiki/QubesScreenshots/r4.0-software-update.png)
|
||||||
|
|
||||||
Qubes lets you update all the software in all the domains all at once, in a centralized way. This is possible thanks to Qubes' unique TemplateVM technology. Note that the user is not required to shut down any AppVMs (domains) for the update process. This can be done later, at a convenient moment, and separately for each AppVM.
|
Qubes lets you update all the software in all the domains all at once, in a centralized way. This is possible thanks to Qubes' unique TemplateVM technology. Note that the user is not required to shut down any AppVMs (domains) for the update process. This can be done later, at a convenient moment, and separately for each AppVM.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-copy-paste.png](/attachment/doc/r4.0-copy-paste.png)
|
[![r4.0-copy-paste.png](/attachment/wiki/QubesScreenshots/r4.0-copy-paste.png)](/attachment/wiki/QubesScreenshots/r4.0-copy-paste.png)
|
||||||
|
|
||||||
Qubes supports secure copy-and-paste operations between AppVMs. Only the user can initiate a copy or paste operation using a special key combination (Ctrl-Shift-C/V). Other AppVMs have no access to the clipboard buffer, so they cannot steal data from the clipboard. Only the user decides which AppVM should be given access to the clipboard. (This is done by selecting the destination AppVM’s window and pressing the Ctrl-Shift-V combination.)
|
Qubes supports secure copy-and-paste operations between AppVMs. Only the user can initiate a copy or paste operation using a special key combination (Ctrl-Shift-C/V). Other AppVMs have no access to the clipboard buffer, so they cannot steal data from the clipboard. Only the user decides which AppVM should be given access to the clipboard. (This is done by selecting the destination AppVM’s window and pressing the Ctrl-Shift-V combination.)
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[!["r4.0-copy-to-other-appvm-1.png](/attachment/doc/r4.0-copy-to-other-appvm-2.png)
|
[!["r4.0-copy-to-other-appvm-1.png](/attachment/wiki/QubesScreenshots/r4.0-copy-to-other-appvm-1.png)](/attachment/wiki/QubesScreenshots/r4.0-copy-to-other-appvm-1.png) [![r4.0-copy-to-other-appvm-3.png](/attachment/wiki/QubesScreenshots/r4.0-copy-to-other-appvm-2.png)](/attachment/wiki/QubesScreenshots/r4.0-copy-to-other-appvm-2.png)
|
||||||
|
|
||||||
Qubes also supports secure file copying between AppVMs.
|
Qubes also supports secure file copying between AppVMs.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-open-in-dispvm-1.png](/attachment/doc/r4.0-open-in-dispvm-2.png)
|
[![r4.0-open-in-dispvm-1.png](/attachment/wiki/QubesScreenshots/r4.0-open-in-dispvm-1.png)](/attachment/wiki/QubesScreenshots/r4.0-open-in-dispvm-1.png) [![r4.0-open-in-dispvm-2.png](/attachment/wiki/QubesScreenshots/r4.0-open-in-dispvm-2.png)](/attachment/wiki/QubesScreenshots/r4.0-open-in-dispvm-2.png)
|
||||||
|
|
||||||
Qubes' unique DisposableVMs (DispVMs) allow the user to open any file in a disposable VM in a matter of seconds! A file can be edited in a disposable VM, and any changes are projected back onto the original file. Currently, there is no way to mark files to be automatically opened in a disposable VM (one needs to right-click on the file and choose the "View in DisposableVM" or "Edit in DisposableVM" option), but this is planned for the R2 Beta 3 release.
|
Qubes' unique DisposableVMs (DispVMs) allow the user to open any file in a disposable VM in a matter of seconds! A file can be edited in a disposable VM, and any changes are projected back onto the original file. Currently, there is no way to mark files to be automatically opened in a disposable VM (one needs to right-click on the file and choose the "View in DisposableVM" or "Edit in DisposableVM" option), but this is planned for the R2 Beta 3 release.
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-convert-to-trusted-pdf-1.png](/attachment/doc/r4.1-converting-pdf.png)
|
[![r4.0-convert-to-trusted-pdf-1.png](/attachment/wiki/QubesScreenshots/r4.0-convert-to-trusted-pdf-1.png)](/attachment/wiki/QubesScreenshots/r4.0-convert-to-trusted-pdf-1.png) [![r4.1-converting-pdf.png](/attachment/wiki/QubesScreenshots/r4.1-converting-pdf.png)](/attachment/wiki/QubesScreenshots/r4.1-converting-pdf.png)
|
||||||
|
|
||||||
Qubes provides an advanced infrastructure for programming inter-VM services, such as a PDF converter for untrusted files (which is described in [this article](https://blog.invisiblethings.org/2013/02/21/converting-untrusted-pdfs-into-trusted.html)).
|
Qubes provides an advanced infrastructure for programming inter-VM services, such as a PDF converter for untrusted files (which is described in [this article](https://blog.invisiblethings.org/2013/02/21/converting-untrusted-pdfs-into-trusted.html)).
|
||||||
|
|
||||||
* * * * *
|
* * * * *
|
||||||
|
|
||||||
[![r4.0-manager-firewall.png](/attachment/doc/r4.0-manager-firewall.png)
|
[![r4.0-manager-firewall.png](/attachment/wiki/QubesScreenshots/r4.0-manager-firewall.png)](/attachment/wiki/QubesScreenshots/r4.0-manager-firewall.png)
|
||||||
|
|
||||||
Qubes provides a dedicated firewall that itself runs in an isolated FirewallVM.
|
Qubes provides a dedicated firewall that itself runs in an isolated FirewallVM.
|
||||||
|
|
||||||
@ -102,6 +102,6 @@ Qubes provides a dedicated firewall that itself runs in an isolated FirewallVM.
|
|||||||
|
|
||||||
And some more screenshots:
|
And some more screenshots:
|
||||||
|
|
||||||
[![r4.0-xfce-red-and-green-terminals.png](/attachment/doc/r4.0-xfce-red-and-green-terminals.png)
|
[![r4.0-xfce-red-and-green-terminals.png](/attachment/wiki/QubesScreenshots/r4.0-xfce-red-and-green-terminals.png)](/attachment/wiki/QubesScreenshots/r4.0-xfce-red-and-green-terminals.png)
|
||||||
|
|
||||||
[![r2b3-windows-seamless-2.png](/attachment/doc/r2b3-windows-seamless-2.png)
|
[![r2b3-windows-seamless-2.png](/attachment/wiki/QubesScreenshots/r2b3-windows-seamless-2.png)](/attachment/wiki/QubesScreenshots/r2b3-windows-seamless-2.png)
|
||||||
|
@ -30,7 +30,7 @@ There are risks attached to reducing the size of an image, and in general you sh
|
|||||||
There are several disk images which can be easily extended, but pay attention to the overall consumed space of your sparse/thin disk images.
|
There are several disk images which can be easily extended, but pay attention to the overall consumed space of your sparse/thin disk images.
|
||||||
In most cases, the GUI tool Qube Settings (available for every qube from the Start menu, and also in the Qube Manager) will allow you to easily increase maximum disk image size.
|
In most cases, the GUI tool Qube Settings (available for every qube from the Start menu, and also in the Qube Manager) will allow you to easily increase maximum disk image size.
|
||||||
|
|
||||||
![vm-settings-disk-image.png](/attachment/doc/r4.0-vm-settings-disk-image.png)
|
![vm-settings-disk-image.png](/attachment/wiki/DiskSize/r4.0-vm-settings-disk-image.png)
|
||||||
|
|
||||||
In case of standalone qubes and templates, just change the Disk Storage settings above.
|
In case of standalone qubes and templates, just change the Disk Storage settings above.
|
||||||
In case of template-based qubes, the private storage (the /home directory and user files) can be changed in the qube's own settings, but the system root image is [inherited from the template](/doc/how-to-get-started/), and so it must be changed in the template settings.
|
In case of template-based qubes, the private storage (the /home directory and user files) can be changed in the qube's own settings, but the system root image is [inherited from the template](/doc/how-to-get-started/), and so it must be changed in the template settings.
|
||||||
|
@ -120,7 +120,7 @@ In this instance our DHCP server is not useful.
|
|||||||
In order to manually configure networking in a VM, one should first find out the IP/netmask/gateway assigned to the particular VM by Qubes.
|
In order to manually configure networking in a VM, one should first find out the IP/netmask/gateway assigned to the particular VM by Qubes.
|
||||||
This can be seen e.g. in the Qube Manager in the qube's properties:
|
This can be seen e.g. in the Qube Manager in the qube's properties:
|
||||||
|
|
||||||
![r2b1-manager-networking-config.png](/attachment/doc/r2b1-manager-networking-config.png)
|
![r2b1-manager-networking-config.png](/attachment/wiki/HvmCreate/r2b1-manager-networking-config.png)
|
||||||
|
|
||||||
Alternatively, one can use the `qvm-ls -n` command to obtain the same information, (IP/netmask/gateway).
|
Alternatively, one can use the `qvm-ls -n` command to obtain the same information, (IP/netmask/gateway).
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ One problem at the moment however, is that after the whole system gets suspended
|
|||||||
This can be achieved under a Windows HVM by opening the Device Manager, selecting the actual device (such as a USB controller), 'Disabling' the device, and then 'Enabling' the device again.
|
This can be achieved under a Windows HVM by opening the Device Manager, selecting the actual device (such as a USB controller), 'Disabling' the device, and then 'Enabling' the device again.
|
||||||
This is illustrated on the screenshot below:
|
This is illustrated on the screenshot below:
|
||||||
|
|
||||||
![r2b1-win7-usb-disable.png](/attachment/doc/r2b1-win7-usb-disable.png)
|
![r2b1-win7-usb-disable.png](/attachment/wiki/HvmCreate/r2b1-win7-usb-disable.png)
|
||||||
|
|
||||||
## Converting VirtualBox VMs to Qubes HVMs
|
## Converting VirtualBox VMs to Qubes HVMs
|
||||||
|
|
||||||
|
@ -97,9 +97,9 @@ Be sure to select "DD image" mode (*after* selecting the Qubes ISO):
|
|||||||
<b>Note:</b> If you do this on Windows 10, you can only install Qubes without MediaTest, which is not recommended.
|
<b>Note:</b> If you do this on Windows 10, you can only install Qubes without MediaTest, which is not recommended.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
![Rufus menu](/attachment/doc/rufus-menu.png)
|
![Rufus menu](/attachment/wiki/InstallationGuide/rufus-menu.png)
|
||||||
|
|
||||||
![Rufus DD image mode](/attachment/doc/rufus-dd-image-mode.png)
|
![Rufus DD image mode](/attachment/wiki/InstallationGuide/rufus-dd-image-mode.png)
|
||||||
|
|
||||||
If you are an advanced user, and you would like to customize your installation, please see [custom installation](/doc/custom-install/).
|
If you are an advanced user, and you would like to customize your installation, please see [custom installation](/doc/custom-install/).
|
||||||
Otherwise, follow the instructions below.
|
Otherwise, follow the instructions below.
|
||||||
@ -113,7 +113,7 @@ This section will demonstrate a simple installation using mostly default setting
|
|||||||
Just after you power on your machine, make the Qubes OS medium available to the computer by inserting your DVD or USB drive.
|
Just after you power on your machine, make the Qubes OS medium available to the computer by inserting your DVD or USB drive.
|
||||||
Shortly after the Power-on self-test (POST) is completed, you should be greeted with the Qubes OS boot screen.
|
Shortly after the Power-on self-test (POST) is completed, you should be greeted with the Qubes OS boot screen.
|
||||||
|
|
||||||
![Boot screen](/attachment/doc/boot-screen.png)
|
![Boot screen](/attachment/wiki/InstallationGuide/boot-screen.png)
|
||||||
|
|
||||||
<div class="alert alert-info" role="alert">
|
<div class="alert alert-info" role="alert">
|
||||||
<i class="fa fa-info-circle"></i>
|
<i class="fa fa-info-circle"></i>
|
||||||
@ -142,19 +142,19 @@ This may require an [advanced reboot](https://support.microsoft.com/en-us/help/4
|
|||||||
After the POST, you may have a chance to choose a boot device.
|
After the POST, you may have a chance to choose a boot device.
|
||||||
You may wish to select the USB drive or DVD drive as a temporary boot option so that the next time you boot, your internal storage device will be selected first.
|
You may wish to select the USB drive or DVD drive as a temporary boot option so that the next time you boot, your internal storage device will be selected first.
|
||||||
|
|
||||||
![Boot order](/attachment/doc/boot-order.png)
|
![Boot order](/attachment/wiki/InstallationGuide/boot-order.png)
|
||||||
|
|
||||||
### The installer home screen
|
### The installer home screen
|
||||||
|
|
||||||
On the first screen, you are asked to select the language that will be used during the installation process.
|
On the first screen, you are asked to select the language that will be used during the installation process.
|
||||||
When you are done, select **Continue**.
|
When you are done, select **Continue**.
|
||||||
|
|
||||||
![welcome](/attachment/doc/welcome-to-qubes-os-installation-screen.png)
|
![welcome](/attachment/wiki/InstallationGuide/welcome-to-qubes-os-installation-screen.png)
|
||||||
|
|
||||||
Prior to the next screen, a compatibility test runs to check whether IOMMU-virtualization is active or not.
|
Prior to the next screen, a compatibility test runs to check whether IOMMU-virtualization is active or not.
|
||||||
If the test fails, a window will pop up.
|
If the test fails, a window will pop up.
|
||||||
|
|
||||||
![Unsupported hardware detected](/attachment/doc/unsupported-hardware-detected.png)
|
![Unsupported hardware detected](/attachment/wiki/InstallationGuide/unsupported-hardware-detected.png)
|
||||||
|
|
||||||
Do not panic.
|
Do not panic.
|
||||||
It may simply indicate that IOMMU-virtualization hasn't been activated in the BIOS.
|
It may simply indicate that IOMMU-virtualization hasn't been activated in the BIOS.
|
||||||
@ -179,7 +179,7 @@ Those that are familiar with RPM-based distributions should feel at home.
|
|||||||
The Installation summary screen allows you to change how the system will be installed and configured, including localization settings.
|
The Installation summary screen allows you to change how the system will be installed and configured, including localization settings.
|
||||||
At minimum, you are required to select the storage device on which Qubes OS will be installed.
|
At minimum, you are required to select the storage device on which Qubes OS will be installed.
|
||||||
|
|
||||||
![Installation summary not ready](/attachment/doc/installation-summary-not-ready.png)
|
![Installation summary not ready](/attachment/wiki/InstallationGuide/installation-summary-not-ready.png)
|
||||||
|
|
||||||
### Localization
|
### Localization
|
||||||
|
|
||||||
@ -188,23 +188,23 @@ Go to Keyboard Layout, press the "Plus" symbol, search for "German" as indicated
|
|||||||
If you want it be your default language, select the "German" entry in the list and press the arrow button.
|
If you want it be your default language, select the "German" entry in the list and press the arrow button.
|
||||||
Click on "Done" in the upper left corner, and you're ready to go!
|
Click on "Done" in the upper left corner, and you're ready to go!
|
||||||
|
|
||||||
![Keyboard layout selection](/attachment/doc/keyboard-layout-selection.png)
|
![Keyboard layout selection](/attachment/wiki/InstallationGuide/keyboard-layout-selection.png)
|
||||||
|
|
||||||
The process to select a new language is similar to the process to select a new keyboard layout.
|
The process to select a new language is similar to the process to select a new keyboard layout.
|
||||||
Follow the same process in the "Language Support" entry.
|
Follow the same process in the "Language Support" entry.
|
||||||
|
|
||||||
![Language support selection](/attachment/doc/language-support-selection.png)
|
![Language support selection](/attachment/wiki/InstallationGuide/language-support-selection.png)
|
||||||
|
|
||||||
You can have as many keyboard layout and languages as you want.
|
You can have as many keyboard layout and languages as you want.
|
||||||
Post-install, you will be able to switch between them and install others.
|
Post-install, you will be able to switch between them and install others.
|
||||||
|
|
||||||
Don't forget to select your time and date by clicking on the Time & Date entry.
|
Don't forget to select your time and date by clicking on the Time & Date entry.
|
||||||
|
|
||||||
![Time and date](/attachment/doc/time-and-date.png)
|
![Time and date](/attachment/wiki/InstallationGuide/time-and-date.png)
|
||||||
|
|
||||||
### Software
|
### Software
|
||||||
|
|
||||||
![Add-ons](/attachment/doc/add-ons.png)
|
![Add-ons](/attachment/wiki/InstallationGuide/add-ons.png)
|
||||||
|
|
||||||
On the software selection tab, you can choose which software to install in Qubes OS.
|
On the software selection tab, you can choose which software to install in Qubes OS.
|
||||||
Two options are available:
|
Two options are available:
|
||||||
@ -250,7 +250,7 @@ Please note that a minimum storage of 32 GiB is required.
|
|||||||
If you want to install Qubes OS onto a USB drive, just select the USB device as the target installation device.
|
If you want to install Qubes OS onto a USB drive, just select the USB device as the target installation device.
|
||||||
Bear in mind that the installation process is likely to take longer than it would on an internal storage device.
|
Bear in mind that the installation process is likely to take longer than it would on an internal storage device.
|
||||||
|
|
||||||
![Select storage device](/attachment/doc/select-storage-device.png)
|
![Select storage device](/attachment/wiki/InstallationGuide/select-storage-device.png)
|
||||||
|
|
||||||
<div class="alert alert-success" role="alert">
|
<div class="alert alert-success" role="alert">
|
||||||
<i class="fa fa-check-circle"></i>
|
<i class="fa fa-check-circle"></i>
|
||||||
@ -267,11 +267,11 @@ When you're finished, press **Done**.
|
|||||||
<b>Warning:</b> If you forget your encryption passphrase, there is no way to recover it.
|
<b>Warning:</b> If you forget your encryption passphrase, there is no way to recover it.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
![Select storage passhprase](/attachment/doc/select-storage-passphrase.png)
|
![Select storage passhprase](/attachment/wiki/InstallationGuide/select-storage-passphrase.png)
|
||||||
|
|
||||||
When you're ready, press **Begin Installation**.
|
When you're ready, press **Begin Installation**.
|
||||||
|
|
||||||
![Installation summary ready](/attachment/doc/installation-summary-ready.png)
|
![Installation summary ready](/attachment/wiki/InstallationGuide/installation-summary-ready.png)
|
||||||
|
|
||||||
### Create your user account
|
### Create your user account
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ Select **User Creation** to define a new user with administrator privileges and
|
|||||||
Just as for the disk encryption, this password should be complex.
|
Just as for the disk encryption, this password should be complex.
|
||||||
The root account is deactivated and should remain as such.
|
The root account is deactivated and should remain as such.
|
||||||
|
|
||||||
![Account name and password](/attachment/doc/account-name-and-password.png)
|
![Account name and password](/attachment/wiki/InstallationGuide/account-name-and-password.png)
|
||||||
|
|
||||||
When the installation is complete, press **Reboot**.
|
When the installation is complete, press **Reboot**.
|
||||||
Don't forget to remove the installation medium, or else you may end up seeing the installer boot screen again.
|
Don't forget to remove the installation medium, or else you may end up seeing the installer boot screen again.
|
||||||
@ -295,23 +295,23 @@ Don't forget to remove the installation medium, or else you may end up seeing th
|
|||||||
|
|
||||||
If the installation was successful, you should now see the GRUB menu during the boot process.
|
If the installation was successful, you should now see the GRUB menu during the boot process.
|
||||||
|
|
||||||
![Grub boot menu](/attachment/doc/grub-boot-menu.png)
|
![Grub boot menu](/attachment/wiki/InstallationGuide/grub-boot-menu.png)
|
||||||
|
|
||||||
Just after this screen, you will be asked to enter your encryption passphrase.
|
Just after this screen, you will be asked to enter your encryption passphrase.
|
||||||
|
|
||||||
![Unlock storage device screen](/attachment/doc/unlock-storage-device-screen.png)
|
![Unlock storage device screen](/attachment/wiki/InstallationGuide/unlock-storage-device-screen.png)
|
||||||
|
|
||||||
### Initial Setup
|
### Initial Setup
|
||||||
|
|
||||||
You're almost done.
|
You're almost done.
|
||||||
Before you can start using Qubes OS, some configuration is needed.
|
Before you can start using Qubes OS, some configuration is needed.
|
||||||
|
|
||||||
![Initial setup menu](/attachment/doc/initial-setup-menu.png)
|
![Initial setup menu](/attachment/wiki/InstallationGuide/initial-setup-menu.png)
|
||||||
|
|
||||||
By default, the installer will create a number of qubes (depending on the options you selected during the installation process).
|
By default, the installer will create a number of qubes (depending on the options you selected during the installation process).
|
||||||
These are designed to give you a more ready-to-use environment from the get-go.
|
These are designed to give you a more ready-to-use environment from the get-go.
|
||||||
|
|
||||||
![Initial setup menu configuration](/attachment/doc/initial-setup-menu-configuration.png)
|
![Initial setup menu configuration](/attachment/wiki/InstallationGuide/initial-setup-menu-configuration.png)
|
||||||
|
|
||||||
Let's briefly go over the options:
|
Let's briefly go over the options:
|
||||||
|
|
||||||
@ -340,11 +340,11 @@ This configuration process may take a while, depending on the speed and compatib
|
|||||||
After the configuration is done, you will be greeted by the login screen.
|
After the configuration is done, you will be greeted by the login screen.
|
||||||
Enter your password and log in.
|
Enter your password and log in.
|
||||||
|
|
||||||
![Login screen](/attachment/doc/login-screen.png)
|
![Login screen](/attachment/wiki/InstallationGuide/login-screen.png)
|
||||||
|
|
||||||
Congratulations, you are now ready to use Qubes OS!
|
Congratulations, you are now ready to use Qubes OS!
|
||||||
|
|
||||||
![Desktop menu](/attachment/doc/desktop-menu.png)
|
![Desktop menu](/attachment/wiki/InstallationGuide/desktop-menu.png)
|
||||||
|
|
||||||
## Next steps
|
## Next steps
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ should be another RC. If, based on remaining issues, the Committee decides to
|
|||||||
release final, then the Committee agrees upon the release date, which should be
|
release final, then the Committee agrees upon the release date, which should be
|
||||||
no later than a week after.
|
no later than a week after.
|
||||||
|
|
||||||
!["Release cycle"](/attachment/doc/release-cycle.svg)
|
!["Release cycle"](/attachment/wiki/VersionScheme/release-cycle.svg)
|
||||||
|
|
||||||
Bug priorities
|
Bug priorities
|
||||||
--------------
|
--------------
|
||||||
|
@ -31,7 +31,7 @@ Due to its overarching importance, dom0 has no network connectivity and is used
|
|||||||
|
|
||||||
You'll choose a **color** for each of your qubes out of a predefined set of colors. Each window on your desktop will have its frame colored according to the color of that qube. These colored frames help you keep track of which qube each window belongs to and how trustworthy it is. This is especially helpful when you have the same app running in multiple qubes at the same time. For example, if you're logged in to your bank account in one qube while doing some random web surfing in a different qube, you wouldn't want to accidentally enter your banking password in the latter! The colored frames help to avoid such mistakes.
|
You'll choose a **color** for each of your qubes out of a predefined set of colors. Each window on your desktop will have its frame colored according to the color of that qube. These colored frames help you keep track of which qube each window belongs to and how trustworthy it is. This is especially helpful when you have the same app running in multiple qubes at the same time. For example, if you're logged in to your bank account in one qube while doing some random web surfing in a different qube, you wouldn't want to accidentally enter your banking password in the latter! The colored frames help to avoid such mistakes.
|
||||||
|
|
||||||
[![snapshot_40.png](/attachment/doc/r4.0-snapshot_40.png)
|
[![snapshot_40.png](/attachment/wiki/GettingStarted/r4.0-snapshot_40.png)](/attachment/wiki/GettingStarted/r4.0-snapshot_40.png)
|
||||||
|
|
||||||
Most Qubes users associate red with what's untrusted and dangerous (like a red light: stop! danger!), green with what's safe and trusted, and yellow and orange with things in the middle. This color scheme also extends to include blue and black, which are usually interpreted as indicating progressively more trusted domains than green, with black being ultimately trusted.
|
Most Qubes users associate red with what's untrusted and dangerous (like a red light: stop! danger!), green with what's safe and trusted, and yellow and orange with things in the middle. This color scheme also extends to include blue and black, which are usually interpreted as indicating progressively more trusted domains than green, with black being ultimately trusted.
|
||||||
Color and associated meanings are ultimately up to you, however. The system itself does not treat the colors differently. If you create two identical qubes --- black and red, say --- they'll be the same until you start using them differently. Feel free to use the colors in whatever way is most useful to you. For example, you might decide to use three or four qubes for work activities and give them all the same color --- or all different colors. It's entirely up to you.
|
Color and associated meanings are ultimately up to you, however. The system itself does not treat the colors differently. If you create two identical qubes --- black and red, say --- they'll be the same until you start using them differently. Feel free to use the colors in whatever way is most useful to you. For example, you might decide to use three or four qubes for work activities and give them all the same color --- or all different colors. It's entirely up to you.
|
||||||
@ -40,7 +40,7 @@ Color and associated meanings are ultimately up to you, however. The system itse
|
|||||||
|
|
||||||
On operating systems like Windows and macOS, the desktop environment is unchangeable and part of that operating system. With Linux, any of a number of desktop environments are an option. Qubes OS is installed with XFCE as its default desktop environment, but it also supports KDE, as well as the i3 and awesome window managers.
|
On operating systems like Windows and macOS, the desktop environment is unchangeable and part of that operating system. With Linux, any of a number of desktop environments are an option. Qubes OS is installed with XFCE as its default desktop environment, but it also supports KDE, as well as the i3 and awesome window managers.
|
||||||
|
|
||||||
[![r4.0-taskbar.png](/attachment/doc/r4.0-taskbar.png)
|
[![r4.0-taskbar.png](/attachment/wiki/GettingStarted/r4.0-taskbar.png)](/attachment/wiki/GettingStarted/r4.0-taskbar.png)
|
||||||
|
|
||||||
The bar at the top of your screen in Qubes 4.0 includes the following XFCE component areas:
|
The bar at the top of your screen in Qubes 4.0 includes the following XFCE component areas:
|
||||||
|
|
||||||
@ -58,11 +58,11 @@ There are several Tray widgets that are custom to Qubes OS:
|
|||||||
- The **Qubes Disk Space Monitor** will notify you if you're ever running out of disk space.
|
- The **Qubes Disk Space Monitor** will notify you if you're ever running out of disk space.
|
||||||
- The **Qubes Update** tool will inform you when updates are available.
|
- The **Qubes Update** tool will inform you when updates are available.
|
||||||
|
|
||||||
[![q40_widgets.png](/attachment/doc/r4.0-q40_widgets.png)
|
[![q40_widgets.png](/attachment/wiki/GettingStarted/r4.0-q40_widgets.png)](/attachment/wiki/GettingStarted/r4.0-q40_widgets.png)
|
||||||
|
|
||||||
To see all of your qubes at the same time, you can use the **Qube Manager** (go to the App Menu → System Tools → Qube Manager), which displays the states of all the qubes in your system, even the ones that aren't running.
|
To see all of your qubes at the same time, you can use the **Qube Manager** (go to the App Menu → System Tools → Qube Manager), which displays the states of all the qubes in your system, even the ones that aren't running.
|
||||||
|
|
||||||
[![r4.0-qubes-manager.png](/attachment/doc/r4.0-qubes-manager.png)
|
[![r4.0-qubes-manager.png](/attachment/wiki/GettingStarted/r4.0-qubes-manager.png)](/attachment/wiki/GettingStarted/r4.0-qubes-manager.png)
|
||||||
|
|
||||||
#### Command-line interface
|
#### Command-line interface
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ To permanently install new software in a template:
|
|||||||
These new shortcuts will appear in the Applications Menu.
|
These new shortcuts will appear in the Applications Menu.
|
||||||
(If you encounter problems, see [here](/doc/app-menu-shortcut-troubleshooting/) for troubleshooting.)
|
(If you encounter problems, see [here](/doc/app-menu-shortcut-troubleshooting/) for troubleshooting.)
|
||||||
|
|
||||||
![[The Applications tab in Qube Settings](/attachment/doc/r4.1-dom0-appmenu-select.png)
|
![[The Applications tab in Qube Settings](/attachment/wiki/ManagingAppVmShortcuts/r4.1-dom0-appmenu-select.png)](/attachment/wiki/ManagingAppVmShortcuts/r4.1-dom0-appmenu-select.png)
|
||||||
|
|
||||||
## How to update software
|
## How to update software
|
||||||
|
|
||||||
|
@ -38,11 +38,11 @@ Fully updating your Qubes OS system means updating:
|
|||||||
|
|
||||||
You can accomplish this using the **Qubes Update** tool.
|
You can accomplish this using the **Qubes Update** tool.
|
||||||
|
|
||||||
[![Qubes Update](/attachment/doc/r4.0-software-update.png)
|
[![Qubes Update](/attachment/wiki/QubesScreenshots/r4.0-software-update.png)](/attachment/wiki/QubesScreenshots/r4.0-software-update.png)
|
||||||
|
|
||||||
By default, the Qubes Update tool will appear as an icon in the Notification Area when updates are available.
|
By default, the Qubes Update tool will appear as an icon in the Notification Area when updates are available.
|
||||||
|
|
||||||
[![Qube Updates Available](/attachment/doc/r4.0-qube-updates-available.png)
|
[![Qube Updates Available](/attachment/wiki/QubesScreenshots/r4.0-qube-updates-available.png)](/attachment/wiki/QubesScreenshots/r4.0-qube-updates-available.png)
|
||||||
|
|
||||||
However, you can also start the tool manually by selecting it in the Applications Menu under "System Tools."
|
However, you can also start the tool manually by selecting it in the Applications Menu under "System Tools."
|
||||||
Even if no updates have been detected, you can use this tool to check for updates manually at any time by selecting "Enable updates for qubes without known available updates," then selecting all desired items from the list and clicking "Next."
|
Even if no updates have been detected, you can use this tool to check for updates manually at any time by selecting "Enable updates for qubes without known available updates," then selecting all desired items from the list and clicking "Next."
|
||||||
|
@ -24,7 +24,7 @@ In addition to smaller flash memory sticks, this includes things like USB extern
|
|||||||
|
|
||||||
Qubes OS supports the ability to attach a USB drive (or just its partitions) to any qube easily, no matter which qube handles the USB controller.
|
Qubes OS supports the ability to attach a USB drive (or just its partitions) to any qube easily, no matter which qube handles the USB controller.
|
||||||
|
|
||||||
Attaching USB drives is integrated into the Devices Widget: ![device manager icon](/attachment/doc/media-removable.png)
|
Attaching USB drives is integrated into the Devices Widget: ![device manager icon](/attachment/wiki/Devices/media-removable.png)
|
||||||
Simply insert your USB drive and click on the widget.
|
Simply insert your USB drive and click on the widget.
|
||||||
You will see multiple entries for your USB drive; typically, `sys-usb:sda`, `sys-usb:sda1`, and `sys-usb:2-1` for example.
|
You will see multiple entries for your USB drive; typically, `sys-usb:sda`, `sys-usb:sda1`, and `sys-usb:2-1` for example.
|
||||||
Entries starting with a number (e.g. here `2-1`) are the [whole usb-device](/doc/how-to-use-usb-devices/).
|
Entries starting with a number (e.g. here `2-1`) are the [whole usb-device](/doc/how-to-use-usb-devices/).
|
||||||
@ -178,7 +178,7 @@ To attach a file as block device to another qube, first turn it into a loopback
|
|||||||
Afterwards it prints the device-node-name it found.
|
Afterwards it prints the device-node-name it found.
|
||||||
|
|
||||||
2. If you want to use the GUI, you're done.
|
2. If you want to use the GUI, you're done.
|
||||||
Click the Device Manager ![device manager icon](/attachment/doc/media-removable.png) and select the `loop0`-device to attach it to another qube.
|
Click the Device Manager ![device manager icon](/attachment/wiki/Devices/media-removable.png) and select the `loop0`-device to attach it to another qube.
|
||||||
|
|
||||||
If you rather use the command line, continue:
|
If you rather use the command line, continue:
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ PCI devices can be attached using the Qube Settings, but require a VM reboot.
|
|||||||
|
|
||||||
## General Qubes Device Widget Behavior And Handling ##
|
## General Qubes Device Widget Behavior And Handling ##
|
||||||
|
|
||||||
When clicking on the tray icon (which looks similar to this): ![SD card and thumbdrive](/attachment/doc/media-removable.png) several device-classes separated by lines are displayed as tooltip.
|
When clicking on the tray icon (which looks similar to this): ![SD card and thumbdrive](/attachment/wiki/Devices/media-removable.png) several device-classes separated by lines are displayed as tooltip.
|
||||||
Block devices are displayed on top, microphones one below and USB-devices at the bottom.
|
Block devices are displayed on top, microphones one below and USB-devices at the bottom.
|
||||||
|
|
||||||
On most laptops, integrated hardware such as cameras and fingerprint-readers are implemented as USB-devices and can be found here.
|
On most laptops, integrated hardware such as cameras and fingerprint-readers are implemented as USB-devices and can be found here.
|
||||||
@ -57,7 +57,7 @@ Click on one and your device will be attached!
|
|||||||
To detach a device, click the Qubes Devices Widget icon again.
|
To detach a device, click the Qubes Devices Widget icon again.
|
||||||
Attached devices are displayed in bold.
|
Attached devices are displayed in bold.
|
||||||
Hover the one you want to detach.
|
Hover the one you want to detach.
|
||||||
A list of VMs appears, one showing the eject symbol: ![eject icon](/attachment/doc/media-eject.png)
|
A list of VMs appears, one showing the eject symbol: ![eject icon](/attachment/wiki/Devices/media-eject.png)
|
||||||
|
|
||||||
|
|
||||||
### Attaching a Device to Several VMs ###
|
### Attaching a Device to Several VMs ###
|
||||||
|
@ -22,7 +22,7 @@ This means that you can safely work with untrusted files without risk of comprom
|
|||||||
disposables can be launched either directly from dom0's Start Menu or terminal window, or from within app qubes.
|
disposables can be launched either directly from dom0's Start Menu or terminal window, or from within app qubes.
|
||||||
While running, disposables will appear in Qubes VM Manager with the name `disp####`.
|
While running, disposables will appear in Qubes VM Manager with the name `disp####`.
|
||||||
|
|
||||||
[![disposablevm-example.png](/attachment/doc/disposablevm-example.png)
|
[![disposablevm-example.png](/attachment/wiki/DisposableVms/disposablevm-example.png)](/attachment/wiki/DisposableVms/disposablevm-example.png)
|
||||||
|
|
||||||
This diagram provides a general example of how disposables can be used to safely open untrusted links and attachments in disposables. See [this article](https://blog.invisiblethings.org/2010/06/01/disposable-vms.html) for more on why one would want to use a disposable.
|
This diagram provides a general example of how disposables can be used to safely open untrusted links and attachments in disposables. See [this article](https://blog.invisiblethings.org/2010/06/01/disposable-vms.html) for more on why one would want to use a disposable.
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ This app is running in its own dedicated VM -- a disposable created for the purp
|
|||||||
Once you close the viewing application the whole disposable will be destroyed.
|
Once you close the viewing application the whole disposable will be destroyed.
|
||||||
If you have edited the file and saved the changes, the changed file will be saved back to the original app qube, overwriting the original.
|
If you have edited the file and saved the changes, the changed file will be saved back to the original app qube, overwriting the original.
|
||||||
|
|
||||||
![r4.0-open-in-dispvm-1.png](/attachment/doc/r4.0-open-in-dispvm-2.png)
|
![r4.0-open-in-dispvm-1.png](/attachment/wiki/DisposableVms/r4.0-open-in-dispvm-1.png) ![r4.0-open-in-dispvm-2.png](/attachment/wiki/DisposableVms/r4.0-open-in-dispvm-2.png)
|
||||||
|
|
||||||
|
|
||||||
## Opening a fresh web browser instance in a new disposable
|
## Opening a fresh web browser instance in a new disposable
|
||||||
@ -112,7 +112,7 @@ This can be done easily using the Start Menu: just go to **Application Menu -\>
|
|||||||
Wait a few seconds until a web browser starts.
|
Wait a few seconds until a web browser starts.
|
||||||
Once you close the viewing application the whole disposable will be destroyed.
|
Once you close the viewing application the whole disposable will be destroyed.
|
||||||
|
|
||||||
![r4.0-open-in-dispvm-3.png](/attachment/doc/r4.0-open-in-dispvm-3.png)
|
![r4.0-open-in-dispvm-3.png](/attachment/wiki/DisposableVms/r4.0-open-in-dispvm-3.png)
|
||||||
|
|
||||||
|
|
||||||
## Opening a file in a disposable via command line (from app qube)
|
## Opening a file in a disposable via command line (from app qube)
|
||||||
|
@ -45,7 +45,7 @@ There you can attach PCI-devices to a qube.
|
|||||||
|
|
||||||
1. To reach the settings of any qube either
|
1. To reach the settings of any qube either
|
||||||
|
|
||||||
- Press Alt+F3 to open the application finder, type in the VM name, select the "![appmenu](/attachment/doc/qubes-appmenu-select.png)\[VM-name\]: Qube Settings" menu entry and press enter or click "Launch"!
|
- Press Alt+F3 to open the application finder, type in the VM name, select the "![appmenu](/attachment/wiki/Devices/qubes-appmenu-select.png)\[VM-name\]: Qube Settings" menu entry and press enter or click "Launch"!
|
||||||
- Select the VM in Qube Manager and click the settings-button or right-click the VM and select `Qube settings`.
|
- Select the VM in Qube Manager and click the settings-button or right-click the VM and select `Qube settings`.
|
||||||
- Click the Domain Manager, hover the VM you want to attach a device to and select "settings" in the additional menu. (only running VMs!)
|
- Click the Domain Manager, hover the VM you want to attach a device to and select "settings" in the additional menu. (only running VMs!)
|
||||||
|
|
||||||
|
@ -33,9 +33,9 @@ But it has some [issues](https://github.com/QubesOS/qubes-issues/issues/4661).)
|
|||||||
|
|
||||||
### With Qubes Device Manager
|
### With Qubes Device Manager
|
||||||
|
|
||||||
Click the device-manager-icon: ![device manager icon](/attachment/doc/media-removable.png)
|
Click the device-manager-icon: ![device manager icon](/attachment/wiki/Devices/media-removable.png)
|
||||||
A list of available devices appears.
|
A list of available devices appears.
|
||||||
USB-devices have a USB-icon to their right: ![usb icon](/attachment/doc/generic-usb.png)
|
USB-devices have a USB-icon to their right: ![usb icon](/attachment/wiki/Devices/generic-usb.png)
|
||||||
|
|
||||||
Hover on one device to display a list of VMs you may attach it to.
|
Hover on one device to display a list of VMs you may attach it to.
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ You're done.
|
|||||||
After you finished using the USB-device, you can detach it the same way by clicking on the Devices Widget.
|
After you finished using the USB-device, you can detach it the same way by clicking on the Devices Widget.
|
||||||
You will see an entry in bold for your device such as **`sys-usb:2-5 - 058f_USB_2.0_Camera`**.
|
You will see an entry in bold for your device such as **`sys-usb:2-5 - 058f_USB_2.0_Camera`**.
|
||||||
Hover on the attached device to display a list of running VMs.
|
Hover on the attached device to display a list of running VMs.
|
||||||
The one to which your device is connected will have an eject button ![eject icon](/attachment/doc/media-eject.png) next to it.
|
The one to which your device is connected will have an eject button ![eject icon](/attachment/wiki/Devices/media-eject.png) next to it.
|
||||||
Click that and your device will be detached.
|
Click that and your device will be detached.
|
||||||
|
|
||||||
### With The Command Line Tool
|
### With The Command Line Tool
|
||||||
|
@ -27,7 +27,7 @@ How to edit rules
|
|||||||
|
|
||||||
In order to edit rules for a given qube, select it in the Qube Manager and press the "firewall" button.
|
In order to edit rules for a given qube, select it in the Qube Manager and press the "firewall" button.
|
||||||
|
|
||||||
![r4.0-manager-firewall.png](/attachment/doc/r4.0-manager-firewall.png)
|
![r4.0-manager-firewall.png](/attachment/wiki/QubesFirewall/r4.0-manager-firewall.png)
|
||||||
|
|
||||||
If the qube is running, you can open Settings from the Qube Popup Menu.
|
If the qube is running, you can open Settings from the Qube Popup Menu.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ This way one not-so-trusted domain, e.g. the one where Thunderbird is running, c
|
|||||||
This way the compromise of your domain where Thunderbird or another client app is running -- arguably a not-so-unthinkable scenario -- does not allow the attacker to automatically also steal all your keys.
|
This way the compromise of your domain where Thunderbird or another client app is running -- arguably a not-so-unthinkable scenario -- does not allow the attacker to automatically also steal all your keys.
|
||||||
(We should make a rather obvious comment here that the so-often-used passphrases on private keys are pretty meaningless because the attacker can easily set up a simple backdoor which would wait until the user enters the passphrase and steal the key then.)
|
(We should make a rather obvious comment here that the so-often-used passphrases on private keys are pretty meaningless because the attacker can easily set up a simple backdoor which would wait until the user enters the passphrase and steal the key then.)
|
||||||
|
|
||||||
[![split-gpg-diagram.png](/attachment/doc/split-gpg-diagram.png)
|
[![split-gpg-diagram.png](/attachment/wiki/SplitGpg/split-gpg-diagram.png)](/attachment/wiki/SplitGpg/split-gpg-diagram.png)
|
||||||
|
|
||||||
This diagram presents an overview of the Split GPG architecture.
|
This diagram presents an overview of the Split GPG architecture.
|
||||||
|
|
||||||
@ -37,8 +37,8 @@ Unfortunately this problem of signing reliability is not solvable by Split GPG)
|
|||||||
With Qubes Split GPG this problem is drastically minimized, because each time the key is to be used the user is asked for consent (with a definable time out, 5 minutes by default), plus is always notified each time the key is used via a tray notification from the domain where GPG backend is running.
|
With Qubes Split GPG this problem is drastically minimized, because each time the key is to be used the user is asked for consent (with a definable time out, 5 minutes by default), plus is always notified each time the key is used via a tray notification from the domain where GPG backend is running.
|
||||||
This way it would be easy to spot unexpected requests to decrypt documents.
|
This way it would be easy to spot unexpected requests to decrypt documents.
|
||||||
|
|
||||||
[![r2-split-gpg-1.png](/attachment/doc/r2-split-gpg-1.png)
|
[![r2-split-gpg-1.png](/attachment/wiki/SplitGpg/r2-split-gpg-1.png)](/attachment/wiki/SplitGpg/r2-split-gpg-1.png)
|
||||||
[![r2-split-gpg-3.png](/attachment/doc/r2-split-gpg-3.png)
|
[![r2-split-gpg-3.png](/attachment/wiki/SplitGpg/r2-split-gpg-3.png)](/attachment/wiki/SplitGpg/r2-split-gpg-3.png)
|
||||||
|
|
||||||
## Configuring Split GPG
|
## Configuring Split GPG
|
||||||
|
|
||||||
@ -156,9 +156,9 @@ Starting with version 78, Thunderbird has a built-in PGP feature and no longer r
|
|||||||
|
|
||||||
In `work-email`, use the Thunderbird config editor (found at the bottom of preferences/options), and search for `mail.openpgp.allow_external_gnupg`. Switch the value to true. Still in config editor, search for `mail.openpgp.alternative_gpg_path`. Set its value to `/usr/bin/qubes-gpg-client-wrapper`. Restart Thunderbird after this change.
|
In `work-email`, use the Thunderbird config editor (found at the bottom of preferences/options), and search for `mail.openpgp.allow_external_gnupg`. Switch the value to true. Still in config editor, search for `mail.openpgp.alternative_gpg_path`. Set its value to `/usr/bin/qubes-gpg-client-wrapper`. Restart Thunderbird after this change.
|
||||||
|
|
||||||
[![tb78-1.png](/attachment/doc/tb78-1.png)
|
[![tb78-1.png](/attachment/wiki/SplitGpg/tb78-1.png)](/attachment/wiki/SplitGpg/tb78-1.png)
|
||||||
[![tb78-2.png](/attachment/doc/tb78-2.png)
|
[![tb78-2.png](/attachment/wiki/SplitGpg/tb78-2.png)](/attachment/wiki/SplitGpg/tb78-2.png)
|
||||||
[![tb78-3.png](/attachment/doc/tb78-3.png)
|
[![tb78-3.png](/attachment/wiki/SplitGpg/tb78-3.png)](/attachment/wiki/SplitGpg/tb78-3.png)
|
||||||
|
|
||||||
You need to obtain your key ID which should be **exactly 16 characters**. Enter the command `qubes-gpg-client-wrapper -K --keyid-format long`:
|
You need to obtain your key ID which should be **exactly 16 characters**. Enter the command `qubes-gpg-client-wrapper -K --keyid-format long`:
|
||||||
|
|
||||||
@ -178,24 +178,24 @@ ssb rsa2048/370CE932085BA13B 2020-09-05 [E] [expires: 2022-09-05]
|
|||||||
|
|
||||||
Open the Account Settings and open the *End-to-End Encryption* tab of the respective email account. Click the *Add Key* button. You'll be offered the choice *Use your external key through GnuPG*. Select it and click Continue.
|
Open the Account Settings and open the *End-to-End Encryption* tab of the respective email account. Click the *Add Key* button. You'll be offered the choice *Use your external key through GnuPG*. Select it and click Continue.
|
||||||
|
|
||||||
[![tb78-4.png](/attachment/doc/tb78-4.png)
|
[![tb78-4.png](/attachment/wiki/SplitGpg/tb78-4.png)](/attachment/wiki/SplitGpg/tb78-4.png)
|
||||||
[![tb78-5.png](/attachment/doc/tb78-5.png)
|
[![tb78-5.png](/attachment/wiki/SplitGpg/tb78-5.png)](/attachment/wiki/SplitGpg/tb78-5.png)
|
||||||
|
|
||||||
The key ID reference you would need here is `777402E6D301615C`. Now paste or type the ID of the secret key that you would like to use. Be careful to enter it correctly, because your input isn't verified. Confirm to save this key ID. Now you can select the key ID to use.
|
The key ID reference you would need here is `777402E6D301615C`. Now paste or type the ID of the secret key that you would like to use. Be careful to enter it correctly, because your input isn't verified. Confirm to save this key ID. Now you can select the key ID to use.
|
||||||
|
|
||||||
[![tb78-6.png](/attachment/doc/tb78-6.png)
|
[![tb78-6.png](/attachment/wiki/SplitGpg/tb78-6.png)](/attachment/wiki/SplitGpg/tb78-6.png)
|
||||||
[![tb78-7.png](/attachment/doc/tb78-7.png)
|
[![tb78-7.png](/attachment/wiki/SplitGpg/tb78-7.png)](/attachment/wiki/SplitGpg/tb78-7.png)
|
||||||
|
|
||||||
This key ID will be used to digitally sign or send an encrypted message with your account. For this to work, Thunderbird needs a copy of your public key. At this time, Thunderbird doesn't fetch the public key from `/usr/bin/qubes-gpg-client-wrapper`, you must manually import it. Export the key as follow (assuming the key ID would be `777402E6D301615C`):
|
This key ID will be used to digitally sign or send an encrypted message with your account. For this to work, Thunderbird needs a copy of your public key. At this time, Thunderbird doesn't fetch the public key from `/usr/bin/qubes-gpg-client-wrapper`, you must manually import it. Export the key as follow (assuming the key ID would be `777402E6D301615C`):
|
||||||
|
|
||||||
[![tb78-8.png](/attachment/doc/tb78-8.png)
|
[![tb78-8.png](/attachment/wiki/SplitGpg/tb78-8.png)](/attachment/wiki/SplitGpg/tb78-8.png)
|
||||||
[![tb78-9.png](/attachment/doc/tb78-9.png)
|
[![tb78-9.png](/attachment/wiki/SplitGpg/tb78-9.png)](/attachment/wiki/SplitGpg/tb78-9.png)
|
||||||
|
|
||||||
Use Thunderbird's Tools menu to open *OpenPGP Key Management*. In that window, use the File menu to access the *Import Public Key(s) From File* command. Open the file with your public key. After the import was successful, right click on the imported key in the list and select *Key Properties*. You must mark your own key as *Yes, I've verified in person this key has the correct fingerprint*.
|
Use Thunderbird's Tools menu to open *OpenPGP Key Management*. In that window, use the File menu to access the *Import Public Key(s) From File* command. Open the file with your public key. After the import was successful, right click on the imported key in the list and select *Key Properties*. You must mark your own key as *Yes, I've verified in person this key has the correct fingerprint*.
|
||||||
|
|
||||||
Once this is done, you should be able to send an encrypted and signed email by selecting *Require Encryption* or *Digitally Sign This Message* in the compose menu *Options* or *Security* toolbar button. You can try it by sending an email to yourself.
|
Once this is done, you should be able to send an encrypted and signed email by selecting *Require Encryption* or *Digitally Sign This Message* in the compose menu *Options* or *Security* toolbar button. You can try it by sending an email to yourself.
|
||||||
|
|
||||||
[![tb78-10.png](/attachment/doc/tb78-10.png)
|
[![tb78-10.png](/attachment/wiki/SplitGpg/tb78-10.png)](/attachment/wiki/SplitGpg/tb78-10.png)
|
||||||
|
|
||||||
For more details about using smart cards/Split GPG with Thunderbird PGP feature, please see [Thunderbird:OpenPGP:Smartcards](https://wiki.mozilla.org/Thunderbird:OpenPGP:Smartcards) from which the above documentation is inspired.
|
For more details about using smart cards/Split GPG with Thunderbird PGP feature, please see [Thunderbird:OpenPGP:Smartcards](https://wiki.mozilla.org/Thunderbird:OpenPGP:Smartcards) from which the above documentation is inspired.
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ It is recommended to set up and use `/usr/bin/qubes-gpg-client-wrapper`, as disc
|
|||||||
|
|
||||||
On a fresh Enigmail install, your need to change the default `Enigmail Junior Mode`. Go to Thunderbird preferences and then privacy tab. Select `Force using S/MIME and Enigmail`. Then, in the preferences of Enigmail, make it point to `/usr/bin/qubes-gpg-client-wrapper` instead of the standard GnuPG binary:
|
On a fresh Enigmail install, your need to change the default `Enigmail Junior Mode`. Go to Thunderbird preferences and then privacy tab. Select `Force using S/MIME and Enigmail`. Then, in the preferences of Enigmail, make it point to `/usr/bin/qubes-gpg-client-wrapper` instead of the standard GnuPG binary:
|
||||||
|
|
||||||
[![tb-enigmail-split-gpg-settings-2.png](/attachment/doc/tb-enigmail-split-gpg-settings-2.png)
|
[![tb-enigmail-split-gpg-settings-2.png](/attachment/wiki/SplitGpg/tb-enigmail-split-gpg-settings-2.png)](/attachment/wiki/SplitGpg/tb-enigmail-split-gpg-settings-2.png)
|
||||||
|
|
||||||
## Using Keybase with Split GPG
|
## Using Keybase with Split GPG
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ Use `qubes-gpg-import-key` in the client app qube to import the key into the GPG
|
|||||||
|
|
||||||
A safe, unspoofable user consent dialog box is displayed.
|
A safe, unspoofable user consent dialog box is displayed.
|
||||||
|
|
||||||
[![r2-split-gpg-5.png](/attachment/doc/r2-split-gpg-5.png)
|
[![r2-split-gpg-5.png](/attachment/wiki/SplitGpg/r2-split-gpg-5.png)](/attachment/wiki/SplitGpg/r2-split-gpg-5.png)
|
||||||
|
|
||||||
Selecting "Yes to All" will add a line in the corresponding [RPC Policy](/doc/rpc-policy/) file.
|
Selecting "Yes to All" will add a line in the corresponding [RPC Policy](/doc/rpc-policy/) file.
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Therefore, the token is never in the same qube as the browser.
|
|||||||
Our proxy forwards only the data necessary to actually perform the authentication, leaving all unnecessary data out, so it won't become a vector of attack.
|
Our proxy forwards only the data necessary to actually perform the authentication, leaving all unnecessary data out, so it won't become a vector of attack.
|
||||||
This is depicted in the diagram below (click for full size).
|
This is depicted in the diagram below (click for full size).
|
||||||
|
|
||||||
[![Qubes U2F Proxy diagram](/attachment/posts/u2f.svg)](/attachment/posts/u2f.svg)
|
[![Qubes U2F Proxy diagram](/attachment/wiki/posts/u2f.svg)](/attachment/wiki/posts/u2f.svg)
|
||||||
|
|
||||||
The Qubes U2F Proxy has two parts: the frontend and the backend.
|
The Qubes U2F Proxy has two parts: the frontend and the backend.
|
||||||
The frontend runs in the same qube as the browser and presents a fake USB-like HID device using `uhid`.
|
The frontend runs in the same qube as the browser and presents a fake USB-like HID device using `uhid`.
|
||||||
|
@ -14,7 +14,7 @@ title: App Menu Shortcut Troubleshooting
|
|||||||
For ease of use Qubes aggregates shortcuts to applications that are installed in app qubes and shows them in one application menu (aka "app menu" or "start menu") in dom0.
|
For ease of use Qubes aggregates shortcuts to applications that are installed in app qubes and shows them in one application menu (aka "app menu" or "start menu") in dom0.
|
||||||
Clicking on such shortcut runs the assigned application in its app qube.
|
Clicking on such shortcut runs the assigned application in its app qube.
|
||||||
|
|
||||||
![dom0-menu.png"](/attachment/doc/r4.0-dom0-menu.png)
|
![dom0-menu.png"](/attachment/wiki/ManagingAppVmShortcuts/r4.0-dom0-menu.png)
|
||||||
|
|
||||||
To make applications newly installed via the OS's package manager show up in the menu, use the `qvm-sync-appmenus` command (Linux VMs do this automatically):
|
To make applications newly installed via the OS's package manager show up in the menu, use the `qvm-sync-appmenus` command (Linux VMs do this automatically):
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ To make applications newly installed via the OS's package manager show up in the
|
|||||||
|
|
||||||
After that, select the *Add more shortcuts* entry in the VM's submenu to customize which applications are shown:
|
After that, select the *Add more shortcuts* entry in the VM's submenu to customize which applications are shown:
|
||||||
|
|
||||||
![dom0-appmenu-select.png"](/attachment/doc/r4.0-dom0-appmenu-select.png)
|
![dom0-appmenu-select.png"](/attachment/wiki/ManagingAppVmShortcuts/r4.0-dom0-appmenu-select.png)
|
||||||
|
|
||||||
The above image shows that Windows HVMs are also supported (provided that Qubes Tools are installed).
|
The above image shows that Windows HVMs are also supported (provided that Qubes Tools are installed).
|
||||||
|
|
||||||
|
@ -130,4 +130,4 @@ After the whole system gets suspended into S3 sleep and subsequently resumed, so
|
|||||||
This can be achieved under a Windows HVM by opening the Device Manager, selecting the actual device (such as a USB controller), 'Disabling' the device, and then 'Enabling' the device again.
|
This can be achieved under a Windows HVM by opening the Device Manager, selecting the actual device (such as a USB controller), 'Disabling' the device, and then 'Enabling' the device again.
|
||||||
This is illustrated on the screenshot below:
|
This is illustrated on the screenshot below:
|
||||||
|
|
||||||
![r2b1-win7-usb-disable.png](/attachment/doc/r2b1-win7-usb-disable.png)
|
![r2b1-win7-usb-disable.png](/attachment/wiki/HvmCreate/r2b1-win7-usb-disable.png)
|
||||||
|
Loading…
Reference in New Issue
Block a user