Skip to main content

Установка и конфигурирование

Агент LDAP-прокси поставляется в виде готового образа контейнера Docker.

Чтобы установить и настроить, на каждой из машин, где будут запускаться LDAP-прокси, выполните следующее:

Установка и конфигурирование Docker

Перед развертыванием агента на машину установите Docker Engine, запустите и добавьте машину в автозагрузку. Может потребоваться предварительно подключить и обновить репозитории, детальные инструкции по подключению и обновлению репозиториев с Docker Engine для разных дистрибутивов Linux на веб-сайте вендора.

yum install docker-ce docker-ce-cli (для RedHat-совместимых дистрибутивов)
или
apt install -y docker.io (для Debian-совместимых дистрибутивов)

systemctl start docker

systemctl enable --now docker

Настройка параметров агента

LDAP-прокси поддерживает работу с каталогами пользователей Active Directory и FreeIPA.

В дистрибутиве агента LDAP-прокси (директория LPA) расположены два конфигурационных файла config_freeipa.ini и config_ad.ini.

В выбранном конфигурационном файле настройте параметры запуска агента LDAP-прокси.

Для этого:

  1. В разделе [ldap_proxy_connection] укажите, на каком сетевом адресе необходимо слушать запросы. Если вы укажете значение 0.0.0.0, запросы будут приниматься на все сетевые интерфейсы системы:

    ldap_proxy_host= 0.0.0.0
  2. Укажите, использовать ли защищенный протокол LDAPS для приема запросов от целевых ресурсов:

    ldap_proxy_ssl= yes

Подключение к серверам LDAP

После того, как вы указали параметры запуска, в том же конфигурационном файле задайте параметры подключения LDAP-прокси к серверам LDAP.

Для этого:

  1. В разделе [ldap_server_connection] впишите имя или IP-адрес основного и резервного сервера LDAP:

    ldap_server_1= 10.0.0.11
    ldap_server_2= 10.0.0.12
  2. Если используется резервный сервер LDAP, установите тайм-аут переключения на резервный сервер, если основной станет недоступен. Если ваши пользователи используют push-уведомления, время тайм-аута необходимо увеличить, например до 60 секунд:

    ldap_timeout= 30
  3. Если используется резервный сервер LDAP, установите тайм-аут возврата на основной сервер, когда он снова станет доступен:

    timeout_to_restore_to_first_ldap = 180
  4. Укажите порт серверов LDAP:

    ldap_port= 636
  5. Укажите, использовать ли защищенный протокол LDAPS для подключения к серверам LDAP:

    ldap_ssl= yes
  6. Укажите, нужно ли проверять подлинность серверов, где расположен каталог LDAP:

    ldap_verify_ssl= no
  7. Введите логин служебной учетной записи, под которой агент подключается к серверам LDAP:

    login= CN=Administrator,CN=Users,DC=indeed,DC=local
  8. Укажите пароль этой учетной записи:

    password=$Password1
  9. Введите базу поиска в каталоге LDAP:

    search_base= CN=Users,DC=indeed,DC=local
  10. Выберите схему LDAP. Доступные значения: 1 — использовать схему Active Directory, 2 — использовать схему FreeIPA.

    ldap_server_scheme= 1
  11. Выберите атрибут LDAP, в котором будет передаваться имя пользователя:

    ldap_login_field= sAMAccountName

Подключение к серверу аутентификации

Далее в том же конфигурационном файле задайте параметры подключения LDAP-прокси к серверу аутентификации.

Для этого:

  1. В разделе [sas_connection] впишите имена или IP-адреса и порты (если они отличаются от 443) сервера аутентификации:

    sas_address= mfa.indeed-cloud.ru
  2. Укажите, нужно ли проверять подлинность сервера аутентификации:

    sas_verify_ssl= no
  3. Укажите, нужно ли удалять название префикс домена в запросе на сервер аутентификации:

    strip_netbios_prefix= no
  4. Укажите, нужно ли удалять суффикс UPN-записи в запросе на сервер аутентификации:

    strip_realm_from_upn= no
  5. Укажите тип токенов, которые будут использоваться для аутентификации через LDAP-прокси. Доступные значения:

    • p — программный токен в режиме push-уведомлений,
    • t — Telegram-токен в режиме push-уведомлений,
    • пустое значение — push-уведомления по умолчанию,
    • otp — программный или аппаратный токен TOTP или HOTP.
    token_type= otp 
  6. Если будут использоваться одноразовые пароли, укажите их длину:

    otp_digits= 6 или 8
  7. Укажите, где будет расположен пароль LDAP в поле ввода — перед или после одноразового пароля. Доступные значения: yes — одноразовый пароль после пароля LDAP, no — до пароля LDAP.

    ldap_prefix= yes

Получение и установка сертификатов

Если нужно защитить соединение между целевыми ресурсами и LDAP-прокси по протоколу LDAPS, необходимо использовать свои собственные сертификаты стандарта X.509. Для каждого LDAP-прокси, подключение к которому нужно защитить, потребуются сертификат LDAP-прокси, закрытый ключ этого сертификата, а также корневой сертификат удостоверяющего центра (УЦ), которым подписан сертификат LDAP-прокси.

Чтобы получить подписанный сертификат LDAP-прокси, сначала сгенерируйте его закрытый ключ, потом сгенерируйте с его помощью запрос на подпись сертификата (Certificate Signing Request, CSR) и затем подпишите этот запрос в удостоверяющем центре.

Подписывать сертификаты можно во внешнем (коммерческом) удостоверяющем центре или во внутреннем (корпоративном). Кроме того, можно запустить локальный удостоверяющий центр специально для обслуживания сервиса MFA. Этот способ можно рекомендовать для тестовых и пилотных внедрений, а также в любых случаях, когда корпоративного удостоверяющего центра нет, а использование коммерческого невозможно или нежелательно.

Независимо от того, какой тип удостоверяющего центра будет использоваться, для каждого из LDAP-прокси выполните:

  1. Сгенерируйте закрытый ключ сервера:

    openssl genrsa -out CA.key 2048
  2. Сгенерируйте запрос на подпись сертификата:

    openssl x509 -req -in indeed.local -CA CA.pem -CAkey CA.key -CAcreateserial -out lpa1.indeed.local.pem
  3. Отправьте запрос на подпись в удостоверяющий центр и получите уже подписанный сертификат, а также корневой сертификат этого удостоверяющего центра.

  4. Скопируйте все 3 файла на машину, где будет запущен LDAP-прокси.

Развертывание образа, создание и запуск контейнера c LDAP-прокси

Чтобы развернуть образ и запустить контейнер:

  1. Запустите сервис Docker:

    systemctl start docker
  2. Скопируйте образ агента на машину и разверните его:

    docker load -i lpa-1.12.080725-indeed.tar.gz
  3. Создайте и запустите контейнер агента, выбрав ему имя и указав пути к файлам конфигурации и сертификатам и ключам:

    docker run -d --network host --name lpa --restart always \
    -e TZ=Europe/Moscow
    -v /opt/indeed/lpa/config_ad.ini:/opt/lpa/config.ini \
    [-v /opt/indeed/lpa/CA.pem:/etc/lpa/CA.pem \]
    [-v /opt/indeed/lpa/indeed.key:/etc/ssl/private/indeed.key \-
    [-v /opt/indeed/lpa/DEMO-CA.crt:/usr/local/share/ca-certificates/DEMO-CA.crt \]
    -t lpa:1.12.080725