Polkit: возможно ли избежать запроса пароля для пользователей, НЕ входящих в группу?

Вопрос или проблема

Обратите внимание на эту ситуацию

lxcunpriv@nas:~$ id
uid=1001(lxcunpriv) gid=1001(lxcunpriv) gruppi=1001(lxcunpriv)

lxcunpriv@nas:~$ virsh -c qemu:///system list 
==== АУТЕНТИФИКАЦИЯ ДЛЯ org.libvirt.unix.manage ====
Системная политика предотвращает управление локализованными виртуализированными системами
Аутентификация как: myuser
Пароль: 

Если “lxcunpriv” знает пароль “myuser”, он может остановить виртуальную машину, вывести список или получить доступ к ней через консоль.
Мой вопрос: возможно ли принудить аутентификацию для группы libvirt?
Должно работать так

член группы “libvirt” = может получить доступ к виртуальной машине

нечлен группы “libvirt” = не может получить доступ к виртуальной машине, даже если знает пароль другого пользователя.

Возможно ли это?

Ответ или решение

Политика доступа к виртуальным машинам с использованием Polkit: отказ в доступе для пользователей, не входящих в группу

Вопрос о возможности управления доступом к виртуальным машинам с использованием Polkit является весьма актуальным для системных администраторов и специалистов в области информационных технологий. В предложенной ситуации мы видим, что пользователь с именем lxcunpriv пытается получить доступ к системе управления виртуальными машинами через virsh, но его доступ несанкционирован — он не принадлежит к группе libvirt.

Проблема

На основании предоставленных данных, когда пользователь lxcunpriv, который не входит в группу libvirt, пытается выполнить команду для получения списка виртуальных машин, система требует аутентификации и предоставляет доступ, если у данного пользователя есть пароль другого пользователя (в данном случае — myuser). Это поведение может привести к потенциальным рискам безопасности, так как любой, кто знает пароль пользователя с правами, может получить доступ к системе.

Использование Polkit для управления доступом

Polkit (PolicyKit) — это фреймворк, который позволяет управлять привилегиями для программ в Linux. Поскольку virsh использует внутренние механизмы аутентификации, мы можем настроить Polkit таким образом, чтобы пользователи, не входящие в группу libvirt, не могли получить доступ к функциям виртуализации, даже если они знают пароли других пользователей.

Настройка правил Polkit

Для того чтобы ограничить доступ для пользователей, не входящих в группу libvirt, необходимо создать или изменить правила в Polkit.

  1. Создание нового правила Polkit:
    Вам нужно создать файл, например /etc/polkit-1/localauthority/50-local.d/libvirt-access.conf.

  2. Добавление правил:
    В этом файле вам нужно прописать следующие правила:

    [Allow members of the libvirt group to manage virtualization]
    Identity=unix-group:libvirt
    Action=org.libvirt.unix.manage
    Result=auth_admin

    Это правило разрешает доступ к управлению виртуализацией только для пользователей, входящих в группу libvirt.

  3. Запрет доступа для остальных:
    Чтобы запретить доступ пользователям, не входящим в группу, вам нужно добавить дополнительное правило:

    [Deny non-libvirt users access to virtualization]
    Identity=unix-group:!
    Action=org.libvirt.unix.manage
    Result=deny

    Здесь используется unix-group:! для обозначения всех пользователей, которые не находятся в группе libvirt, что полностью заблокирует их доступ.

Результаты настройки

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...