Управление групповыми политиками для автоматической регистрации сертификатов

Назначение групповых политик для автоматической регистрации сертификатов — обеспечить возможность получения клиентскими машинами сертификатов, выдаваемых службами сертификатов Active Directory (Active Directory Certificate Services, AD CS). Для отслеживания сертификатов Samba использует службу certmonger с плагином cepces.

Серверное расширение (SSE) доступно только в составе GPME. Команда samba-tool gpo manage не предоставляет отдельные подкоманды для работы с политиками для автоматической регистрации сертификатов.

Для работы политик требуется доступ к центру сертификации на сервере под управлением ОС Windows, на котором должны быть установлены и настроены роли «Центр сертификации» (Certification Authority), «Веб-служба политик регистрации сертификатов» (Certificate Enrollment Policy Web Service) и «Веб-служба регистрации сертификатов» (Certificate Enrollment Web Service). Для упрощения процесса получения цепочки корневых сертификатов клиентами дополнительно может быть установлена и настроена роль «Служба регистрации на сетевых устройствах» (Network Device Enrollment Service).

Клиентское расширение (CSE) добавляет новые центры сертификации в certmonger и обеспечивает автоматическое отслеживание новых сертификатов на основе назначенных шаблонов сертификатов. Для работы CSE требуется установка пакетов certmonger и cepces.

По умолчанию сертификаты устанавливаются в каталог /var/lib/samba/certs, а приватные ключи — в каталог /var/lib/samba/private/certs. Для размещения файлов в более удобном месте может потребоваться настроить групповую политику для создания соответствующих символических ссылок.

Пример настройки групповой политики для автоматической регистрации сертификатов с помощью GPME:

  1. На сервере под управлением ОС Windows с необходимыми ролями AD CS откройте GPME и в области навигации редактора в левой панели раскройте Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Политики открытого ключа.

  2. В панели справа дважды нажмите пункт Клиент служб сертификации: автоматическая регистрация.

  3. В диалоговом окне Свойства установите Включено и выберите опции обновления сертификатов с истекшим сроком действия и обновления сертификатов, использующих шаблоны сертификатов. Нажмите Применить и ОК.

  4. В панели редактора политик дважды нажмите пункт Клиент служб сертификации: политика регистрации сертификатов.

  5. В диалоговом окне Свойства установите Включено и нажмите Добавить.

  6. В диалоговом окне Сервер политики регистрации сертификатов укажите URI сервера и выберите в поле Тип проверки подлинности значение Встроенная проверка подлинности Windows. Нажмите Добавить.

  7. В диалоговом окне Свойства нажмите Применить и ОК.

  8. Откройте консоль управления центром сертификации (certsrv.msc) и в области навигации в левой панели выберите Шаблоны сертификатов, нажмите правую кнопку мыши и в контекстном меню выберите Управлять.

  9. В правой панели оснастки выберите один из существующих шаблонов, нажмите правую кнопку мыши и в контекстном меню выберите Скопировать шаблон.

  10. В диалоговом окне Свойства нового шаблона задайте параметры шаблона: имя (например, TestComputerTemplate), срок действия, периодичность обновления, требования к шифрованию и т. д. Нажмите Применить и ОК.

  11. Чтобы подключить новый шаблон, в области навигации в левой панели выберите Шаблоны сертификатов, нажмите правую кнопку мыши и в контекстном меню выберите Создать и затем Выдаваемый шаблон сертификата.

  12. В диалоговом окне Включение шаблонов сертификатов выберите добавленный шаблон и нажмите ОК.

    Новый шаблон отображается в списке подключенных шаблонов в правой панели оснастки для управления центром сертификации.

  13. Для проверки доступности политики на клиентской машине с ОС Linux  — участнике домена с установленными пакетами certmonger и cepces выполните:

    sudo /app/inno-samba/sbin/samba-gpupdate --rsop
    Resultant Set of Policy
    Computer Policy
    
    GPO: Default Domain Policy
    =================================================================
      CSE: gp_cert_auto_enroll_ext
      -----------------------------------------------------------
        Policy Type: Auto Enrollment Policy
        -----------------------------------------------------------
        [ elles-WIN-VUR8LN6A0DA-CA ] =
          [ CA Certificate ] =
    -----BEGIN CERTIFICATE-----
    <REDACTED>
    -----END CERTIFICATE-----
          [ Auto Enrollment Server ] = WIN-VUR8LN6A0DA.elles.inno.tech
          [ Templates ] =
            [ Machine ]
            [ TestComputerTemplate ]
        -----------------------------------------------------------
      -----------------------------------------------------------
    =================================================================
  14. Обновите политики на клиентской машине:

    sudo /app/inno-samba/sbin/samba-gpupdate --force
  15. Для получения списка центров аутентификации выполните:

    sudo getcert list-cas
    CA 'elles-WIN-VUR8LN6A0DA-CA':
        is-default: no
        ca-type: EXTERNAL
        helper-location: /usr/libexec/certmonger/cepces-submit \
          --server=WIN-VUR8LN6A0DA.elles.inno.tech \
          --auth=Kerberos
  16. Для получения списка сертификатов выполните:

    sudo getcert list
    Number of certificates and requests being tracked: 2.
    Request ID 'elles-WIN-VUR8LN6A0DA-CA.Machine':
        status: MONITORING
        stuck: no
        key pair storage: type=FILE,
          location='/app/inno-samba/private/certs/
                    elles-WIN-VUR8LN6A0DA-CA.Machine.key'
        certificate: type=FILE,
          location='/app/inno-samba/certs/
                    elles-WIN-VUR8LN6A0DA-CA.Machine.crt'
        CA: elles-WIN-VUR8LN6A0DA-CA
        issuer: CN=elles-WIN-VUR8LN6A0DA-CA,
                DC=elles,DC=inno,DC=tech
        subject: CN=dc1.elles.inno.tech
        issued: 2023-09-15 11:30:13 UTC
        expires: 2024-09-15 11:30:13 UTC
        dns: dc1.elles.inno.tech
        key usage: digitalSignature,keyEncipherment
        eku: id-kp-clientAuth,id-kp-serverAuth
        certificate template/profile: Machine
        profile: Machine
        pre-save command:
        post-save command:
        track: yes
        auto-renew: yes
    Request ID 'elles-WIN-VUR8LN6A0DA-CA.TestComputerTemplate':
        status: MONITORING
        stuck: no
        key pair storage: type=FILE,
          location='/app/inno-samba/private/certs/
            elles-WIN-VUR8LN6A0DA-CA.TestComputerTemplate.key'
        certificate: type=FILE,
          location='/app/inno-samba/certs/
            elles-WIN-VUR8LN6A0DA-CA.TestComputerTemplate.crt'
        CA: elles-WIN-VUR8LN6A0DA-CA
        issuer: CN=elles-WIN-VUR8LN6A0DA-CA,
                DC=elles,DC=inno,DC=tech
        subject:
        issued: 2023-09-15 11:30:13 UTC
        expires: 2024-09-15 11:30:13 UTC
        dns: dc1.elles.inno.tech
        key usage: digitalSignature,keyEncipherment
        eku: id-kp-serverAuth,id-kp-clientAuth
        profile: TestComputerTemplate
        pre-save command:
        post-save command:
        track: yes
        auto-renew: yes