Qubes Os, или мечта параноика

192
168
9 Ноя 2016
-----------------
Краткое описание данной системы:
-----------------
Данная Ось основана на принципе виртуализации. В качестве гипервизора используется Xen.
Применяется LVM и используется шифрование.
Пользовательское данные разных виртуальный машин, буферы обмена, x-server'a и даже оборудование никак не пересекаются.
Только цвет окон позволяет отделить их визуально.
Правильное распределение мощностей процессора, оперативной памяти и других ресурсов позволяет запускать одновременно гораздо больше машин
, чем вы могли бы запустить на обычной операционной системе. Плюс из-за Xen они работают практически на железе, так что скорость
их работы куда выше, чем могла бы быть при использовании к примеру virtualbox.
Существует заготовленные темплейты для определенных виртуальных машин, в которые входит мною любимый Whonix. Настроить цепочки и анонимность теперь можно куда проще и возможности куда шире.
Каждая виртуальная машина имеет свой x-server, однако несмотря на это создатели Qubes сделали чтобы все удобно отображалось в едином окружении.
Плюс такие фичи, как создание шаблона виртуальной машины занимающего фиксированное кол-во места и возможность шаринга этих файлов, чтобы создать множество виртуальных машин, не занимая много места. Будет использоваться лишь пару гигов для хранения уникальных файлов юзера.

-----------------
Основы
-----------------
Давайте заглянем на официальный сайт проекта - qubes-os.org
В разделе download есть образы, к сожалению лишь для архитектуры x64.

Там есть тестовые сборки, как например их специальная сборка для запуска на usb, которая у меня кстати не взлетела. Так и просто обычные релизы.
Я использовал версию 3. Если вы хотите стабильности быть может пока попробуйте вторую версию. В третьей у меня были пару багов. Конечно вполне возможно, что они связаны лишь с моим оборудованием, но не факт.

И так скачиваем нужный образ и подготовим загрузочную флешку или же диск. В линукс используем команду
dd if=/путь/до/образа.iso of=/dev/sdX
Вместо /dev/sdX у вас должно быть ваше устройство. В моем случае это была флешка и соотвественно sdb. Не пробуйте sdb1 потому как иначе вы не сможете нормально установить ось с нее.

Теперь перезагружаемся и выбираем в биос загрузку с вашего usb-носителя.

Перед вами через некоторое появится графический инсталлер Qubes Os. Он так то банально не сложный, плюс там есть возможность выбора русского языка. Вполне возможно также установить на внешний носитель, к примеру я подсоединил внешний жесткий диск и выбрал его на этапе выбора диска. Если вы хотите чтобы все затерлось, то просто соглашаемся со стандартными настройками. Также можно заранее разбить диск на пару разделов и установить на один из них.

Далее выберите надежный пасс, и обождите установку. Это дело может немного затянуться..

Все установилось, теперь перезагружаемся и грузимся с того носителя на который вы установили Qubes OS.
Вводим пасс, который был задан на этапе установки.

Теперь произойдет первая конфигурация и вас спросят насчет создания виртуальный машин. Выберет стандартный вариант.
Не рекомендую сразу экспериментировать. И вроде как должны спросить насчет отдельного пароля для хранителя экрана.

Перед вами появится интерфейс KDE, и стандартное приложение для настройки QUBES VM MANAGER.
В нем имеется удобное визуальное распределение ресурсов и прочие настройки виртуальных машин.

В моем случае произошла ошибка и машина "sys-net" которая должна была дать нам доступ к сети не запустилась. Если такое произойдет - зайдите в ее настройки в раздел devices и уберите конфликтующее оборудование. В моем случае не запустилась проводная сеть, однако вай-фай
заработал. После удаления ethernet и запуска виртуальной машины появилась иконка в трее и в ней как обычно настроил логин-пасс
от беспроводной сети.

Необходимо немного освоиться в логике работы системы, чтобы привыкнуть и не отвлекаться по пустякам. Стандартный темплейт и несколько виртуальных машин основаны на Fedore. Поэтому чтобы работать в них почитайте немного о данной системе.
Я с легкостью установил простые вещи типа флеша в одной из них, кодеков, некоторых простых приложений. Помним, что каждая VM имеет свой небольшой запас пространства, которое можно увеличить в менеджере Qubes OS - вкладка basic. Также можно назначить некоторые машины на включение при запуске системе. Но слишком много не рекомендую, иначе ждать вам полгода..

Также рекомендую ознакомиться со средой KDE, если вы в ней не работали. Стандартные комбинации клавиш, виртуальные рабочие столы и тд.


-----------------
Настройка и анонимизация
-----------------
Давайте немного ознакомимся с логикой отделения различных рабочих процессов. По умолчанию у вас имеется виртуальная машина personal.
Запустив ее мы можем открыть терминал в меню или же используя комбинацию клавиш alt+f2 и введя terminal.
Также можно открыть фаерфокс и к примеру файловый менеджер. Как вы можете видеть в файловой системе существуют стандартные папки,
сеть работает и можно к примеру обновиться с помощью команды sudo yum update в терминале.

Теперь давайте скачаем к примеру с сайта vpngate.net конфиг для openvpn для любой страны и используем его
sudo openvpn --config name.opvn
Теперь наша виртуальная машина работает через впн.

Запустим к примеру машину work и запустим те же приложения в ней. На сайте 2ip.ru вы можете видеть, что айпи прежний, однако же на personal весь траффик направляется через впн. Также в файловой системе присутствуют только стандартные папки.

