Практическая работа: Модуль 6. Управление политиками ALD Pro
См. также Требования, правила и цели выполнения практической работы
Практические задания
Подготовка
Для корректного прохождения практических заданий необходимо выключить мандатный контроль целостности (МКЦ) на компьютере pc-1.
Для этого войдите на компьютер под учётной записью admin, выполните команду sudo astra-mic-control disable
и перезагрузите машину:
admin@pc-1:~$ sudo astra-mic-control disable
admin@pc-1:~$ sudo reboot
Задание 1.
Создайте группу пользователей moscow-office-employee-it и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Отдел ИТ». Используйте портал управления.
Создайте группу компьютеров moscow-office-computers и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Московский офис». Используйте утилиту ipa.
Убедитесь, что в группы были добавлены соответствующие учетные записи.
Задание 2.
Удалите HBAC-правило allow_computers.
Создайте HBAC-правило allow_moscow_computers_administration и обеспечьте доступ ко всем службам для группы moscow-office-employee-it на компьютерах из группы moscow-office-computers. Используйте портал управления.
Используя HBAC-правило allow_moscow_computers_sudo, обеспечьте доступ к службе sudo для пользователя ppetrov на компьютерах из группы moscow-office-computers. Используйте утилиту ipa.
Убедитесь, что созданные HBAC-правила работают корректно.
Задание 3.
Создайте правило sudo allow_all_moscow_computers, позволяющее участникам группы moscow-office-employee-it выполнять любые команды с привилегиями суперпользователя на компьютерах из группы moscow-office-computers. Используйте портал управления.
Создайте правило sudo allow_gpupdate_gp_moscow_computers, позволяющее участникам группы moscow-office-employees выполнять команду
salt-call state.apply gpupdate.gp -c /srv/salt/standalone/config
с привилегиями суперпользователя на компьютерах из группы moscow-office-computers. Используйте утилиту ipa.Убедитесь, что созданные правила SUDO работают корректно.
Задание 4.
Создайте групповую политику «Переменная location», которая создает переменную окружения пользователя LOCATION и присваивает ей значение Moscow. Политика должна применяться к подразделению «Московский офис».
Создайте групповую политику «Ограничение прав на выключение компьютера», ограничивающую возможность как локального, так и удаленного выключения компьютера только от имени суперпользователя. Политика должна применяться к подразделению «Московский офис».
Убедитесь, что созданные групповые политики работают корректно.
Практическая работа (с ответами)
Задание 1.
Создайте группу пользователей moscow-office-employee-it и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Отдел ИТ». Используйте портал управления.
В интерфейсе FreeIPA создадим группу пользователей moscow-office-employee-it.
По желанию можно добавить описание «Группа, в которой будут все сотрудники отдела ИТ московского офиса».
В интерфейсе FreeIPA создадим правило автоучастия для группы пользователей moscow-office-employee-it.
Добавим в правило включающий атрибут rbtadp c выражением «ou=Отдел ИТ,ou=Московский офис,ou=ald.company.lan, cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan».
Результат должен быть таким:
Создайте группу компьютеров moscow-office-computers и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Московский офис». Используйте утилиту ipa.
Создадим группу:
admin@dc-1:~$ ipa hostgroup-add moscow-office-computers
admin@dc-1:~$ ipa hostgroup-mod moscow-office-computers \
--setattr="rbtadp=ou=Московский офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan"
admin@dc-1:~$ ipa hostgroup-mod moscow-office-computers --desc='Группа, в которой будут все компьютеры московского офиса'
Создадим правило автоучастия:
admin@dc-1:~$ ipa automember-add moscow-office-computers --type=hostgroup
admin@dc-1:~$ ipa automember-mod moscow-office-computers --type=hostgroup --desc='Правило автоучастия для наполнения группы компьютеров московского офиса'
admin@dc-1:~$ ipa automember-add-condition moscow-office-computers --type=hostgroup --key=rbtadp --inclusive-regex='ou=Московский офис,ou=ald.company.lan,cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan'
Убедитесь, что в группы были добавлены соответствующие учетные записи.
Принудительно обновим состав автоучастников групп пользователей и хостов:
admin@dc-1:~$ ipa automember-rebuild --type=group
admin@dc-1:~$ ipa automember-rebuild --type=hostgroup
Проверим состав групп moscow-office-employee-it и moscow-office-computers:
admin@dc-1:~$ ipa group-show Moscow-office-employee-it | grep участники
Пользователи-участники: iivanov
admin@dc-1:~$ ipa hostgroup-show moscow-office-computers | grep участники
Узлы-участники: pc-1.ald.company.lan
Задание 2.
Удалите HBAC-правило allow_computers. Перейдем в раздел портала управления «Политики доступа к узлу» и удалим правило.
Создайте HBAC-правило allow_moscow_computers_administration, обеспечьте доступ ко всем службам для группы moscow-office-employee-it на компьютерах в группе moscow-office-computers.
Используйте портал управления.
Создадим новое правило и назовем его allow_moscow_computers_administration.
По желанию можно заполнить поле Описание «Разрешает доступ ко всем службам сотрудникам отдела ИТ на компьютерах в подразделении московский офис».
Применим правило к группе пользователей moscow-office-employee-it.
Применим правило к группе компьютеров moscow-office-computers.
Применим правило к любой службе.
Используя HBAC-правило allow_moscow_computers_sudo, обеспечьте доступ к службе sudo для пользователя ppetrov на компьютерах в группе moscow-office-computers.
Используйте утилиту ipa.
admin@dc-1:~$ ipa hbacrule-add allow_moscow_computers_sudo # создание политики HBAC
admin@dc-1:~$ ipa hbacrule-mod allow_moscow_computers_sudo --desc='Разрешает доступ к службе sudo пользователю ppetrov на компьютерах группы moscow_office_computers' # описание
admin@dc-1:~$ ipa hbacrule-add-user allow_moscow_computers_sudo --users=ppetrov # установить область применения на пользователя ppetrov
admin@dc-1:~$ ipa hbacrule-add-host allow_moscow_computers_sudo --hostgroups moscow-office-computers # установить область применения на группу хостов moscow-office-computers
admin@dc-1:~$ ipa hbacrule-add-service allow_moscow_computers_sudo --hbacsvcs=sudo # установить область применения на службу sudo
admin@dc-1:~$ ipa hbacrule-show allow_moscow_computers_sudo
Убедитесь, что созданные HBAC-правила работают корректно.
admin@dc-1:~$ ipa hbactest --user=iivanov --host=pc-1 --service=login
-------------------------
Доступ предоставлен: True
-------------------------
Соответствующие правила: allow_moscow_computers_administration
Несоответствующие правила: allow_all
Несоответствующие правила: allow_computers_fly
Несоответствующие правила: allow_moscow_computers_sudo
Несоответствующие правила: allow_systemd-user
admin@dc-1:~$ ipa hbactest --user=ppetrov --host=pc-1 --service=sudo
-------------------------
Доступ предоставлен: True
-------------------------
Соответствующие правила: allow_moscow_computers_sudo
Несоответствующие правила: allow_all
Несоответствующие правила: allow_computers_fly
Несоответствующие правила: allow_moscow_computers_administration
Несоответствующие правила: allow_systemd-user
Задание 3.
Создайте правило sudo Allow_all_moscow_computers, позволяющее участникам группы moscow-office-employee-it выполнять любые команды с привилегиями локального суперпользователя на компьютерах группы moscow-office-computers.
Используйте портал управления.
Создадим новое правило sudo Allow_all_moscow_computers с порядком «1».
По желанию можно заполнить поле Описание «Разрешает запуск всех команд сотрудникам отдела ИТ на компьютерах в подразделении московский офис».
Применим правило к группе пользователей moscow-office-employee-it.
Применим правило к группе компьютеров moscow-office-computers.
Разрешим запуск любой команды.
Разрешим запуск от имени локального суперпользователя.
Создайте правило sudo Allow_gpupdate_gp_moscow_computers, позволяющее участникам группы moscow-office-employees выполнять команду
salt-call state.apply gpupdate.gp -c /srv/salt/standalone/config
с повышенными привилегиями на компьютерах группы moscow-office-computers.
Используйте утилиту ipa.
Создадим команду sudo:
$ ipa sudocmd-add 'salt-call state.apply gpupdate.gp \
-c /srv/salt/standalone/config' -- desc='gpupdate.gp'
Создадим правило sudo:
$ ipa sudorule-add 'Allow_gpupdate_gp_moscow_computers' # Создадим правило sudo
$ ipa sudorule-mod 'Allow_gpupdate_gp_moscow_computers' --desc "Разрешает gpupdate.gp сотрудникам московского офиса на компьютерах в подразделении московский офис" # Описание
$ ipa sudorule-add-user 'Allow_gpupdate_gp_moscow_computers' --groups moscow-office-employees # Применим правило к группе пользователей moscow-office-employees
$ ipa sudorule-add-host 'Allow_gpupdate_gp_moscow_computers' --hostgroups moscow-office-computers # Применим правило к группе компьютеров moscow-office-computers
$ ipa sudorule-add-allow-command 'Allow_gpupdate_gp_moscow_computers' --sudocmds="salt-call
state.apply gpupdate.gp -c /srv/salt/standalone/config" # Применим правило к команде "salt-call
state.apply gpupdate.gp -c /srv/salt/standalone/config"
$ ipa sudorule-show 'Allow_gpupdate_gp_moscow_computers' # Вывести правило и его параметры
Убедимся, что созданные правила SUDO работают корректно:
Войдем на pc-1 под учетной записью admin.
Очистим кэш и перезапустим службу sssd.
admin@pc-1:~$ sudo rm -rf /var/lib/sss/db/*
admin@pc-1:~$ sudo systemctl restart sssd
Убедимся, что к пользователю iivanov применяется политика Allow_all_moscow_computers:
admin@pc-1:~$ sudo -l –U iivanov
Matching Defaults entries for iivanov on pc-1:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, !lecture,
secure_path=/usr/lib/parsec/bin\:/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\
:/b
in
User iivanov may run the following commands on pc-1:
(root) salt-call state.apply gpupdate.gp -c /srv/salt/standalone/config
Как мы можем убедиться, к пользователю применилась политика Allow_gpupdate_gp_moscow_computers, но не Allow_all_moscow_computers.
На dc-1 выведем настройки политики Allow_all_moscow_computers:
admin@dc-1:~$ ipa sudorule-show Allow_all_moscow_computers
Имя правила: Allow_all_moscow_computers
Описание: Разрешает запуск всех команд сотрудникам отдела ИТ на компьютерах в подразделении московский офис
Включено: TRUE
Порядок Sudo: 1
Группы пользователей: moscow-office-employee-it
Группы узлов: moscow-office-computers
Внешний пользователь для RunAs: root
Как видим, в политике не выбрана команда. Дело в том, что в текущей версии из-за ошибки в портале управления не применяется настройка «Любая команда».
Добавим эту настройку через портал Free IPA.
Войдем на pc-1 под учетной записью admin.
Очистим кэш и перезапустим службу sssd:
admin@pc-1:~$ sudo rm -rf /var/lib/sss/db/*
admin@pc-1:~$ sudo systemctl restart sssd
Проверим вывод команды sudo -l -U iivanov:
admin@pc-1:~$ sudo -l -U iivanov
Matching Defaults entries for iivanov on pc-1:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, !lecture,
secure_path=/usr/lib/parsec/bin\:/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:
/bin
User iivanov may run the following commands on pc-1:
(root) salt-call state.apply gpupdate.gp -c /srv/salt/standalone/config
(root) ALL
Как видим, пользователь iivanov может выполнять любую команду на pc-1 от имени суперпользователя.
Убедимся, что пользователь iivanov может использовать службу login. Выполним в терминале:
admin@pc-1:~$ sudo login iivanov
Убедимся, что пользователь iivanov может выполнить команду с правами суперпользователя:
iivanov@pc-1:~$ sudo ls
Пароль:
Desktop Desktops SystemWallpapers Видео Документы Загрузки
Изображения Музыка Общедоступные Шаблоны
Убедимся, что пользователь ppetrov не может использовать службу login. Выполним в терминале:
iivanov@pc-1:~$ sudo login ppetrov
Пароль:
Доступ запрещен
Убедимся, что к пользователю ppetrov применяется политика Allow_gpupdate_gp_moscow_computers
iivanov@pc-1:~$ sudo -l -U ppetrov
Matching Defaults entries for ppetrov on pc-1:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, !lecture,
secure_path=/usr/lib/parsec/bin\:/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:
/bin
User ppetrov may run the following commands on pc-1:
(root) salt-call state.apply gpupdate.gp -c /srv/salt/standalone/config
Задание 4.
Создайте групповую политику «Переменная location», которая создает переменную окружения пользователя LOCATION и присваивает ей значение Moscow. Политика должна применяться к подразделению «Московский офис».
На портале управления перейдем в раздел «Групповые политики» и создадим новую групповую политику «Переменная location».
Добавим параметр пользователя «Переменная окружения»:
Имя: LOCATION
Значение: Московский офис
Не забудьте нажать кнопку
.Примените политику на подразделение «Московский офис».
Создайте групповую политику «Ограничение прав на выключение компьютера», ограничивающую возможность как локального, так и удаленного выключения компьютера только от имени суперпользователя. Политика должна применяться к подразделению «Московский офис».
На портале управления перейдем в раздел «Групповые политики» и создадим новую групповую политику «Ограничение прав на выключение компьютера».
Добавим параметр компьютера Выключение:
Локально: Root
Удаленно: Root
Не забудьте нажать кнопку
.Применим политику на подразделение «Московский офис».
Убедитесь, что созданные групповые политики работают корректно.
Войдем на pc-1 под учетной записью admin.
Выполним принудительное применение политик с переформированием pillar от имени пользователя admin:
$ sudo salt-call state.apply gpupdate.gp \
-c /srv/salt/standalone/config pillar='{"force":True}'
Выполним вход в систему под пользователем iivanov.
Проверим содержимое файлов с pillar:
iivanov@pc-1:~$ sudo cat /opt/rbta/aldpro/standalone/gp-user_pillar.json
[sudo] пароль для iivanov:
{"aldpro-users": {"iivanov": {"rbta_ldap_fly_decor": {"rbta_ldap_fly_decor\__locker":
{"rbta_ldap_fly_decor\__locker\__screen_saver_delay": "0",
"rbta_ldap_fly_decor\__locker\__locker_on_dpms": "flase"}},
"rbta_ldap_power_management": {"rbta_ldap_power_management\__settings":
{"rbta_ldap_power_management\__settings\__screen_timeout": "360"}}, "rbta_ldap_env_vars_u":
{"rbta_ldap_env_vars_u\__variables": [{"
rbta_ldap_env_vars_u\__variables\__name": "LOCATION", "rbta_ldap_env_vars_u\__variables\__value":
"\\u041c\\u043e\\u0441\\u043a\\u043e\\u0432\\u0441\\u043a\\u0438\\u0439\\u043e\\u0444\\u0438\\u0441",
"rbta_ldap_env_vars_u\__variables\__description": "", "rbta_ldap_env_vars_u\__variables\__important":
""}]`}}}, "aldpro-hosts": {}}iivanov
sudo cat /opt/rbta/aldpro/standalone/gp-host_pillar.json
iivanov@pc-1:~$ sudo cat /opt/rbta/aldpro/standalone/gp-host_pillar.json
{"aldpro-users": {}, "aldpro-hosts": {"pc-1.ald.company.lan": {"rbta_ldap_login":
{"rbta_ldap_login\__shutdown": {"rbta_ldap_login\__shutdown\__local": "Root",
"rbta_ldap_login\__shutdown\__remote": "Root"}}`, "rbta_ldap_master_minion":
{"rbta_ldap_master_minion\__variables": "true"}}}}
Как видим, наши политики применились. Проверим на практике.
Проверим переменную среды LOCATION:
iivanov@pc-1:~$ env | grep LOCATION
LOCATION=Московский офис
Попробуем выключить компьютер. Будет выведено сообщение о запрете.
Попробуем перезагрузить компьютер. Будет выведено то же сообщение о запрете.
Попробуем перезагрузить компьютер через командную строку от имени суперпользователя:
$ sudo reboot
Как видим, с правами суперпользователя мы смогли перезагрузить компьютер.