Задачи по обслуживанию OpenLDAP

Расположение файла журнала

Файлы журналов OpenLDAP находятся в каталоге /opt/apigee/var/log. Эти файлы можно периодически архивировать и удалять, чтобы они не занимали слишком много места на диске. Информацию о ведении, архивировании и удалении журналов OpenLDAP можно найти в разделе 19.2 руководства по OpenLDAP на странице http://www.openldap.org/doc/admin24/maintenance.html.

Как задать пароль пользователя вручную

Пользователи могут запросить новый пароль в интерфейсе Edge. Пользователь получит электронное письмо с информацией о том, как задать пароль. Однако если SMTP-сервер не работает или пользователь по какой-либо причине не может получить электронное письмо, вы можете вручную задать пароль пользователя с помощью команд OpenLDAP.

Чтобы задать пароль пользователя:

  1. Используйте ldapsearch, чтобы скачать информацию о пользователях:
    ldapsearch -w ldapAdminPWord -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389 > ldap.txt
  2. Найдите в файле ldap.txt адрес электронной почты пользователя. Вы увидите блок в форме:
    dn: uid=29383a67-9279-4aa8-a75b-cfbf901578fc,ou=users,ou=global,dc=apigee,dc=com
    mail: foo@bar.com
    userPassword:: e1NTSEF9a01UUDdSd01BYXRuUURXdXN5OWNPRzBEWWlYZFBRTm14MHlNVWc9PQ==
    uid: 29383a67-9279-4aa8-a75b-cfbf901578fc
  3. Используйте ldappasswd, чтобы задать пароль пользователя на основе его UID:
    ldappasswd -h LDAP_IP -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s newPassWord \
      "uid=29383a67-9279-4aa8-a75b-cfbf901578fc,ou=users,ou=global,dc=apigee,dc=com"

    Вам будет предложено ввести пароль администратора OpenLDAP.

Теперь пользователь может войти в систему, используя newPassWord.

Как вручную задать системный пароль OpenLDAP

В статье Как сбросить пароли Edge описывается, как изменить системный пароль OpenLDAP, но для этого необходимо знать существующий пароль. Если вы забыли пароль, его можно сбросить, выполнив описанные ниже действия.

  1. Чтобы создать зашифрованный пароль SSHA для нового пароля, используйте slappasswd:
    slappasswd -h {SSHA} -s newPassWord

    Эта команда возвращает строку в следующем формате:

    {SSHA}+DOup9d6l+czfWzkIvajwYPArjPurhS6
  2. Откройте файл /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif в редакторе.
    vi /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  3. Найдите в форме следующую строку:
    olcRootPW:: OldPasswordString
  4. Замените OldPasswordString строкой, возвращенной из slappasswd. Если после olcRootPw указано два двоеточия, удалите одно из них и убедитесь, что после двоеточия есть пробел:
    olcRootPW: {SSHA}RGon+bLCe+Sk+HyHholFBj8ONQfabrhw
  5. Перезапустите OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap restart
  6. Проверьте, работает ли новый пароль, с помощью ldapsearch:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389

    Вам будет предложено ввести пароль администратора OpenLDAP.

  7. Повторите эти действия на всех остальных серверах OpenLDAP, которые используются для репликации.
  8. Обновите сервер управления, чтобы использовать новый пароль:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_ldap_credentials -p newPassWord

Как вручную задать пароль администратора Edge

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

  1. На узле пользовательского интерфейса остановите пользовательский интерфейс Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui stop
  2. Используйте ldappasswd, чтобы задать пароль системного администратора Edge:
    ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s newPassWord \
      "uid=admin,ou=users,ou=global,dc=apigee,dc=com"

    Вам будет предложено ввести пароль администратора OpenLDAP.

  3. Обновите файл конфигурации, который вы использовали для установки Edge UI, указав новый системный пароль Edge:
    APIGEE_ADMINPW=newPassWord
  4. Настройте и перезапустите Edge UI:
    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
  5. (Только если TLS включен в интерфейсе Edge) Снова включите TLS в интерфейсе Edge, как описано в разделе Настройка TLS для интерфейса управления.

Удалите файл блокировки SLAPD

Если при попытке запустить OpenLDAP вы получаете сообщение о том, что файл блокировки slapd.pid существует, вы можете удалить этот файл.

Он находится в каталоге /opt/apigee/apigee-openldap/var/run/slapd.pid. Удалите файл и попробуйте перезапустить OpenLDAP:

/opt/apigee/apigee-service/bin/apigee-service apigee-openldap restart

Если OpenLDAP не запускается, попробуйте запустить его в режиме отладки и проверьте наличие ошибок:

slapd -h ldap://:10389/ -u apigee -d 255 -F /opt/apigee/data/apigee-openldap/slapd.d

Ошибки могут указывать на проблемы с ресурсами, памятью или использованием ЦП.

Изменение репликации OpenLDAP

В этом разделе объясняется, как изменить репликацию OpenLDAP.

Выполните описанные ниже действия на узле репликатора OpenLDAP, который реплицирует свои данные на другой узел OpenLDAP. Например, если вы настраиваете репликацию с узла 1 на узел 2, выполните команды на узле 1.

  1. Проверьте текущее состояние:
    ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {PASSWORD} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

    Выходные данные должны быть похожи на эти:

    olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={PASSWORD} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
  2. Создайте файл repl.lidf и вставьте в него следующие команды:
    dn: olcDatabase={2}bdb,cn=config
    changetype: modify
    replace: olcSyncRepl
        olcSyncRepl: rid=001
        provider=ldap://{NEW_HOST}:{PORT}/
        binddn="cn=manager,dc=apigee,dc=com"
        bindmethod=simple
        credentials={PASSWORD}
        searchbase="dc=apigee,dc=com"
        attrs="*,+"
        type=refreshAndPersist
        retry="60 1 300 12 7200 +"
        timeout=1

    Замените значения следующих плейсхолдеров:

    • {NEW_HOST} – новый хост OpenLDAP, на который вы планируете выполнить репликацию.
    • {PORT} – порт OpenLDAP. Порт по умолчанию – 10389.
    • {PASSWORD} – пароль OpenLDAP.
  3. Выполните команду ldapmodify:
    ldapmodify -x -w {PASSWORD} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f repl.ldif
        

    The output should be similar to the following:

    modifying entry "olcDatabase={2}bdb,cn=config"
  4. Проверьте репликацию:
    ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {PASSWORD} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

    Выходные данные должны быть похожи на эти:

    olcSyncrepl: {0}rid=001 provider=ldap://{NEW_HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={PASSWORD} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1

    Чтобы убедиться, что репликация работает правильно, прочитайте и сравните значение contextCSN на каждом сервере. Они должны совпадать.

    ldapsearch -w {PASSWORD} -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 contextCSN | grep contextCSN

Устранение неполадок с репликацией OpenLDAP

Если вы используете несколько серверов OpenLDAP, проверьте настройки репликации, чтобы убедиться, что серверы работают правильно.

  1. Убедитесь, что ldapsearch возвращает данные с каждого сервера OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389

    Вам будет предложено ввести пароль администратора OpenLDAP.

  2. Проверьте конфигурацию репликации в файле /opt/apigee/conf/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif.
  3. Убедитесь, что на каждом сервере OpenLDAP используется один и тот же системный пароль.
  4. Проверьте настройки iptables и tcp wrapper.