Это очень удобно для разделения ваших нескольких личностей. Прямо как для меня делали)
К примеру с одной машины вы занимаетесь обычными делами, с другой в тоже время можете зайти из канады и почитать новости, которые вы не хотите, чтобы видел ваш провайдер. А с другой машины вы юзаете тор и сидите в зоне онион например.

Кстати замечу, что скопированное в одной виртуальной машине в другой вставить не удастся.
А что же если нам нужно передать текст из одно вм в другую? Разработчики предусмотрели такую возможность, но сделали практически нереальным ее случайное использование. Копируем что-либо - ctrl+c. Жмем в той машине из которой нужно перенести буфер shift+ctrl+c
Появится уведомление. Затем выбираем окно с другой вм и жмем shift+ctrl+v. Опять появится уведомление об удалении данного текста и затирании его, а также переносе в эту машину. Теперь можно вставить обыкновенно через ctrl+v

Так, а что же насчет построения цепочек типа впн-тор-впн мною любимых.
Во-первых мы можем на основной машине net-vm врубить впн тогда все машины по умолчанию будут направляться через этот впн.
Но для правильной и защищенной работы заюзаем whonix.

Давайте его установим.
Для этого нам необходимо поработать в dom0 - откроем терминал там и кстати заметим что dom0 не является виртуальной машиной. Через него можно конфигурировать все, что происходит в системе. Также он максимально настроен на безопасность. Там даже не сети. Лишь специальный защищенный механизм обновлений.

sudo qubes-dom0-update --enablerepo=qubes-templates-community qubes-template-whonix-gw qubes-template-whonix-ws
Данная команда установит шаблон для машин whonix - ворк и гейт.

После обновлений открываем менеджер Qubes os
dom0 -> Qubes VM Manager -> VM -> Create AppVM

И создаем ProxyVM, на базе шаблона - whonix-gw

Следом создаем Ворк на базе - whonix-ws
dom0 -> Qubes VM Manager -> VM -> Create AppVM

Тип выбираем AppVm, и сеть пускаем через gate

В принципе все теперь мы можем запустить гейт, а следом ворк и юзать защищенное соединение через тор. Теперь мы можем настроить в них все, как в обычных виртуалках whonix.

Ничто кстати не мешает вам в настройках любой другой виртуальной машины выбрать сеть через gate.


Qubes OS также с легкостью позволяет сделать бекап любой виртуальной машины в менеджере и он будет зашифрован, то есть вы можете хранить его где-хотите.


-----------------
Дополнительные советы
-----------------

1) Для меня недостаточно одного шифрования всей системы, поэтому я рекомендую делать так.
Скачиваем veracrypt с официального сайта и создаем шифрованный контейнер.

veracrypt -t -c (Создание контейнера в консоли)
veracrypt -t file.tc /mnt/ (Монтируем контейнер)

Все опасные данные рекомендую закинуть туда. Также настройки определенных приложений не помешает также закинуть туда.

К примеру GPG.
export GNUPGHOME="/mnt/" (Теперь все ключи и настройки будут храниться там)
Эту же команду можно закинуть в конец файла ~/.bashrc

C другими важными приложениями можете сделать аналогично.

veracrypt -d (Чтобы размонтировать контейнер)

2) Чтобы правильно пользоваться системой необходимо проникнуться ее логикой. Дабы вас не выдал один единственный факт, вы сами.
Помните, что в каждой у вас своя личность и правильно применяйте это для своих дел.

3) Создатели системы рекомендуют такие характеристики для вашего компа.

64-bit Intel or AMD processor (x86_64 aka x64 aka AMD64)
4 GB RAM
32 GB disk space
legacy boot mode (UEFI not supported yet)

Однако мне удалось запустить и при меньших и вполне себе юзабельно.

4) Монтирование внешних устройств.

Тут все достаточно просто. Подрубаем к примеру флешку. Высветится уведомление, что к dom0 прикручен новый девайс.
Теперь в Qubes Manager для определенной вирт.машины выбираем attach device.
И затем просто в терминале монтируем устройство.
В моем случае было так
sudo mount /dev/xvdi1 /mnt/

Разницы с другими системами просто в названиях устройств.

5) Создавая виртуальные машины не выбирайте галку standalone, иначе она будет занимать много места.
Без нее будет тратиться всего пара гигов на файлы юзера, а остальное шариться от темплейта.

6)
Мы можем к примеру создать пару гейтов и ворков и настроить в каждом попеременно получение сети из другого и сделать просто мега-цепочку типа впн-тор-впн-тор-.. и дальше
Это так для экспериментов.

7) В качестве виртуальной машины можно заюзать виндоус. Правда там чуть больше гемора и в моем случае не взетели специальные дополнения для виндоус 7, чтобы пользоваться виндоус также как и остальными, то есть просто окна в пределах вашего KDE, ярлыки, буфер и прочие удобства. Кстати для виндоус нужно, чтобы в биос была включена специальная настройка - Vt-x


8) Если кому не удобна Fedora можно использовать шаблон debian
Вводим в консоли dom0:
sudo qubes-dom0-update qubes-template-debian-8

9) Насчет gpg разработчики придумали спец фичу для запросов VM к разным gpg.
Для просмотра ссылки Войди или Зарегистрируйся

10) Чтобы скопировать файл из одной машины в другую используем
qvm-copy-to-vm название_vm file
Файл появится в папке - /home/user/QubesIncoming/<домен-отправитель>