Установка и конфигурирование
Агент LDAP-прокси поставляется в виде готового образа контейнера Docker.
Чтобы установить и настроить, на каждой из машин, где будут запускаться LDAP-прокси, выполните следующее:
- установите и сконфигурируйте Docker Engine;
- настройте параметры агента;
- подключите агенты к серверам 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-прокси.
Для этого:
В разделе
[ldap_proxy_connection]укажите, на каком сетевом адресе необходимо слушать запросы. Если вы укажете значение0.0.0.0, запросы будут приниматься на все сетевые интерфейсы системы:ldap_proxy_host= 0.0.0.0Укажите, использовать ли защищенный протокол LDAPS для приема запросов от целевых ресурсов:
ldap_proxy_ssl= yes
Подключение к серверам LDAP
После того, как вы указали параметры запуска, в том же конфигурационном файле задайте параметры подключения LDAP-прокси к серверам LDAP.
Для этого:
В разделе
[ldap_server_connection]впишите имя или IP-адрес основного и резервного сервера LDAP:ldap_server_1= 10.0.0.11
ldap_server_2= 10.0.0.12Если используется резервный сервер LDAP, установите тайм-аут переключения на резервный сервер, если основной станет недоступен. Если ваши пользователи используют push-уведомления, время тайм-аута необходимо увеличить, например до 60 секунд:
ldap_timeout= 30Если используется резервный сервер LDAP, установите тайм-аут возврата на основной сервер, когда он снова станет доступен:
timeout_to_restore_to_first_ldap = 180Укажите порт серверов LDAP:
ldap_port= 636Укажите, использовать ли защищенный протокол LDAPS для подключения к серверам LDAP:
ldap_ssl= yesУкажите, нужно ли проверять подлинность серверов, где расположен каталог LDAP:
ldap_verify_ssl= noВведите логин служебной учетной записи, под которой агент подключается к серверам LDAP:
login= CN=Administrator,CN=Users,DC=indeed,DC=localУкажите пароль этой учетной записи:
password=$Password1Введите базу поиска в каталоге LDAP:
search_base= CN=Users,DC=indeed,DC=localВыберите схему LDAP. Доступные значения: 1 — использовать схему Active Directory, 2 — использовать схему FreeIPA.
ldap_server_scheme= 1Выберите атрибут LDAP, в котором будет передаваться имя пользователя:
ldap_login_field= sAMAccountName
Подключение к серверу аутентификации
Далее в том же конфигурационном файле задайте параметры подключения LDAP-прокси к серверу аутентификации.
Для этого:
В разделе
[sas_connection]впишите имена или IP-адреса и порты (если они отличаются от 443) сервера аутентификации:sas_address= mfa.indeed-cloud.ruУкажите, нужно ли проверять подлинность сервера аутентификации:
sas_verify_ssl= noУкажите, нужно ли удалять название префикс домена в запросе на сервер аутентификации:
strip_netbios_prefix= noУкажите, нужно ли удалять суффикс UPN-записи в запросе на сервер аутентификации:
strip_realm_from_upn= noУкажите тип токенов, которые будут использоваться для аутентификации через LDAP-прокси. Доступные значения:
- p — программный токен в режиме push-уведомлений,
- t — Telegram-токен в режиме push-уведомлений,
- пустое значение — push-уведомления по умолчанию,
- otp — программный или аппаратный токен TOTP или HOTP.
token_type= otpЕсли будут использоваться одноразовые пароли, укажите их длину:
otp_digits= 6 или 8Укажите, где будет расположен пароль LDAP в поле ввода — перед или после одноразового пароля. Доступные значения: yes — одноразовый пароль после пароля LDAP, no — до пароля LDAP.
ldap_prefix= yes
Получение и установка сертификатов
Если нужно защитить соединение между целевыми ресурсами и LDAP-прокси по протоколу LDAPS, необходимо использовать свои собственные сертификаты стандарта X.509. Для каждого LDAP-прокси, подключение к которому нужно защитить, потребуются сертификат LDAP-прокси, закрытый ключ этого сертификата, а также корневой сертификат удостоверяющего центра (УЦ), которым подписан сертификат LDAP-прокси.
Чтобы получить подписанный сертификат LDAP-прокси, сначала сгенерируйте его закрытый ключ, потом сгенерируйте с его помощью запрос на подпись сертификата (Certificate Signing Request, CSR) и затем подпишите этот запрос в удостоверяющем центре.
Подписывать сертификаты можно во внешнем (коммерческом) удостоверяющем центре или во внутреннем (корпоративном). Кроме того, можно запустить локальный удостоверяющий центр специально для обслуживания сервиса MFA. Этот способ можно рекомендовать для тестовых и пилотных внедрений, а также в любых случаях, когда корпоративного удостоверяющего центра нет, а использование коммерческого невозможно или нежелательно.
Независимо от того, какой тип удостоверяющего центра будет использоваться, для каждого из LDAP-прокси выполните:
Сгенерируйте закрытый ключ сервера:
openssl genrsa -out CA.key 2048Сгенерируйте запрос на подпись сертификата:
openssl x509 -req -in indeed.local -CA CA.pem -CAkey CA.key -CAcreateserial -out lpa1.indeed.local.pemОтправьте запрос на подпись в удостоверяющий центр и получите уже подписанный сертификат, а также корневой сертификат этого удостоверяющего центра.
Скопируйте все 3 файла на машину, где будет запущен LDAP-прокси.
Развертывание образа, создание и запуск контейнера c LDAP-прокси
Чтобы развернуть образ и запустить контейнер:
Запустите сервис Docker:
systemctl start dockerСкопируйте образ агента на машину и разверните его:
docker load -i lpa-1.12.080725-indeed.tar.gzСоздайте и запустите контейнер агента, выбрав ему имя и указав пути к файлам конфигурации и сертификатам и ключам:
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