Практическая работа: Модуль 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.

  1. Создайте группу пользователей moscow-office-employee-it и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Отдел ИТ». Используйте портал управления.

  2. Создайте группу компьютеров moscow-office-computers и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Московский офис». Используйте утилиту ipa.

  3. Убедитесь, что в группы были добавлены соответствующие учетные записи.

Задание 2.

  1. Удалите HBAC-правило allow_computers.

  2. Создайте HBAC-правило allow_moscow_computers_administration и обеспечьте доступ ко всем службам для группы moscow-office-employee-it на компьютерах из группы moscow-office-computers. Используйте портал управления.

  3. Используя HBAC-правило allow_moscow_computers_sudo, обеспечьте доступ к службе sudo для пользователя ppetrov на компьютерах из группы moscow-office-computers. Используйте утилиту ipa.

  4. Убедитесь, что созданные HBAC-правила работают корректно.

Задание 3.

  1. Создайте правило sudo allow_all_moscow_computers, позволяющее участникам группы moscow-office-employee-it выполнять любые команды с привилегиями суперпользователя на компьютерах из группы moscow-office-computers. Используйте портал управления.

  2. Создайте правило sudo allow_gpupdate_gp_moscow_computers, позволяющее участникам группы moscow-office-employees выполнять команду salt-call state.apply gpupdate.gp -c /srv/salt/standalone/config с привилегиями суперпользователя на компьютерах из группы moscow-office-computers. Используйте утилиту ipa.

  3. Убедитесь, что созданные правила SUDO работают корректно.

Задание 4.

  1. Создайте групповую политику «Переменная location», которая создает переменную окружения пользователя LOCATION и присваивает ей значение Moscow. Политика должна применяться к подразделению «Московский офис».

  2. Создайте групповую политику «Ограничение прав на выключение компьютера», ограничивающую возможность как локального, так и удаленного выключения компьютера только от имени суперпользователя. Политика должна применяться к подразделению «Московский офис».

  3. Убедитесь, что созданные групповые политики работают корректно.

Практическая работа (с ответами)

Задание 1.

  1. Создайте группу пользователей moscow-office-employee-it и правило автоучастия для автоматического включения в эту группу учетных записей из подразделения «Отдел ИТ». Используйте портал управления.

  • В интерфейсе FreeIPA создадим группу пользователей moscow-office-employee-it.

../_images/aldpro_mod6_pr_image2.png

По желанию можно добавить описание «Группа, в которой будут все сотрудники отдела ИТ московского офиса».

  • В интерфейсе FreeIPA создадим правило автоучастия для группы пользователей moscow-office-employee-it.

../_images/aldpro_mod6_pr_image3.png ../_images/aldpro_mod6_pr_image4.png
  • Добавим в правило включающий атрибут rbtadp c выражением «ou=Отдел ИТ,ou=Московский офис,ou=ald.company.lan, cn=orgunits,cn=accounts,dc=ald,dc=company,dc=lan».

../_images/aldpro_mod6_pr_image5.png ../_images/aldpro_mod6_pr_image6.png
  • Результат должен быть таким:

../_images/aldpro_mod6_pr_image7.png
  1. Создайте группу компьютеров 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'
  1. Убедитесь, что в группы были добавлены соответствующие учетные записи.

  • Принудительно обновим состав автоучастников групп пользователей и хостов:

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.

  1. Удалите HBAC-правило allow_computers. Перейдем в раздел портала управления «Политики доступа к узлу» и удалим правило.

../_images/aldpro_mod6_pr_image8.png
  1. Создайте HBAC-правило allow_moscow_computers_administration, обеспечьте доступ ко всем службам для группы moscow-office-employee-it на компьютерах в группе moscow-office-computers.

Используйте портал управления.

  • Создадим новое правило и назовем его allow_moscow_computers_administration.

../_images/aldpro_mod6_pr_image9.png ../_images/aldpro_mod6_pr_image10.png

По желанию можно заполнить поле Описание «Разрешает доступ ко всем службам сотрудникам отдела ИТ на компьютерах в подразделении московский офис».

