Вышла операционная система Qubes 2 на основе гипервизора Xen

    Несколько дней назад вышла операционная система Qubes 2, нацеленная на максимальную безопасность в использовании. В основе Qubes лежит идея запуска отдельных виртуальных машин для обеспечения изоляции пользовательских приложений. В качестве системы виртуализации используется Xen.



    Все пользовательские приложения Qubes разбиваются на категории. Для каждой категории создается отдельная виртуальная машина и назначается свой приоритет выполнения. В результате этого — даже потенциально уязвимые приложения не могут получить доступ к основным подсистемам, которые работают в строгой изоляции от пользовательских.



    Все виртуальные машины имеют свой графический сервер, но пользователь работает в едином рабочем окружении. На данный момент поддерживаются KDE и xfce4. Интересной особенностью является поддержка Windows в качестве одного из пользовательских доменов. Это значит, что теперь приложения windows будут запускаться в том же стиле что и остальные, максимально прозрачно для пользователя.



    Для установки Qubes 2 необходим 64-разрядный процессор Intel/AMD, как минимум 4ГБ оперативной памяти и 32ГБ свободного места на диске. Также рекомендуется* наличие SSD, поддержка VT-X/AMD-V, поддержка VT-d/AMD-IOMMU, и видеокарта от Intel. Видеокарты от nVidia/ATI могут иметь проблемы. Доступна портабельная версия Qubes 2 для USB-накопителей.



    В целом — система выглядит достаточно интересной. Широкие возможности по изоляции окружения и значительное упрощение общей настройки — отличный выбор для экспериментов.

    Официальный сайт
    Статья на OpenNet

    * Использование windows в качестве пользовательского домена требует обязательного наличия VT-X/AMD-V. merlin-vrn
    Поделиться публикацией

    Комментарии 74

      +1
      Интересной особенностью является поддержка Windows в качестве одного из пользовательских доменов


      Вот это уже интересно. Если действительно встанет без танцев с бубном, то можно попробовать на рабочем компьютере.
        +3
        Никакой магии, Windows уже давно работает в XEN, не понятно, что тут интересного? Интересно когда в Windows видеокарта прокидывается — это да.
          +1
          Это тоже уже давно работает
            0
            Поддержка железом (процессор, чипсет) и ядром операционной системы (e.g. Linux) таких замечательных вещей, как Intel VT-d / AMD IOMMU, позволяет почти без потерь передать в гостя устройство (e.g. видеокарту) для эксклюзивной работы. В первом квартале 2013 года было достаточно статей на Хабре про Linux+Xen на машине с двумя видеокартами и Windows в domU.
              0
              И верно: в гугл «qemu-hvm» видеокарта site:habrahabr.ru = habrahabr.ru/post/183468/ (статья не идеал, но близко к нему).
              а меня промотивировало запилить себе такой конфиг это видео: www.youtube.com/watch?v=KNDFqIJDB-0
                +1
                Это все очень хорошо, если у тебя не nvidia. К сожалению (или к счастью) AMD никаких конкурентов GTX 780 Ti и 980 предложить не может.
                С nvidia все настолько плохо, что их проприетарный драйвер не работает даже в dom0.
            +3
            Когда я ещё давно слышал про Xen, я представлял себе нечто подобное.
              0
              Я давно держу в уме одну похожую идею — сделать удобную обертку для приложений в виде виртуальной машины. Т.е. дистрибутируемое ПО со всеми библиотеками, дополнениями, расширениями и службами «заворачивается» в виртуальную машину и поставляется в таком виде конечному пользователю. Для пользователя это выглядит просто как большущий исполняемый файл. Туда уже встроена система виртуализации и образ нужной ОС. Если приложение с GUI, то оно запускается в обычном окне хост-операционки.
              Таким образом можно добиться кроссплатформенности с полностью идентичным поведением в любой ОС. Также решается проблема корректного разворачивания и функционирования больших программных комплексов из множества сторонних компонентов.
              Может есть уже что-то похожее?
                0
                Чем это отличается от экспорта/импорта любой из виртуальных машин в минимальной комплектации? Единственное различие — нет интеграции виртуальной машины в окружение рабочего стола.
                  0
                  Только тем что для запуска виртуальной машины нужно специальное приложение. В моей идее это приложение объединяется с самой машиной.
                    +1
                    Есть в какой-то мере родственный с вашими идеями проект. Там для каждой системы поставляется свой установочный пакет с приложением. Все зависимости включены. Но это совсем не эмуляция ОС, скорее просто удобная схема установки крупных приложений одним кликом.
                      +2
                      Кстати пользовался сборкой Redmine от этой компании, довольно удобно. Но это по большому счету действительно, просто удобный пакетный инсталлятор.
                        –2
                        Packager.IO для раби и ноды. Docker частично выполняет ваши требования.
                          +2
                          для раби и ноды
                          Что, простите?
                            +2
                            Packager.IO собирает deb и rpm пакеты из Ruby и Node.js приложений.
                  +7
                  Есть нечто подобное, но не для пользователей, а для серверов. Docker называется.
                    0
                    Спасибо! Уже изучаю. Действительно похоже на то что нужно
                      0
                      На самом деле в Docker и X-сервер уже запускали)
                      –4
                      Да, называется JRE. Ну или в других вариациях. Во-всяком случае существенных отличий от Вашего описания не нахожу, не сочтите за троллинг.
                        0
                        Под JRE я должен писать только на Java, не так ли?
                          +1
                          Вы не правы. Вы должны писать на любом языке, который компилируется в байт-код JVM. То же касается Python c его VM или, с некоторыми нюансами .NET
                            0
                            Идея несколько шире. Представьте какую-нибудь корпоративную систему с пользовательским веб-интерфейсом. Там есть какой-то SQL-сервер, какая-то серверная логика, есть сторонний веб-сервер с какими-то апплетами, и еще возможно NGINX для пущей производительности.
                            Все это ставится, администрируется, поддерживается отдельно. Да еще и не под всеми ОС работает.
                            А мы заворачиваем все это в единственную виртуальную машину, запуск которой нужно просто прописать в автозагрузку сервера как обычную службу, и в таком готовом виде поставляем клиенту. Разворачивается быстро, все уже настроено, версии всех компонентов протестированы на корректную совместную работу. Здорово же :)
                              +3
                              Как говорили выше, для этого есть Docker.
                                0
                                Да, спасибо, уже изучаю этот проект. Похоже на то что нужно.
                                0
                                Ну Вам никто не мешает так делать. Например, Zabbix так делает. Или есть еще Turnkey с его прорвой преднастроенных дистрибутивов. Но на практике я предпочту настроить все самостоятельно, а подобные вещи использовать только для теста. За Docker — отдельная благодарность, потрогаю. Возможно, пора менять подход.
                                  0
                                  Насколько я понял, Docker использует lxc — контейнеры и заточен под RH-based дистрибутивы. Тоже довольно сомнительной ценности решение.
                                    0
                                    Да, есть такое. Я одно время сам подумывал заняться, на основе VirtualBox сделать.
                                    Но, повторюсь, идея в том чтобы поставлять виртуальную машину как самостоятельное приложение.
                                      0
                                      И Вы собиратесь поддерживать целиком всю ВМ, включая гипервизор? Не слишком ли самонадеянно?
                                        0
                                        Не совсем понял вопрос. В каком смысле «поддерживать»?
                                      0
                                      Насколько я помню Docker отказались от lxc и теперь работают с namespace без них, плюс для Docker есть теперь CoreOS, но я сам пока этого зверя палочкой не тыкал.
                                        0
                                        под убунтой тоже насколько я понимаю работает, не менять же сотни deb-based серверов, например.
                                          0
                                          Конечно работает. В релиз 14.04 вошел 0.9.1, сейчас в репозиториях 1.0.1
                                          apt-cache search docker.io в помощь, ну а потом sudo apt-get install его же(search что бы поискать и увидеть, а не увидев включить universe репозиторий).
                                          0
                                          Вроде как не только RH-based
                                            0
                                            А еще Microsoft увидела потенциал Docker и решила внедрить технологию контейнеров в Windows. В веселые времена живем! :)
                                            0
                                            Но на практике я предпочту настроить все самостоятельно
                                            Но это вы так хорошо во всем разбираетесь. А потенциальные клиенты хотят готовое решение по принципу кликнул-установилось-работает. Желательно вообще необслуживаемое. И таких клиентов все больше, это тренд.
                                        0
                                        Ещё есть Scala, Jython и прочий зоопарк, но да, ограничивается только JVM-языками. Это вам не CLR, под которую чуть ли не изначально можно было переносимо и платформонезависимо писать хоть на C++ без использования нативного кода*.
                                        * без готовой стандартной библиотеки и если самостоятельно реализовать несколько нужных компилятору функций из этой самой стандартной библиотеки, см. /clr:pure.
                                      +2
                                      Может быть такие ОС как inferno www.vitanuova.com/inferno/, запускаемые внутри других ОС Вам подойдут.
                                        0
                                        Спасибо! Подойдет в принципе множество разных дистрибутивов, вопрос больше в объединении образа виртуальной машины с гипервизором в одном пакете.
                                        +2
                                        Ваш комментарий напомнил мне неплохой подход в организации онлайн курсов — в качестве базы для изучения предоставляется виртуальная машина, в которой настроены все переменные окружения и установлены необходимые утилиты. Это очень удобно — своя машина не захламляется, ничего искать не нужно самому — в общем преимуществ много)

                                        Так организованы небезызвестные курсы Compilers у Alexander Aiken.
                                          +1
                                          VMware ThinApp, очень близко и очень давно…

                                          — VMware® ThinApp® is an agentless application virtualization solution that isolates applications from their underlying operating systems to eliminate application conflict and streamline delivery and management. — See more at: www.vmware.com/products/thinapp/features.html
                                            0
                                            Всё верно, никак не могу понять, почему никто, кроме вас, не упомянул.
                                          0
                                          Главный вопрос, который возникает, — производительность. Взять два одинаковых пакета приложений и запустить на одинаковом железе в нативной операционке и Хen. Было бы интересно сколько Xen перерасходует памяти и на сколько процентов медленнее будет на нём работать.
                                            +1
                                            Вы можете подробнее узнать о Xen в википедии. Если ответить кратко: виртуализация любых совместимых систем происходит практически без потерь (за счет патчей ядра гостевой системы). Несовместимые системы работают чуть медленнее, поскольку вызовы гостевой системы эмулируются. Но даже в этом случае потери производительности гораздо ниже, чем при использовании виртуальных систем вроде VirtualBox, работающих в пользовательском пространстве ОС.
                                              0
                                              Я бы даже не такой вопрос задал. А насколько эффективно будут распределятся ресурсы между приложениями, и как быть с приоритетами.
                                                0
                                                Это полностью зависит от организации ваших рабочих групп. В самом простом случае можно использовать виртуальные машины отдельно друг от друга. Например для работы, для дома, для тестов. Более сложные конфигурации обычно создаются с пониманием того, что будет использоватся чаще остального, отсюда и расстановка приоритетов.
                                              +1
                                              Есть бесплатная тулза ru.wikipedia.org/wiki/VMware_ThinApp
                                              Но вспоминая статью Криса Касперски «Побег из VM Ware», становится под сомнения ценность инструментов. Хотя массовую вирусню здорово отвадить можно.
                                                0
                                                Я какое-то время назад очень плотно с ней работал. Вердикт: очень эргономичный бадик с красивым шильдиком. Да, свою цель по распространению и пакетированию приложений выполняет, но это костыль к системе, в которой чужды такие подходы.
                                                +1
                                                Да, и еще непонятно целевое назначение подобной системы. На десктопе у себя не поставил бы из-за повышенных требований к производительности (2-3 виртуалки и так держу, производительность хост-системы все равно выше, равно как и отсутствие проблем с драйверами тоже существенно), на сервере прекрасно можно обойтись и VMware ESX | Xen Server.
                                                  0
                                                  на десктопе у себя не поставил бы из-за повышенных требований к производительности (2-3 виртуалки и так держу)

                                                  Вызовы гипервизора работают быстрее, чем эмуляция виртуальных систем в user-mode.
                                                    0
                                                    Я не думаю, что это компенсирует необходимость запускать под ним все приложения.
                                                      +2
                                                      Если это удобно реализовано — то почему бы и нет?
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                    +1
                                                    Изолируется не каждое отдельное приложение, а их группы. Уведомление получат все приложения в пределах группы (виртуальной машины).
                                                    +11
                                                    Вот если бы они довели до ума поддержку графического адаптера и звука в виртуалке и собрали в результате всё это с возможностью запуска игр и крутых графических пакетов на линуксе — это было бы здорово. Иметь дома не боящуюся вирусов систему с действительно изолироваными песочницами, способную строить разные виртуальные системы с полной поддержкой железа — это круто и это может быть оцень ценным решением и прибыльным проектом.

                                                    В таком виде как сейчас — это неплохая игрушка для людей, которые могли бы сделать всё тоже самое и без этого проекта. То-есть немного экономит время, но не более того. В чём принципиальная разница: разобраться с этой осью, поставить её и настроить или взять свой любимый пакет виртуализации, поставить его и настроить?
                                                      0
                                                      поддержка Windows в качестве одного из пользовательских доменов

                                                      рекомендуется… поддержка VT-X/AMD-V


                                                      Ну вообще-то если Windows поддерживается в виде домена, без VT-X/AMD-V обойтись не удастся. То есть, не «рекомендуется», а «обязательно наличие».
                                                        0
                                                        Вся информация по конфигурации взята с официального сайта. На всякий случай добавил ваше замечание в статью.
                                                        0
                                                        Пытался перейти на нее с Mint-а. Все замечательно, только вот без поддержки OpenGL туго. Теперь сижу на Федоре. Если будет нормальная графика — сразу перейду обратно.
                                                          0
                                                          Судя по всему память выделяется под AppVM заранее. Не удалось найти нигде обратного утверждения. Было бы шикарно, если бы гипервизор выдавал память процессам виртуалок on-demand а-ля OpenVz.
                                                            0
                                                            Мне кажется, что open-vz'шный вариант тут не очень хорош — оверселлинг хорош далеко не всегда, а вот шансы во время этих игр с памятью туда-сюда даже на ESXi/Hyper-V вызывают мало приятные эффекты вроде адского свопинга и тормозов не только хости системы а и всех гостевых окружений
                                                              +1
                                                              В настройках ВМ можно задать первоначальный объем памяти, и максимально доступный предел. Кроме этого, можно выбрать динамическую балансировку в качестве дополнительной опции.

                                                              Управление памятью Xen
                                                              Для главного домена:
                                                              По умолчанию, домен 0 сначала получает весь доступный объём оперативной памяти, а потом, по мере необходимости, при старте других доменов, его начинает снижать. Это делает специально предназначенный для такой работы balloon-драйвер.

                                                              Для остальных доменов:
                                                              Объём памяти, выделяемой остальным доменам (то есть, виртуальным машинам), задаётся в их конфигурационных файлах с помощью параметра memory. Параметр может быть указан с суффиксом B, K, M или G, что означает байты, килобайты, мегабайты или гигабайты соответственно. По умолчанию подразумевается, что в конфигурационном файле домена объём памяти указан в мегабайтах.
                                                              Впоследствии этот размер можно изменить прямо для работающего домена.

                                                              xgu.ru
                                                              –2
                                                              Странная поделка.
                                                              На диске лежат пакеты от 20-й федоры, даже не пересобранные, сверху прилеплено что-то, называемое «установщиком», но ничего другого, кроме как пара трейсбеков питоновских он мне установить не смог. Стоило из-за 8 (!!!) своих пакетов называться «дистрибутивом»?
                                                                –1
                                                                У месье руки откуда-то не оттуда растут…
                                                                  +1
                                                                  Давайте я Вам тест-кейсов накидаю:
                                                                  Запускаете установщик — «забываете» подключить сеть (а настроить сеть никто и не давал, кстати) — выбор источника установки «closed mirror» — traceback и невозможность поменять до перехода в другое меню.
                                                                  Думаю кривые руки месье не виноваты в пропущенном try-except.
                                                                  Ну а выпускать 8 пакетов (напитонить установщик за вечер) и называть это «дистрибутив» — Андреем Поповым попахивает.
                                                                    +1
                                                                    Наверное, всё же Денисом.
                                                                      0
                                                                      Да, ошибся… Спасибо
                                                                      0
                                                                      Вам работа крупного специалиста в области безопасности Иоанны Рутковски напоминает перешибание Поповым копирайтов?
                                                                        +1
                                                                        Давайте по-честному: не важно, какой специалист выполнил работу, важно, что за работа выполнена.
                                                                        0
                                                                        А почему у меня ничего такого не было?
                                                                          +1
                                                                          наверное потому что Вы руководствуетесь принципом УМВР («на моём компьютере всё работает.»), а в остальном мире занимаются тестированием ПО или использованием проверенных решений, вместо выпуска Yet Another Linux Distribution.
                                                                            –1
                                                                            Оно не YALD, хотя бы потому, что в отличии от Федоры, ядром является Xen, а не Linux.
                                                                              +1
                                                                              Xen — это гипервизор, а не ядро. Без Dom0 он никуда. Никак. А Dom0 — это полноценная ОС с настоящим ядром, либо линукс, либо солярис, либо фряха. И в данном случае это линукс

                                                                              На картинке с оффсайта этот линукс есть: qubes-os.org/raw-attachment/wiki/QubesArchitecture/qubes-arch-diagram-1.png
                                                                              и он там называется Secure GUI and administration (dom0)

                                                                              Текст «ядро Xen» в данном случае — явно маркетинговый булшит, не читайте это. В действительности это дистр на базе федоры.
                                                                    0
                                                                    Мне кажется что для таких целей Xen является оверхедом. Возможно, было бы лучше «огораживать» приложения средствами AppArmor или подобных средств.
                                                                      +1
                                                                      Вообще мне кажется, что, если бы не Рутковски, интерес к этой штуке был явно ниже.
                                                                        0
                                                                        А как там с буфером обмена? Гостевые ОС получают доступ только по команде пользователя, или могут его постоянно мониторить для кражи интересных копипаст?

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

                                                                        Самое читаемое