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]