Настройка защищенного подключения по протоколу LDAPS

Настройка защищенного подключения по протоколу LDAPS в кластере Avanpost DS включает два этапа:

1. Настройка контроллеров домена (КД)

Для настройки подключения по протоколу LDAPS в кластере Avanpost DS на каждом КД необходимо выполнить шаги:

Шаг 1.1. В корпоративном центре сертификации выпустить закрытый и открытый ключ под каждый КД (.key, .crt).

Шаг 1.2. На КД создать каталог "/opt/avanpost/ads/cert" и загрузить туда файлы сертификатов.

Для этого необходимо выполнить команду:

mkdir /opt/avanpost/ads/cert

Шаг 1.3. Предоставить права на директорию для пользователя "ads".

Для этого необходимо выполнить команду:

chown -R ads:ads /opt/avanpost/ads/

Шаг 1.4. Остановить сервис "ads".

Для этого необходимо выполнить команду:

sudo systemctl stop ads

Шаг 1.5. Добавить в файл конфигурации Avanpost DS "/opt/avanpost/ads/config/config.yaml" пути к сертификату и его закрытому ключу.

Для этого необходимо:

1.5.1 Открыть для редактирования "/opt/avanpost/ads/config/config.yaml".

Открыть файл /opt/avanpost/ads/config/config.yaml
nano /opt/avanpost/ads/config/config.yaml

1.5.2 Заполнить файл по шаблону:

Шаблон /opt/avanpost/ads/config/config.yaml
ldaps:
  port: 636
  host: 0.0.0.0
  cert: "/opt/avanpost/ads/cert/[FQDN].crt"
  key: "/opt/avanpost/ads/cert/[FQDN].key"

Заменить [FQDN] на FQDN контроллера домена.

Пример /opt/avanpost/ads/config/config.yaml
ldaps:
  port: 636
  host: 0.0.0.0
  cert: "/opt/avanpost/ads/cert/ds01.avanpost.local.crt"
  key: "/opt/avanpost/ads/cert/ds01.avanpost.local.key"

Шаг 1.6. Запустить сервис "ads".

Для этого необходимо выполнить команду:

sudo systemctl start ads

Шаг 1.7. Проверить подключение по LDAPS (требуется утилита ldapsearch). Для выполнить команду по шаблону, подставив свои данные:

Шаблон команды
LDAPTLS_REQCERT=allow ldapsearch -H ldaps://[Hostname КД]:636 -x -W -D "cn=[Логин администратора],ou=[Подразделение],dc=[Домен2ур],dc=[Домен1ур]" -b "ou=[Подразделение],dc=[Домен2ур],dc=[Домен1ур]"

Заменить [Hostname КД] на FQDN адрес контроллера домена;

Заменить [Логин администратора] на логин администратора Avanpost DS;

Заменить [Подразделение] на название подразделения, в котором состоит администратор;

Заменить [Домен1ур] на свой домен первого уровня, а [Домен2ур] — на свой домен второго уровня.

Пример команды
LDAPTLS_REQCERT=allow ldapsearch -H ldaps://ds01.avanpost.local:636 -x -W -D "cn=Administrator,ou=users,dc=avanpost,dc=local" -b "ou=users,dc=avanpost,dc=local"

Шаг 1.8. В веб-интерфейсе администратора Avanpost DS добавить SRV записи для каждого КД в корень домена и в каждый поддомен (default и т.д).

Как зайти в веб-интерфейс администратора Avanpost DS см. Руководство по Администрированию Avanpost DS

Для добавления SRV записи необходимо:

1.8.1. В разделе "DNS" нажать в строке нужной зоны → "Добавить запись SRV" (Рисунок 95)

Рисунок 95. Добавление SRV записи

1.8.2. Заполнить необходимые поля в форме и нажать (Рисунок 96):

  1. Служба: _ldaps
  2. Протокол: _tcp
  3. Порт: 636
  4. Хост: ds01.avanpost.local (FQDN адрес КД)

         

Рисунок 96. Добавление SRV записи

2. Настройка рабочих станций

На рабочих станциях требуется настроить SSSD для работы с LDAPS. Для этого необходимо выполнить шаги:                       

Шаг 2.1. С рабочей станции проверить наличие SRV записей в DNS.

Для этого необходимо выполнить команду:

Команда
dig srv _ldaps._tcp.avanpost.local | grep 636
Вывод команды dig
# вывод содержит в себе SRV записи всех КД c портом 636
_ldaps._tcp.avanpost.local. 870 IN      SRV     0 0 636 ds01.avanpost.local.

Шаг 2.2. Отредактировать конфигурационный файл "/etc/sssd/sssd.conf".

Открыть файл /etc/sssd/sssd.conf
nano /etc/sssd/sssd.conf
  1. Заменить значение параметра "ldap_id_use_start_tls = False" на "True".
  2. Добавить строки в раздел [domain/ВАШ.ДОМЕН]:
Строки для добавления
ldap_tls_reqcert = allow
ldap_dns_service_name = ldaps
Пример /etc/sssd/sssd.conf
[sssd]
config_file_version = 2
reconnection_retries = 3
services = nss, pam, sudo
domains = AVANPOST.LOCAL

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
memcache_timeout = 5

[pam]
reconnection_retries = 3

[sudo]
[domain/AVANPOST.LOCAL]
entry_cache_timeout = 5
ldap_user_name = cn
debug_level = 9
cache_credentials = False
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = simple
dns_discovery_domain = default.avanpost.local 
ldap_uri = _srv_
ldap_schema = rfc2307bis
ldap_referrals = False
ldap_sudo_search_base = ou=sudoers,dc=system
ldap_sudo_full_refresh_interval=86400
ldap_sudo_smart_refresh_interval=3600
ldap_search_base = dc=avanpost,dc=local
ldap_user_search_base = dc=avanpost,dc=local
ldap_user_object_class = krbPrincipal
ldap_search_timeout = 60
ldap_network_timeout = 60
ldap_opt_timeout = 60
ldap_access_filter = (host=ALL)
ldap_force_upper_case_realm = True
ldap_dns_service_name = ldaps # Обязательно для LDAPS, по умолчанию: ldap
ldap_tls_reqcert = allow # Обязательно для LDAPS
ldap_id_use_start_tls = True # Обязательно для LDAPS, по умолчанию: false
ldap_sasl_mech = GSSAPI
ldap_sasl_authid = host/client-redos.avanpost.local@AVANPOST.LOCAL
krb5_realm = AVANPOST.LOCAL
krb5_canonicalize = False
krb5_server = _srv_
krb5_kpasswd = _srv_

Шаг 2.3. Очистить кэш "sssd".

Для этого необходимо выполнить команду:

sudo sss_cache -E

Шаг 2.4. Перезапустить службу "sssd".

Для этого необходимо выполнить команду:

sudo systemctl restart sssd

Шаг 2.5. Для проверки завершить сессию на рабочей станции и авторизоваться заново под доменной учетной записью.

Обсуждение