Библиотека сайта rus-linux.net
Защищенная операционная система Qubes для настольных компьютеров: установка
Оригинал: Secure Desktops with Qubes: Installation
Автор: Kyle Rankin
Дата публикации: 28 мая 2016 г.
Перевод: А.Панин
Дата перевода: 15 июня 2016 г.
Это вторая статья из серии об операционной системе Qubes. В первой статье я подробно описал возможности Qubes, а также ее главное отличие от большинства дистрибутивов Linux для настольных компьютеров, а именно, механизм разделения приложений по различным виртуальным машинам с целью максимального сокращения возможных маневров злоумышленников в случае компрометации той или иной виртуальной машины. Данный механизм позволяет вам использовать, к примеру, одну виртуальную машину для обычного веб-серфинга, еще одну — для работы с онлайн-банкингом и еще одну — для хранения ключей GPG и работы с менеджером паролей. В данной статье я максимально просто опишу процесс загрузки файла образа установочного диска и непосредственной установки Qubes, а также проведу небольшой обзор окружения рабочего стола и различных типов виртуальных машин, создаваемых по умолчанию.
Загрузка и проверка файла образа установочного диска операционной системы Qubes формата ISO
Вы можете загрузить новейшую версию Qubes с
В дополнение к файлу образа установочного диска формата ISO вам также следует загрузить файл с электронной подписью и файл открытого ключа с помощью соответствующих ссылок на упомянутой странице. Файл с электронной подписью содержит подпись GPG, созданную с использованием закрытого ключа GPG команды разработчиков Qubes. Благодаря ей вы можете убедиться не только в том, что файл образа установочного диска не был поврежден в процессе загрузки, но и в том, что никто не подменил оригинальный файл, созданный командой разработчиков Qubes. Разумеется, злоумышленник может подменить файл образа установочного диска, а также файл открытого ключа, поэтому следует загружать файл открытого ключа с отдельных компьютеров, расположенных в отдельных сетях (в идеале не связанных с вашей сетью) и использовать такой инструмент, как sha256sum для сравнения хэшей всех загруженных файлов. В том случае, если все хэши совпадают, вы можете быть вполне уверены в том, что для создания электронной подписи использовался корректный ключ, ведь одновременная модификация потоков данных, передаваемых между несколькими компьютерами и сетями, является достаточно сложной задачей для любого злоумышленника.
После того, как вы проверите корректность открытого ключа, вы можете добавить его в свою связку ключей GPG с помощью следующей команды:
$ gpg --import qubes-master-signing-key.asc
Далее вы можете использовать утилиту gpg для проверки электронной подписи загруженного файла образа установочного диска формата ISO:
$ gpg -v --verify Qubes-R3.1-x86_64.iso.asc Qubes-R3.1-x86_64.iso gpg: armor header: Version: GnuPG v1 gpg: Signature made Tue 08 Mar 2016 07:40:56 PM PST using RSA key ID 03FA5082 gpg: using classic trust model gpg: Good signature from "Qubes OS Release 3 Signing Key" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: C522 61BE 0A82 3221 D94C A1D1 CB11 CA1D 03FA 5082 gpg: binary signature, digest algorithm SHA256
В выводе вас должна в первую очередь интересовать строка "Good signature", которая сообщает о совпадении электронной подписи. Если вы обнаружите предупреждение, такое, как в примере вывода выше, вам нужно будет просто добавить открытый ключ в свою связку ключей и снова выполнить последнюю команду, после чего можно будет сделать однозначный вывод о безопасности загруженного образа.
Установка Qubes
Процесс установки операционной системы Qubes является либо очень очевидным и простым, либо очень сложным в зависимости от используемого аппаратного обеспечения. Из-за сложностей комбинирования технологии виртуализации и аппаратных возможностей различных устройств, требуемых для корректной работы Qubes, данная операционная система не всегда корректно работает даже на тех компьютерах, на которых раньше отлично работали различные дистрибутивы Linux. На веб-сайте проекта Qubes расположен список совместимого аппаратного обеспечения, на основе которого вы можете сделать предварительный вывод о корректности работы того или иного устройства, причем на этом же веб-сайте начато создание списка сертифицированного аппаратного обеспечения, в который пока добавлен лишь первый официально сертифицированный для запуска Qubes ноутбук Purism Librem 13.
Как и в случае работы с большинством установщиков дистрибутивов, вам будет предоставлена возможность разделения вашего жесткого диска на разделы, причем вы можете как согласиться с предложенным разделением, так и создать собственное разделение. Обратите внимание на то, что по умолчанию Qubes активирует функцию шифрования данных на разделах жесткого диска, поэтому вам придется создать как минимум один отдельный раздел /boot. После окончания работы установщика вы увидите окно мастера конфигурации системы, с помощью которого вы сможете установить значения нескольких дополнительных параметров конфигурации, таких, как активация виртуальной машины USB с именем sys-usb. Эта виртуальная машина позволит изолировать все ваши устройства с интерфейсом USB и будет защищать все программные компоненты окружения рабочего стола от вредоносных USB-устройств. Данный механизм все еще является экспериментальным и имеет некоторые достоинства и недостатки, о которых я расскажу в следующей статье. По умолчанию соответствующий параметр конфигурации системы деактивирован, поэтому в том случае, если вы не уверены в необходимости активации описанного механизма, просто не активируйте его в процессе установки - при необходимости вы в любом случае сможете создать описанную виртуальную машину позднее.
Кроме того, установщик также позволяет вам выбрать окружения рабочего стола для установки: KDE, XFCE или оба. Если вы установите оба окружения, вы сможете выбирать необходимое окружение рабочего стола в процессе входа в систему таким же образом, как и в любом другом дистрибутиве Linux. Принимая во внимание дешевизну дискового пространства я рекомендую вам установить оба окружения рабочего стола.
Рабочий стол Qubes
Вне зависимости от того, выберите вы KDE или XFCE в качестве окружения рабочего стола, основной принцип запуска приложений в Qubes останется прежним, поэтому вместо описания особенностей определенного окружения рабочего стола, я попытаюсь максимально обобщенно описать возможности системы таким образом, чтобы данное описание подходило как к KDE, так и к XFCE.
Первой особенностью системы Qubes, на которую вы можете обратить внимание, является организация приложений в соответствующем меню по различным классам виртуальных машин, а не по категориям. Каждой из виртуальных машин поставлен в соответствие стандартный набор приложений, но следует обратить внимание на то, что этот набор не содержит всех установленных приложений — в этом случае меню было бы слишком длинным. Вместо этого вы можете выбрать приложения, которые будут запускаться в каждой из виртуальных машин, использовав пункт меню приложений нужной виртуальной машины «Add more shortcuts» (Рисунок 1). В результате откроется окно, с помощью которого вы сможете перемещать ссылки на приложения в рамках меню приложений. Обратите внимание на то, что Qubes позволяет размещать в меню лишь те приложения, в комплекте поставки которых присутствует файл .desktop (этот же файл используется для добавления элемента в меню запуска приложений в других окружениях рабочего стола).
Qubes группирует виртуальные машины в меню приложений в соответствии с их типами. Важно понимать назначение виртуальных машин каждого из типов, ведь это понимание позволит вам принимать боле безопасные решения относительно обоснованности (или отсутствия оснований) выполнения определенных действий в рамках виртуальной машины того или иного типа. А это список типов виртуальных машин:
- Одноразовая виртуальная машина: виртуальные машины данного типа, обозначаемые с помощью аббревиатуры dispVM, спроектированы для однократного запуска приложений. При использовании одноразовой виртуальной машины в первую очередь создается новая виртуальная машина на основе шаблонной виртуальной машины, после чего в рамках этой виртуальной машины осуществляется запуск приложения (чаще всего в случае использования меню приложений таким приложением является веб-браузер, но вместо него может осуществляться запуск и любого другого приложения, присутствующего в файловой системе используемой шаблонной виртуальной машины). После завершения работы приложения все данные созданной виртуальной машины удаляются с диска. Вы можете запустить одновременно несколько виртуальных машин, причем каждая виртуальная машина будет работать в рамках своего собственного контейнера. Одноразовые виртуальные машины полезны для работы с опасными вложениями сообщений электронной почты, просмотра опасных веб-страниц или выполнения любых других действий, связанных с высокой вероятностью компрометации системы. В том случае, если злоумышленникам все же удастся скомпрометировать вашу одноразовую виртуальную машину, они выполнят по сути бесполезную работу, ведь все окружение исполнения приложения исчезнет сразу же после того, как вы закроете его окно.
- Доменная виртуальная машина: виртуальные машины данного типа чаще всего называются виртуальными машинами приложений, обозначаются с помощью аббревиатуры appVM и являются виртуальными машинами, в рамках которых исполняется большинство приложений и с которыми пользователи взаимодействуют большую часть времени. Если вы желаете разделить выполняемые операции, вы можете создать различные виртуальные машины приложений и присвоить им разные уровни доверия с использованием цветов из диапазона от красного (минимальный уровень доверия) до черного (высочайший уровень доверия) с промежуточными оранжевым, желтым, зеленым, синим, фиолетовым и серым цветами. Например, вы можете создать недоверенную виртуальную машину приложения, обозначенную с помощью красного цвета для обычного веб-серфинга, еще одну виртуальную машину приложения, обозначенную с помощью желтого цвета для веб-серфинга по проверенным веб-сайтам, на которых требуется вводить данные для входа, а также еще одну виртуальную машину приложения, обозначенную с помощью зеленого цвета, исключительно для работы с онлайн-банкингом. Если вы выполняете все описанные выше действия с помощью одного и того же ноутбука, виртуальные машины приложений являются отличным механизмом для разделения рабочих и персональных файлов и операций.
- Сервисная виртуальная машина: сервисные виртуальные машины разделены на подкатегории сетевых виртуальных машин (netVM) и виртуальных машин для прокси (proxyVM) и являются виртуальными машинами, которые обычно работают в фоновом режиме и используются для предоставления виртуальным машинам приложений тех или иных сервисов (чаще всего доступа к сети). Например, сетевая виртуальная машина с именем sys-net связывается со всеми вашими сетевыми картами и является недоверенной виртуальной машиной, которая предоставляет доступ к сети всем остальным виртуальным машинам. Виртуальная машина для прокси с именем sys-firewall соединяется с виртуальной машиной с именем sys-net, причем виртуальные машины приложений используют ее для организации доступа к сети. Так как виртуальная машина sys-firewall выступает в данном случае в роли прокси-сервера, на ее уровне могут вводиться пользовательские правила межсетевого экрана для каждой из соединенных с ней виртуальных машин приложений, поэтому вы можете, к примеру, создать виртуальную машину для работы с онлайн-банкингом, в рамках которой будет доступен лишь порт 433 сервера вашего банка. Виртуальная машина для прокси с именем sys-whonix предоставляет в ваше распоряжение интегрированный маршрутизатор сети Tor, поэтому трафик любых соединенных с ней виртуальных машин приложений автоматически отправляется через сеть Tor. Вы можете выбрать сервисную виртуальную машину, которую будет использовать ваша виртуальная машина приложений для осуществления доступа к сети (или вообще ограничить доступ приложения к сети) с помощью менеджера виртуальных машин Qubes.
- Шаблонная виртуальная машина: Qubes содержит несколько различных шаблонных виртуальных машин, созданных на основе дистрибутивов Linux, которые вы можете использовать в качестве основы для своих виртуальных машин. Корневые файловые системы всех остальных виртуальных машин основывается на файловой системе одной из шаблонных виртуальных машин, причем после отключения каждой из виртуальных машин приложений все изменения, внесенные в эту файловую систему, автоматически удаляются (сохраняются лишь изменения в файловых системах /rw, /usr/local и /home). Если вы захотите установить обновление приложения вам придется запустить соответствующую шаблонную виртуальную машину, осуществить установку обновления, после чего остановить ее. При последующем запуске виртуальных машин приложений, основанных на данном шаблоне, они уже будут содержать новое приложение. Компрометация одной шаблонной виртуальной машины по своей сути является компрометацией любых виртуальных машин, основанных на ней, поэтому, вообще говоря, вам следует держать шаблонные виртуальные машины в остановленном состоянии и запускать их на некоторое время лишь тогда, когда необходимо установить обновления или новое программное обеспечение. Вы даже можете изменить шаблонную виртуальную машину, которая используется для запуска виртуальной машины приложения после создания последней. Ввиду того, что на постоянной основе будут сохраняться лишь ваши персональные настройки, вы можете считать, что процесс запуска виртуальной машины приложения аналогичен установке нового дистрибутива Linux с сохранением домашней директории /home из предыдущей установки.
Установка приложений
Процесс установки приложений в Qubes немного отличается от процесса установки приложений в обычном дистрибутиве Linux для настольных систем ввиду использования шаблонных виртуальных машин. Давайте предположим, что вам понадобилось установить GIMP в вашу персональную виртуальную машину приложения. Хотя вы и можете установить этот графический редактор в рамках виртуальной машины приложения с помощью таких утилит, как yum, dnf или apt-get в зависимости от дистрибутива, использованного для создания шаблонной виртуальной машины, лежащей в ее основе, он будет доступен вам лишь до момента остановки выбранной виртуальной машины приложения (кроме того, в меню приложений окружения рабочего стола не появится соответствующего элемента). Для того, чтобы установить приложение на постоянной основе, вам придется идентифицировать шаблонную виртуальную машину, лежащую в основе выбранной виртуальной машины приложения, после чего выбрать в меню окружения рабочего стола пункт «debian-8: Packages» или «fedora-23: Software» для запуска приложения с графическим интерфейсом, позволяющего установить дополнительное программное обеспечение. Альтернативным вариантом является открытие приложения терминала в рамках соответствующей шаблонной виртуальной машины и использование утилит yum, dnf или apt-get для установки программного обеспечения.
После того, как вы установите приложение, файл .desktop из его комплекта поставки будет помещен в предназначенную для него директорию и Qubes автоматически поместит это приложение в список приложений, доступных для запуска в рамках виртуальных машин приложений. При этом оно автоматически не появится в меню запуска приложений. Для того, чтобы добавить его в меню запуска приложений, вам придется выбрать пункт подменю «Add More Shortcuts» меню какой-либо виртуальной машины приложений и переместить его в список видимых приложений. Вы также можете просто открыть приложение терминала в любой из виртуальных машин приложений и запустить установленное приложение с помощью него.
Менеджер виртуальных машин Qubes
Менеджер виртуальных машин Qubes является приложением с графическим интерфейсом, позволяющим управлять виртуальными машинами системы Qubes. В основном окне приложения находится список всех работающих виртуальных машин с информацией об использовании каждой из них таких ресурсов, как время центрального процессора, оперативная память и дисковое пространство, а также о выбранном вами цвете и шаблонной виртуальной машине, на которой она основана. В верхней части окна расположена панель инструментов с кнопками, позволяющими выполнять различные операции с выбранной виртуальной машиной, включая создание новой виртуальной машины или удаление существующей виртуальной машины, включение и отключение виртуальной машины, изменение ее настроек и переключение формата вывода списка с целью показа лишь функционирующих виртуальных машин или всех существующих виртуальных машин.
Вы можете изменить множество параметров функционирования виртуальной машины, при этом менеджер виртуальных машин делает процесс создания новой виртуальной машины или изменения ее стандартных параметров достаточно простым и прямолинейным. Основными параметрами виртуальной машины, которые вы наверняка будете изменять, являются цвет виртуальной машины, квоты использования ею оперативной памяти и дискового пространства, шаблонная виртуальная машина, на которой она основывается, а также сетевая виртуальная машина, с которой она соединена. В дополнение вы можете использовать данное приложение для создания собственных правил межсетевого экрана, установки соответствия аппаратных устройств, использующих шину PCI, и виртуальных машин, а также изменения меню запуска приложений.
Менеджер виртуальных машин является одним из наиболее полезных компонентов рассматриваемой операционной системы, так как он значительно упрощает навигацию по сложной системе утилит с интерфейсом командной строки и файлов конфигурации. В комбинации с некоторыми другими инструментами операционной системы Qubes, такими, как менеджер буфера обмена (реализующий метод копирования и вставки, заключающийся в перемещении данных из локального буфера обмена виртуальной машины приложения в глобальный буфер обмена с помощью сочетания клавиш Ctrl-Shift-c, выборе виртуальной машины приложения для вставки данных и вставке данных в окно приложения с помощью сочетания клавиш Ctrl-Shift-v), а также утилит с интерфейсом командной строки и графическим интерфейсом, которые позволяют копировать файлы между виртуальными машинами приложений, он создает окружение, которое гораздо проще использовать, чем кажется при учете всей сложности реализации описанных концепций.
Хотя данная статья и будет полезна для начала продуктивной работы с Qubes, самыми интересными аспектами использования данной системы являются организация виртуальных машин приложений и разделение задач между ними. В моей следующей статье я поделюсь собственными подходами к разделению персональных и рабочих задач на ноутбуке, а также расскажу о некоторых применяемых в Qubes дополнительных механизмах обеспечения безопасности пользовательских данных, не позволяющих мне вернуться к использованию обычных дистрибутивов Linux для настольных компьютеров.