../_images/aldpro_mod6_pr_image11.png
  • Применим правило к группе пользователей moscow-office-employee-it.

../_images/aldpro_mod6_pr_image12.png
  • Применим правило к группе компьютеров moscow-office-computers.

../_images/aldpro_mod6_pr_image13.png
  • Применим правило к любой службе.

../_images/aldpro_mod6_pr_image14.png
  1. Используя 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
  1. Убедитесь, что созданные 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.

  1. Создайте правило sudo Allow_all_moscow_computers, позволяющее участникам группы moscow-office-employee-it выполнять любые команды с привилегиями локального суперпользователя на компьютерах группы moscow-office-computers.

Используйте портал управления.

  • Создадим новое правило sudo Allow_all_moscow_computers с порядком «1».

../_images/aldpro_mod6_pr_image15.png ../_images/aldpro_mod6_pr_image16.png

По желанию можно заполнить поле Описание «Разрешает запуск всех команд сотрудникам отдела ИТ на компьютерах в подразделении московский офис».

../_images/aldpro_mod6_pr_image17.png
  • Применим правило к группе пользователей moscow-office-employee-it.

../_images/aldpro_mod6_pr_image18.png
  • Применим правило к группе компьютеров moscow-office-computers.

../_images/aldpro_mod6_pr_image19.png
  • Разрешим запуск любой команды.

../_images/aldpro_mod6_pr_image20.png
  • Разрешим запуск от имени локального суперпользователя.

../_images/aldpro_mod6_pr_image21.png
  1. Создайте правило 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' # Вывести правило и его параметры
  1. Убедимся, что созданные правила 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.

../_images/aldpro_mod6_pr_image22.png ../_images/aldpro_mod6_pr_image23.png ../_images/aldpro_mod6_pr_image24.png
  • Войдем на 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.

  1. Создайте групповую политику «Переменная location», которая создает переменную окружения пользователя LOCATION и присваивает ей значение Moscow. Политика должна применяться к подразделению «Московский офис».

  • На портале управления перейдем в раздел «Групповые политики» и создадим новую групповую политику «Переменная location».

../_images/aldpro_mod6_pr_image25.png ../_images/aldpro_mod6_pr_image26.png
  • Добавим параметр пользователя «Переменная окружения»:

    • Имя: LOCATION

    • Значение: Московский офис

../_images/aldpro_mod6_pr_image27.png

Не забудьте нажать кнопку Применить.

../_images/aldpro_mod6_pr_image28.png
  • Примените политику на подразделение «Московский офис».

../_images/aldpro_mod6_pr_image29.png ../_images/aldpro_mod6_pr_image30.png
  1. Создайте групповую политику «Ограничение прав на выключение компьютера», ограничивающую возможность как локального, так и удаленного выключения компьютера только от имени суперпользователя. Политика должна применяться к подразделению «Московский офис».

  • На портале управления перейдем в раздел «Групповые политики» и создадим новую групповую политику «Ограничение прав на выключение компьютера».

../_images/aldpro_mod6_pr_image25.png ../_images/aldpro_mod6_pr_image31.png
  • Добавим параметр компьютера Выключение:

    • Локально: Root

    • Удаленно: Root

../_images/aldpro_mod6_pr_image32.png

Не забудьте нажать кнопку Применить.

../_images/aldpro_mod6_pr_image33.png
  • Применим политику на подразделение «Московский офис».

../_images/aldpro_mod6_pr_image34.png ../_images/aldpro_mod6_pr_image35.png
  1. Убедитесь, что созданные групповые политики работают корректно.

  • Войдем на 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=Московский офис
  • Попробуем выключить компьютер. Будет выведено сообщение о запрете.

../_images/aldpro_mod6_pr_image36.png
  • Попробуем перезагрузить компьютер. Будет выведено то же сообщение о запрете.

  • Попробуем перезагрузить компьютер через командную строку от имени суперпользователя:

$ sudo reboot
  • Как видим, с правами суперпользователя мы смогли перезагрузить компьютер.