Получена ошибка PROTOCOL_ERROR, сервер отключится при подключении к серверу openldap.

Вопрос или проблема

Я уже некоторое время использую OpenLDAP, но на старых дистрибутивах. Недавно я установил Oracle Linux Server 9.5 и обнаружил, что пакет openldap-server устарел. Затем я скачал openldap-2.6.9.tgz с openldap.org и следовал инструкциям на странице быстрого запуска, чтобы собрать из исходников.

После нескольких заминок, установка завершилась, и я вижу сервис сервера SYSTEMD и клиентские инструменты. Я запустил slapd через systemd и попытался подключиться с Apache Directory Studio. Он показывает ошибку:

Error while opening connection
 -  [LDAP result code 2 - protocolError] PROTOCOL_ERROR: The server will disconnect!
org.apache.directory.studio.connection.core.io.StudioLdapException:  [LDAP result code 2 - protocolError] PROTOCOL_ERROR: The server will disconnect!
    at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.toStudioLdapException(DirectoryApiConnectionWrapper.java:1350)
    at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$2(DirectoryApiConnectionWrapper.java:1342)

Journalctl показывает:

Jan 07 11:00:32 vm1.mydomain.com slapd[865293]: connection_init(13, IP=192.168.1.191:49798): set nonblocking failed
Jan 07 11:00:32 vm1.mydomain.com slapd[865293]: daemon: connection_init(13, IP=192.168.1.191:49798, IP=0.0.0.0:389) failed.

SELinux установлен в состояние отключено.

Как мне узнать, в чем проблема?

Ответ или решение

Для решения проблемы с ошибкой PROTOCOL_ERROR при подключении к серверу OpenLDAP на Oracle Linux Server 9.5, необходимо провести комплексный анализ возможных источников ошибки и принять соответствующие меры. Рассмотрим подход к решению проблемы шаг за шагом.

Формулировка проблемы

Вы успешно установили OpenLDAP из исходников на Oracle Linux Server 9.5. Однако при попытке подключения через Apache Directory Studio возникает ошибка:

  • LDAP result code 2 – protocolError
  • Отчет Journalctl свидетельствует о проблеме с неудачной инициализацией соединения.

Остановка на проблеме (Root Cause Analysis)

1. Версия и совместимость:
Убедитесь, что версия Apache Directory Studio совместима с версией OpenLDAP, которую вы установили (2.6.9). Обновите Studio, если доступна более новая версия, поддерживающая ваш стек.

2. Конфигурационные файлы:
Проверьте конфигурацию slapd. Убедитесь, что все параметры соответствуют вашей инфраструктуре. Некорректные параметры, такие как неверный rootDN или rootPW, могут привести к ошибкам протокола.

3. Порты и IP-адреса:
Убедитесь, что OpenLDAP слушает на нужных портах и IP-адресах. Проверьте, что /etc/hosts.allow и /etc/hosts.deny не блокируют запросы с IP клиента.

4. Логирование:
Увеличьте уровень детализации логов slapd с помощью параметра loglevel в конфигурационном файле slapd. Это может предоставить дополнительную информацию о проблеме.

5. Права доступа и блокировка:
Основной журнал указывает на проблемы с set nonblocking. Убедитесь, что у вас достаточно прав для выполнения этой операции. Проверьте фаервол и настройки безопасности.

Практическое решение (Engagement и Trigger):

Пошаговое решение:

  1. Проверка журнала:
    Сначала изучите полный вывод Journalctl на предмет более ранних ошибок при запуске slapd, которые могут раскрыть дополнительные причины.

  2. Проверка сетевых параметров:

    • Убедитесь, что порт 389 доступен для входящего трафика.
    • Используйте netstat -tuln для проверки, прослушивает ли slapd открытые соединения.
  3. Анализ конфигурации:

    • Просмотрите файл slapd.conf или ldap.conf на предмет неверных конфигурационных параметров, таких как указание неверного протокола.
    • Пересоберите slapd, если нужно, с ключами для включения дополнительных проверок на этапе компиляции.
  4. Отладка:
    Временно запустите slapd с параметрами отладки, чтобы получить более подробную информацию о почтовых запросах и ответах.

  5. Тестирование с помощью командной строки:
    Используйте ldapsearch для тестирования подключения к серверу LDAP. Это поможет понять, проблема заключается в сервере или в клиенте.

Эмоциональное заключение:

Следуя вышеуказанным шагам, вы сможете диагностировать и устранить ошибку PROTOCOL_ERROR. Поддержание актуальности пакетов и тщательный анализ логов являются ключевыми этапами в успешной настройке комплексов на базе OpenLDAP.

Этот подробный подход должен способствовать устранению проблемы, что позволит вашему серверу LDAP работать надлежащим образом в вашей сетевой среде.

Оцените материал
Добавить комментарий

Капча загружается...