Групповые политики/FreeIPA: различия между версиями

Материал из ALT Linux Wiki
мНет описания правки
Нет описания правки
Строка 28: Строка 28:


==Организация GPO в FreeIPA==
==Организация GPO в FreeIPA==
В Active Directory (AD) для применения групповых политик используется структура Organizational Units (OU), которая позволяет привязывать политики к конкретным контейнерам, содержащим пользователей и компьютеры. '''В FreeIPA''', однако, нет концепции OU, и вместо этого для применения GPO '''используются группы''', в которые добавляются пользователи и компьютеры. Таким образом, доступ к групповой политике будет определяться принадлежностью пользователя или машины к определенной группе, а соответствующие настройки будут храниться '''в папках''' в расшаренной папке (аналог SYSVOL), названных в честь этих групп. Вычитывание GPT из папок происходит в лексикографическом порядке.
В 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

Версия от 19:32, 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.

  1. Добавление пользователя и машины в группу
    Чтобы политика применялась к нужным пользователям и машинам, добавляем их в соответствующие группы:
    # 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 и GPT, должна называться аналогично названию группы.
  1. Создание папок для GPO
    На расшаренной папке ipasysvol необходимо создать папки с названиями, соответствующими группам. Например:
    # mkdir -p /var/lib/freeipa/sysvol/gpo_group1
    # mkdir -p /var/lib/freeipa/sysvol/gpo_group2
    
  2. Размещение Group Policy Template (GPT)
    Так как в FreeIPA нет аналога компонента удаленного управления базой данных конфигурации (ADMC), GPT нужно сначала создать на Samba-сервере, а затем скопировать в соответствующую папку. Также необходимо проверить права доступа.
  3. Изменение GPT
    Для изменения GPT необходим модуль редактирования настроек клиентской конфигурации (GPUI):
    # apt-get install gpui
    
    Запускать его необходимо с ключом -p (полный путь для редактируемой политики):
    # gpui-main -p smb://dc.testipa.alt/ipasysvol/gpo_group1/{00A29D33-3727-4EF1-9C29-6A6FCCCD62E4}
    
    Необходимо указать полный путь до GPT, где gpo_group1 - папка с GPT, а {00A29D33-3727-4EF1-9C29-6A6FCCCD62E4} - название GPT.

Применение GPO на клиентах

  1. Установка gpupdate на клиентах
    Для применения групповых политик на клиентах необходимо установить gpupdate, если он не установлен:
    # apt-repo add
    # apt-get update
    # apt-get install gpupdate
    
    Необходимо внести изменения в конфигурационный файл etc/gpupdate/gpupdate.ini:
    [gpoa]
    backend = freeipa
    local-policy = workstation
    
    [dc]
    share_path = ipasysvol
    
    В параметре share_path необходимо указывать созданную вами расшаренную папку. Также параметр backend = freeipa не обязательно прописывать вручную, а можно установить:
    # gpupdate-setup set-backend freeipa
    
    Теперь политики можно применять на клиенте с помощью gpupdate:
    $ gpupdate 
    Apply group policies for computer.
    Apply group policies for user1.