Previous: Использование функционала разгрузки, Up: Настройка демона [Contents][Index]
Guix включает файл политик SELinnux etc/guix-daemon.cil, который может устанавливаться в систему, в которой включен SELinux, тогда файлы Guix будут помечены и настроены для соответствующего поведения демона. Так как система Guix не предоставляет политику SELinux, политика демона не может использоваться в системе Guix.
Чтобы установить политику, запустите следующую команду от root:
semodule -i etc/guix-daemon.cil
Затем измените метку файловой системы с restorecon
или другим
механизмом, поставляемым вашей системой.
Когда политика установлена, изменена метка файловой системы и демон
перезапущен, она должна работать в контексте guix_daemon_t
. Можно
проверить это следующей командой:
ps -Zax | grep guix-daemon
Наблюдайте файлы логов SELinux во время работы команды guix build
hello
, чтобы удостовериться, что SELinux позволяет выполнение необходимых
операций.
Эта политика не совершенна. Тут есть ряд ограничений или причуд, который нужно учитывать при разворачивании политики SELinux для демона Guix.
guix_daemon_socket_t
на самом деле не используется. Никакие операции
с сокетом не выполняются. Ничего плохого в том, чтобы иметь эту
неиспользуемую метку, но желательно определить правила сокета для этой
метки.
guix gc
не может получить доступ к обычным ссылкам профилей. По
задумке метка файла назначения символической ссылки не зависит от метки
файла самой ссылки. Хотя все профили под $localstatedir помечены, ссылки на
эти профили не наследуют метку директории, в которой они находятся. Для
ссылок на домашние директории пользователей это будет user_home_t
. Но
для ссылок из домашней директории root, а также /tmp или рабочей
директории HTTP-сервера и т.п., это не работает. guix gc
не будет
допускаться к чтению и следованию по этим ссылкам.
/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon
, присвоена
метка guix_daemon_exec_t
; это означает, что любому файлу с
таким именем в любом профиле разрешён запуск в домене
guix_daemon_t
. Это не идеально. Атакующий может собрать пакет,
который содержит исполняемый файл и убеить пользователя установить и
запустить его, и таким образом он получит доступ к домену
guix_daemon_t
. В этой связи SELinux мог бы не давать ему доступ к
файлам, которые разрешены для процессов в этом домене.
Вам нужно будет изменить метку (label) каталога хранилища после всех
обновлений до guix-daemon, например, после запуска guix pull
.
Предполагая, что хранилище в /gnu, вы можете это сделать с
restorecon -vR /gnu
, или другими способами, предусмотренными вашей
операционной системой.
Мы можем создать политику с большими ограничениями во время установки, так
чтобы только точное имя исполняемого файла установленного в данный
момент guix-daemon
было помечено меткой guix_daemon_exec_t
вместо того, чтобы использовать регулярное выражение, выбирающее большой ряд
файлов. Проблемой в данном случае будет то, что root потребуется
устанавливать или обновлять политику во время любой установки в случае, если
обновлён исполняемый файл guix-daemon
.
Previous: Использование функционала разгрузки, Up: Настройка демона [Contents][Index]