Назад | Перейти на главную страницу

Что делать с ошибкой LDAP при использовании для PAM / NSS?

Я использую резервную пару серверов OpenLDAP для аутентификации PAM и служб каталогов через NSS. Пока что он на 100% надежен, но ничто не работает безупречно вечно.

Какие шаги я должен предпринять сейчас, чтобы у меня был шанс восстановиться после сбоя сервера (ов) LDAP? В моем неофициальном тестировании оказалось, что даже уже аутентифицированные оболочки в значительной степени бесполезны, поскольку все поиски имени пользователя / uid зависают, пока сервер каталогов не вернется.

Пока что я придумал только две вещи:

  1. Не используйте NSS-LDAP и PAM-LDAP на самих серверах LDAP.
  2. Создайте учетную запись корневого уровня на всех ящиках, которая принимает только аутентификацию с открытым ключом из нашей локальной подсети, и хорошо защитите этот ключ. Я не уверен, насколько это принесет мне пользу, так как после входа в систему я подозреваю, что ничего не смогу выполнить, поскольку все поиски идентификаторов пользователей будут зависать.

Есть другие предложения?

Правило №1 сетевой аутентификации: Всегда имейте доступную локальную учетную запись.

За пределами правила №1 (и для того, чтобы сделать его полезным, не блокируя nss_ldap, пытаясь связаться с мертвым сервером):

Используя pam_ldap / nss_ldap, вы можете установить bind_policy на «мягкий» (немедленно возвращаться при сбое сервера), что устраняет проблему блокировки. Вы также можете установить timelimit значения для возврата nss_ldap, если он не может связаться с сервером LDAP. Обратите внимание, что это имеет и другие последствия (например, мягкий сбой во время SSHing in сделает вашу учетную запись LDAP недоступной, а спорадические сбои приведут к неизвестным именам пользователей для некоторых UID LDAP.

Также есть несколько недокументированных параметров nss_ldap: nss_reconnect_tries, nss_reconnect_sleeptime, nss_reconnect_maxsleeptime, & nss_reconnect_maxconntries, которые делают то, что подразумевают их имена, и помогут вам обойти сбои вашего LDAP-сервера. без установка вашего bind_policy на soft (это то, что я делаю - 3 попытки повторного подключения с максимальным временем ожидания 10 секунд = максимальная задержка 30 секунд ожидания для сервера LDAP).