Групповые политики/FreeIPA: различия между версиями
Olga kmv (обсуждение | вклад) мНет описания правки |
Olga kmv (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 28: | Строка 28: | ||
==Организация GPO в FreeIPA== | ==Организация GPO в FreeIPA== | ||
В Active Directory (AD) для применения групповых политик используется структура Organizational Units (OU), которая позволяет привязывать политики к конкретным контейнерам, содержащим пользователей и компьютеры. '''В FreeIPA''', однако, нет концепции OU, и вместо этого для применения GPO '''используются группы''', в которые добавляются пользователи и компьютеры. Таким образом, доступ к групповой политике будет определяться принадлежностью пользователя или машины к определенной группе, а соответствующие настройки будут храниться '''в папках''' в расшаренной папке (аналог SYSVOL), названных в честь этих групп. | В Active Directory (AD) для применения групповых политик используется структура Organizational Units (OU), которая позволяет привязывать политики к конкретным контейнерам, содержащим пользователей и компьютеры. '''В FreeIPA''', однако, нет концепции OU, и вместо этого для применения GPO '''используются группы''', в которые добавляются пользователи и компьютеры. Таким образом, доступ к групповой политике будет определяться принадлежностью пользователя или машины к определенной группе, а соответствующие настройки будут храниться '''в папках''' в расшаренной папке (аналог SYSVOL), названных в честь этих групп. Приоритетность вычитывания ключей при применении групповых политик определяется по лексикографическому порядку наименования папки, в которых хранятся GPT и GPO. | ||
#'''Добавление пользователя и машины в группу''' | #'''Добавление пользователя и машины в группу''' | ||
#:Чтобы политика применялась к нужным пользователям и машинам, добавляем их в соответствующие группы:<source lang="text" highlight="1,2,3,4"># ipa group-add gpo_group1 --desc "Group for GPO1" | #:Чтобы политика применялась к нужным пользователям и машинам, добавляем их в соответствующие группы:<source lang="text" highlight="1,2,3,4"># ipa group-add gpo_group1 --desc "Group for GPO1" | ||
Строка 34: | Строка 34: | ||
# ipa hostgroup-add my_hostgroup1 --desc="Group of machines for GPO1" | # ipa hostgroup-add my_hostgroup1 --desc="Group of machines for GPO1" | ||
# ipa hostgroup-add-member my_hostgroup1 --hosts=host1.testipa.alt</source> | # ipa hostgroup-add-member my_hostgroup1 --hosts=host1.testipa.alt</source> | ||
{{note|Для назначения групповой политики как для пользователя, так и для машины необходимо добавить их в одну группу. Однако, так как группа для пользователя и группа для машины — разные сущности, нужно создать группы с одинаковым наименованием. Папка, в которой хранятся GPO и GPT, должна называться аналогично названию группы.}} | |||
#'''Создание папок для GPO''' | #'''Создание папок для GPO''' | ||
#:На расшаренной папке '''ipasysvol''' необходимо создать папки с названиями, соответствующими группам. Например:<source lang="text" highlight="1,2"># mkdir -p /var/lib/freeipa/sysvol/gpo_group1 | #:На расшаренной папке '''ipasysvol''' необходимо создать папки с названиями, соответствующими группам. Например:<source lang="text" highlight="1,2"># mkdir -p /var/lib/freeipa/sysvol/gpo_group1 | ||
Строка 39: | Строка 40: | ||
</source> | </source> | ||
#'''Размещение Group Policy Template (GPT)''' | #'''Размещение Group Policy Template (GPT)''' | ||
#:Так как в FreeIPA нет аналога компонента удаленного управления базой данных конфигурации (ADMC), | #:Так как в FreeIPA нет аналога компонента удаленного управления базой данных конфигурации (ADMC), GPO нужно сначала создать на Samba-сервере, а затем скопировать в соответствующую папку. Также необходимо проверить права доступа. | ||
#'''Изменение GPT''' | #'''Изменение GPT''' | ||
#:Для изменения GPT необходим '''модуль редактирования настроек клиентской конфигурации (GPUI)''':<source lang="text" highlight="1"># apt-get install gpui</source> | #:Для изменения GPT необходим '''модуль редактирования настроек клиентской конфигурации (GPUI)''':<source lang="text" highlight="1"># apt-get install gpui</source> | ||
#:Запускать его необходимо с ключом -p (полный путь для редактируемой политики): <source lang="text" highlight="1"># gpui-main -p smb://dc.testipa.alt/ipasysvol/gpo_group1/{00A29D33-3727-4EF1-9C29-6A6FCCCD62E4}</source>Необходимо указать полный путь до GPT, где gpo_group1 - папка с GPT, а {00A29D33-3727-4EF1-9C29-6A6FCCCD62E4} - название | #:Запускать его необходимо с ключом -p (полный путь для редактируемой политики): <source lang="text" highlight="1"># gpui-main -p smb://dc.testipa.alt/ipasysvol/gpo_group1/{00A29D33-3727-4EF1-9C29-6A6FCCCD62E4}</source>Необходимо указать полный путь до GPT, где gpo_group1 - папка с GPT, а {00A29D33-3727-4EF1-9C29-6A6FCCCD62E4} - название GPO. | ||
==Применение GPO на клиентах== | ==Применение GPO на клиентах== | ||
#'''Установка gpupdate на клиентах''' | #'''Установка gpupdate на клиентах''' | ||
#:Для применения групповых политик на клиентах необходимо установить '''gpupdate''', если он не установлен:<source lang="text" highlight="1,2,3"># apt-repo add | #:Для применения групповых политик на клиентах необходимо установить '''gpupdate''', если он не установлен:<source lang="text" highlight="1,2,3"># apt-repo add 377866 | ||
# apt-get update | # apt-get update | ||
# apt-get install gpupdate | # apt-get install gpupdate | ||
# gpupdate-setup enable | |||
</source> | </source> | ||
#:Необходимо внести изменения в конфигурационный файл {{path|etc/gpupdate/gpupdate.ini}}: <source lang="text" highlight="2,6">[gpoa] | #:Необходимо внести изменения в конфигурационный файл {{path|etc/gpupdate/gpupdate.ini}}: <source lang="text" highlight="2,6">[gpoa] | ||
Строка 58: | Строка 61: | ||
Apply group policies for computer. | Apply group policies for computer. | ||
Apply group policies for user1.</source> | Apply group policies for user1.</source> | ||
==TODO== | |||
Для реализации функционала, аналогичного Samba AD, необходимо: | |||
#Расширение схемы LDAP | |||
#:*Добавление класса GPC | |||
#:*Добавление класса OU | |||
#:*Добавление атрибутов в ROOTDSE | |||
#:*Добавление остальных необходимых атрибутов | |||
#Доработка GPUI для возможности взаимодействия с базой LDAP в FreeIPA | |||
#Разработка инструмента по управлению GPC и GPO | |||
#Доработка gpupdate для взаимодействия с атрибутами GPO |
Текущая версия от 19:43, 13 марта 2025
В FreeIPA отсутствует концепция групповых политик (GPO). В AD групповые политики состоят из Group Policy Container (GPC), хранящегося в базе данных Active Directory, и Group Policy Template (GPT), который представляет собой набор файлов в каталоге SYSVOL на контроллере домена. Для реализации поддержки групповых политик на клиентах FreeIPA с использованием инструмента gpupdate необходимо создать сетевую шару Samba, которая будет использоваться для хранения и распространения GPO аналогично AD.
В gpupdate реализована тестовая версия, позволяющая применять групповые политики ALT Linux на клиентах в домене на базе FreeIPA. В этой статье будет описано, как настроить сервер FreeIPA на взаимодействие с gpupdate.
Предполагается, что инфраструктура уже развернута: сервер FreeIPA установлен и настроен (см. Установка сервера FreeIPA), а клиентская система введена в домен (см. Установка FreeIPA клиента и подключение к серверу).
Взаимодействие FreeIPA с Samba
Настройка доверия и Samba-шары
Для настройки взаимодействия FreeIPA с Samba и корректной работы Samba-шар, необходимо настроить службу доверия в FreeIPA:
# ipa-adtrust-install --add-sids --add-agents
Проверка работы основных служб, в том числе и Samba (smb, winbind):
# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: RUNNING
smb Service: RUNNING
winbind Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
Для хранения групповых политик на FreeIPA необходимо создать расшаренную папку (аналог SYSVOL) в конфигурации Samba:
# net conf addshare ipasysvol /var/lib/freeipa/sysvol writeable=y guest_ok=y
После выполнения команды можно проверить список расшаренных папок:
$ net conf listshares
global
ipasysvol
Организация GPO в FreeIPA
В Active Directory (AD) для применения групповых политик используется структура Organizational Units (OU), которая позволяет привязывать политики к конкретным контейнерам, содержащим пользователей и компьютеры. В FreeIPA, однако, нет концепции OU, и вместо этого для применения GPO используются группы, в которые добавляются пользователи и компьютеры. Таким образом, доступ к групповой политике будет определяться принадлежностью пользователя или машины к определенной группе, а соответствующие настройки будут храниться в папках в расшаренной папке (аналог SYSVOL), названных в честь этих групп. Приоритетность вычитывания ключей при применении групповых политик определяется по лексикографическому порядку наименования папки, в которых хранятся GPT и GPO.
- Добавление пользователя и машины в группу
- Чтобы политика применялась к нужным пользователям и машинам, добавляем их в соответствующие группы:
# ipa group-add gpo_group1 --desc "Group for GPO1" # ipa group-add-member gpo_group1 --users=user1 # ipa hostgroup-add my_hostgroup1 --desc="Group of machines for GPO1" # ipa hostgroup-add-member my_hostgroup1 --hosts=host1.testipa.alt
- Чтобы политика применялась к нужным пользователям и машинам, добавляем их в соответствующие группы:
- Создание папок для GPO
- На расшаренной папке ipasysvol необходимо создать папки с названиями, соответствующими группам. Например:
# mkdir -p /var/lib/freeipa/sysvol/gpo_group1 # mkdir -p /var/lib/freeipa/sysvol/gpo_group2
- На расшаренной папке ipasysvol необходимо создать папки с названиями, соответствующими группам. Например:
- Размещение Group Policy Template (GPT)
- Так как в FreeIPA нет аналога компонента удаленного управления базой данных конфигурации (ADMC), GPO нужно сначала создать на Samba-сервере, а затем скопировать в соответствующую папку. Также необходимо проверить права доступа.
- Изменение GPT
- Для изменения GPT необходим модуль редактирования настроек клиентской конфигурации (GPUI):
# apt-get install gpui
- Запускать его необходимо с ключом -p (полный путь для редактируемой политики): Необходимо указать полный путь до GPT, где gpo_group1 - папка с GPT, а {00A29D33-3727-4EF1-9C29-6A6FCCCD62E4} - название GPO.
# gpui-main -p smb://dc.testipa.alt/ipasysvol/gpo_group1/{00A29D33-3727-4EF1-9C29-6A6FCCCD62E4}
- Для изменения GPT необходим модуль редактирования настроек клиентской конфигурации (GPUI):
Применение GPO на клиентах
- Установка gpupdate на клиентах
- Для применения групповых политик на клиентах необходимо установить gpupdate, если он не установлен:
# apt-repo add 377866 # apt-get update # apt-get install gpupdate # gpupdate-setup enable
- Необходимо внести изменения в конфигурационный файл etc/gpupdate/gpupdate.ini: В параметре share_path необходимо указывать созданную вами расшаренную папку. Также параметр backend = freeipa не обязательно прописывать вручную, а можно установить:
[gpoa] backend = freeipa local-policy = workstation [dc] share_path = ipasysvol
# gpupdate-setup set-backend freeipa
- Теперь политики можно применять на клиенте с помощью gpupdate:
$ gpupdate Apply group policies for computer. Apply group policies for user1.
- Для применения групповых политик на клиентах необходимо установить gpupdate, если он не установлен:
TODO
Для реализации функционала, аналогичного Samba AD, необходимо:
- Расширение схемы LDAP
- Добавление класса GPC
- Добавление класса OU
- Добавление атрибутов в ROOTDSE
- Добавление остальных необходимых атрибутов
- Доработка GPUI для возможности взаимодействия с базой LDAP в FreeIPA
- Разработка инструмента по управлению GPC и GPO
- Доработка gpupdate для взаимодействия с атрибутами GPO