Работа с samba-gpupdate

Скрипт samba-gpupdate (полный путь после установки — /app/inno-samba/sbin/samba-gpupdate) отвечает за применение и отмену применения групповых политик.

Общие сведения

Групповые политики обеспечивают централизованное управление настройками операционных систем, приложений и пользователей в домене. Набор настроек, назначенный администратором определенной группе компьютеров и пользователей, объединяется в объект групповой политики (Group Policy Object, GPO).

Инфраструктура управления и применения GPO в домене состоит из двух уровней:

  • серверные расширения (Server Side Extensions, SSE) — отвечают за работу с GPO на контроллере домена, позволяя администраторам задавать и применять настройки к определенным компьютерам и пользователям в домене;

  • клиентские расширения (Client Side Extensions, CSE) — модули на клиентских машинах, обеспечивающие установку и применение определенных политик (в случае Эллес клиентское расширение представляет собой файл на Python).

При запуске скрипт samba-gpupdate сверяет локальный лог примененных ранее GPO (/app/inno-samba/var/cache/gpo.tdb) с текущим списком GPO в каталоге sysvol (/app/inno-samba/var/locks/sysvol/<domain-name>/Policies/), сортируя их по контейнерам. При обнаружении различий содержимое sysvol трактуется как новые/измененные GPO и импортируется/применяется.

Для настройки и редактирования групповых политик в текущей версии Эллес используется редактор групповых политик (Group Policy Management Editor, GPME) на участнике домена под управлением ОС Windows.

Пример объекта групповой политики (GPO)

Например, GPO может использоваться для управления атрибутами парольной политики, выдачи билетов Kerberos и блокировки учетных записей на контроллерах домена Эллес (server role = active directory domain controller в smb.conf).

Настройки, применяемые в рамках данного объекта GPO, хранятся в файле MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf в подкаталоге соответствующего объекта GPO в sysvol.

Серверное расширение (SSE) для GPO распространяется в виде административного шаблона в формате ADMX.

Клиентские расширения (CSE) для GPO — gp_access_ext и gp_krb_ext. Они обеспечивают применение правил использования паролей, выдачи билетов Kerberos и блокировки учетных записей через соответствующие атрибуты LDAP непосредственно в базе данных на контроллере домена Эллес.

Набор доступных атрибутов соответствует GPO Password Policy, GPO Account Lockout Policy и GPO Kerberos Policy в домене Active Directory (путь в GPME: Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies):

  • атрибуты парольной политики:

    Настройка в GPME Атрибут в CSE Атрибут LDAP Описание

    Enforce password history

    PasswordHistorySize

    pwdHistoryLength

    Количество новых уникальных паролей, по достижении которого для учетной записи может повторно использоваться введенный ранее пароль

    Maximum password age

    MaximumPasswordAge

    maxPwdAge

    Максимальный срок использования пароля до его смены (в днях)

    Minimum password age

    MinimumPasswordAge

    minPwdAge

    Минимальный срок использования пароля до его смены (в днях)

    Minimum password length

    MinimumPasswordLength

    minPwdLength

    Минимальная длина пароля

    Password must meet complexity requirements

    PasswordComplexity

    pwdProperties

    Соответствие требованиям к сложности пароля

  • атрибуты блокировки учетных записей:

    Настройка в GPME Атрибут в CSE Атрибут LDAP Описание

    Account lockout duration

    LockoutDuration

    lockoutDuration

    Продолжительность блокировки учетной записи (в минутах)

    Reset account lockout counter after

    ResetLockoutCount

    lockOutObservationWindow

    Время до сброса счетчика неудачных попыток входа (в минутах)

    Account lockout threshold

    LockoutBadCount

    lockoutThreshold

    Количество неудачных попыток входа до блокировки учетной записи

  • атрибуты выдачи билетов Kerberos:

    Настройка в GPME Атрибут в CSE Настройка в smb.conf Описание

    Maximum lifetime for user ticket

    MaxTicketAge

    kdc:user_ticket_lifetime

    Максимальный период действия выданного пользователю TGT-билета для аутентификации Kerberos (в часах)

    Maximum lifetime for service ticket

    MaxServiceAge

    kdc:service_ticket_lifetime

    Максимальный период действия сервисного билета для аутентификации Kerberos (в минутах)

    Maximum lifetime for user ticket renewal

    MaxRenewAge

    kdc:renewal_lifetime

    Максимальный период, в течение которого может быть обновлен TGT-билет пользователя для аутентификации Kerberos (в днях)

