Содержание

Сборка Qubes OS с нуля

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

Общие принципы создания

Чтобы использовать его, следует использовать дистрибутив на основе rpm, например Fedora :-) , в котором следует обеспечить наличие следующих пакетов:

Их можно установить командой:

sudo dnf install gpg git createrepo rpm-build make wget rpmdevtools python-sh dialog rpm-sign dpkg-dev debootstrap PyYAML

Система сборки создает рабочую среду в chroot, поэтому на хост-системе не требуются другие пакеты. Все файлы, созданные и используюмые системой сборки, содержатся в каталоге qubes-builder. Полная сборка требует 25 ГБ свободного места, поэтому имейте это в виду, когда будете решать, где разместить данный каталог.

Система сборки настраивается с помощью файла builder.conf - нужно скопировать предоставленный по умолчанию builder.conf и изменить его по мере необходимости, например так:

cp example-configs/qubes-os-master.conf builder.conf
nano builder.conf

Данный файл имеет следующее содержание:

| builder.conf
# edit the builder.conf file and set the following variables:
NO_SIGN=1

Еще одно полезное требование состоит в том, что «sudo root» должен работать без каких-либо подсказок, который по умолчанию используется для большинства дистрибутивов (например, «sudo bash» предоставляет вам корневую оболочку без запроса пароля). Это важно, поскольку разработчику необходимо несколько раз переключиться на root, а затем вернуться к непривилегированному пользователю несколько раз в процессе сборки.

Кроме того, если создание с подписью включено (NO_SIGN не задано), необходимо отредактировать файл ~/.rpmmacro, чтобы он указывал на ключ GPG, используемый для подписания пакета, например:

nano ~/.rpmmacro
| .rpmmacro
%_signature gpg
%_gpg_path /home/user_name/.gnupg
%_gpg_name AC1BF9B3  # <-- Key ID used for signing

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

Итак, чтобы создать Qubes, вы должны:

gpg --recv-keys 0xDDFA1A3E36879494
wget https://keys.qubes-os.org/keys/qubes-developers-keys.asc
gpg --import qubes-developers-keys.asc 
git clone git://github.com/QubesOS/qubes-builder.git qubes-builder 
cd qubes-builder
git tag -v `git describe`
cp example-configs/qubes-os-master.conf builder.conf

и привести его содержание к виду:

nano builder.conf
| builder.conf
# edit the builder.conf file and set the following variables:
# NO_SIGN="1"
make get-sources
make qubes
make iso

И должен создаться новенький ISO.

Вы также можете создать каждый компонент отдельно. Например. скомпилировать только графический интерфейс виртуализации агента/демона:

make gui-daemon

Вы можете получить полный список команд из хелпа make. Для расширенного использования и подготовки источников Qubes Builder взгляните на каталог doc на странице QubesBuilder или QubesBuilderDetails.

Создание индивидуальной сборки Qubes OS

Ручная модификация источников

Если вы хотите каким-то образом изменить источники, вот некоторые основные шаги:

make get-sources
make vmm-xen core-admin linux-kernel gui-daemon template desktop-linux-kde installer-qubes-os manager linux-dom0-updates
make iso

Управление ключами проверки кода

QubesBuilder по умолчанию проверяет подписанные теги на каждый загруженный код. Открытые ключи, используемые для этого, хранятся в keyrings/git. По умолчанию ключи разработчика Qubes импортируются автоматически, но если вам нужны дополнительные ключи (например, ваши собственные), вы можете добавить их, используя:

GNUPGHOME=$PWD/keyrings/git gpg --import /path/to/key.asc
GNUPGHOME=$PWD/keyrings/git gpg --edit-key ID_OF_JUST_IMPORTED_KEY

Здесь используйте команду «trust», чтобы глобально установить ключ или в конечном итоге свои доверенные ключи для QubesBuilder. Все ключи разработчика Qubes подписываются мастер-ключом цифровой подписи Qubes Master (который устанавливается в конечном счете как доверенный ключ), поэтому им автоматически доверяет QubesBuilder.

Если вы являетесь владельцем ключа «Master» и хотите отменить такую подпись, используйте команду редактирования gpg-ключей revsig и обновите ключ в qubes-developers-keys.asc - но ключ больше не будет доверенным (если только он не установлен вручную).


Luciferus 2017/07/18 02:58