Настройка автоматического запуска

Для включения автоматического запуска скрипта samba-gpupdate на контроллере домена Эллес или участнике, введенном в домен с помощью Winbind:

  1. Добавьте в раздел [global] в конфигурационном файле smb.conf следующий параметр:

    apply group policies = yes
  2. При необходимости задайте также интервал запуска скрипта не более 120 минут (по умолчанию скрипт запускается с интервалом 90–120 минут) в разделе [global] в конфигурационном файле smb.conf в следующем формате:

    apply group policies : period = <num>

    В параметре num соответствует количеству минут не более 120. При значении 0 используется интервал по умолчанию.

Формат вызова

Общий формат вызова скрипта:

samba-gpupdate [options]

В результате выполнения скрипта к локальной машине или указанному пользователю применяются групповые политики, которые ранее к ним не применялись или в которые с момента последнего применения были внесены изменения.

Параметры

Параметры вызова:

  • --force — повторное применение всех объектов GPO, включая те, которые ранее уже применялись;

  • --rsop — получение информации о доступных групповых политиках (объекты GPO и реализующие их клиентские расширения);

  • --target:

    • --target=Computer — применение или отмена применения групповых политик к локальной машинной учетной записи участника домена (по умолчанию);

    • --target=User -U<username> — применение или отмена применения групповых политик к учетной записи пользователя с указанным username;

  • -X|--unapply — отмена применения всех объектов GPO.

    Для выполнения скрипта с этой опцией требуются права суперпользователя.

Общие параметры:

  • -d DEBUGLEVEL|--debuglevel=DEBUGLEVEL — уровень логирования (целое число от 0 до 10);

  • --option="OPTION=NEWVALUE" — переопределение параметра в конфигурационном файле smb.conf;

  • --realm=REALM — имя домена;

    Переданное в параметре значение переопределяет значение аналогичного параметра в файле smb.conf.
  • -s FILE|--configfile=FILE — путь к конфигурационному файлу smb.conf (если отличается от пути по умолчанию).

Параметры аутентификации:

  • --ipaddress=IPADDRESS — IP-адрес сервера;

  • -k KERBEROS|--kerberos=KERBEROS — необходимость аутентификации с использованием Kerberos;

  • -N|--no-pass — указывает на отсутствие необходимости запрашивать у пользователя пароль;

  • -P|--machine-pass — использовать сохраненный пароль учетной записи компьютера;

  • --password — пароль для передачи в командной строке;

  • --simple-bind-dn=DN — уникальное имя для использования скрипта при простом удаленном подключении;

  • -U USERNAME|--username=USERNAME — имя пользователя либо имя пользователя и пароль;

  • -W WORKGROUP|--workgroup=WORKGROUP — домен, к которому относится переданное имя пользователя.

Примеры

Примеры использования скрипта на локальной машине:

  • применение новых и измененных GPO:

    samba-gpupdate
  • повторное применение всех GPO:

    samba-gpupdate --force
    samba-gpupdate --force --target=Computer
    samba-gpupdate --force --target=User -U "User Name"
  • отмена применения всех GPO:

    samba-gpupdate --unapply
    samba-gpupdate --unapply --target=Computer
    samba-gpupdate --unapply --target=User -U "User Name"
  • получение информации о всех GPO, доступных для применения:

    samba-gpupdate --rsop
    Resultant Set of Policy
    Computer Policy
    
    GPO: Default Domain Policy
    =================================================================
      CSE: gp_access_ext
      -----------------------------------------------------------
        Policy Type: System Access
        -----------------------------------------------------------
        [ MinimumPasswordAge ] = 1
        [ MaximumPasswordAge ] = 60
        [ MinimumPasswordLength ] = 12
        [ PasswordComplexity ] = 1
        [ LockoutDuration ] = 0
        [ ResetLockoutCount ] = 50
        [ LockoutBadCount ] = 10
        -----------------------------------------------------------
      -----------------------------------------------------------
      CSE: gp_krb_ext
      -----------------------------------------------------------
        Policy Type: Kerberos Policy
        -----------------------------------------------------------
        [ MaxTicketAge ] = 10
        [ MaxRenewAge ] = 7
        [ MaxServiceAge ] = 600
        -----------------------------------------------------------
      -----------------------------------------------------------
    =================================================================
    samba-gpupdate --rsop --target=Computer
    samba-gpupdate --rsop --target=User -U "User Name"