saslauthd и PAM: ошибка "Слишком много открытых файлов" - перезапуск saslauthd исправляет это - что не так?

У меня есть почтовый сервер Postfix под управлением Debian Squeeze. SASL-аутентификация для безопасного SMTP поддерживается saslauthd, который опирается на pam, который опирается на winbind.

Эта модель, кажется, повторяется каждые пару недель:

  1. Изначально в /var/log/auth.log ошибок нет - SMTP работает с постфиксом
  2. Ошибки появляются в журнале через неделю или более:

    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM не может получить доступ (/lib/security/pam_winbind.so): /lib/security/pam_winbind.so: не удается открыть файл общего объекта: слишком много открытых файлов 5 декабря 15: 45: 22 myhostname saslauthd [32586]: PAM добавляет неисправный модуль: /lib/security/pam_winbind.so
    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM не может открыть (/lib/security/pam_deny.so): /lib/security/pam_deny.so: не удается открыть общий объектный файл: слишком много открытых файлов
    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM добавляет неисправный модуль: /lib/security/pam_deny.so
    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM _pam_load_conf_file: невозможно открыть /etc/pam.d/common-auth
    5 декабря 15:45:22 myhostname saslauthd [32586]: ошибка загрузки PAM (пусто)
    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM _pam_init_handlers: ошибка чтения /etc/pam.d/other
    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM _pam_init_handlers: [Критическая ошибка - немедленная отмена]
    5 декабря 15:45:22 myhostname saslauthd [32586]: ошибка PAM при чтении файла конфигурации PAM
    5 декабря 15:45:22 myhostname saslauthd[32586]: PAM pam_start: не удалось инициализировать обработчики
    5 декабря 15:45:22 myhostname saslauthd [32586]: отладка: auth_pam: pam_start завершилась неудачей: критическая ошибка - немедленная отмена
    5 декабря 15:45:22 myhostname saslauthd[32586]: do_auth: ошибка авторизации: [user=dteed] [service=smtp] [realm=] [mech=pam] [причина = ошибка запуска PAM]
    5 декабря 15:45:32 myhostname saslauthd[32586]: сервер_вход: мастер вышел: 32586
    5 декабря 15:45:32 myhostname saslauthd[1696]: detach_tty: главный pid: 1696
    5 декабря 15:45:32 myhostname saslauthd[1696]: ipc_init: прослушивание сокета: /var/run/saslauthd/mux

В это время аутентификация всегда будет неудачной. Это может быть проверено в тестах. Простой перезапуск saslauthd исправляет проблему еще на неделю или две.

Я искал ошибку на слишком многих открытых файлах, и нет ничего твердого в том, что это указывает. Некоторые из модулей pam, которые он не может открыть, не имеют никакого отношения к работе saslauthd, которая выполняет простую аутентификацию SASL через winbind.

Вот /etc/pam.d/smtp:

account     required    pam_permit.so
auth        sufficient    pam_winbind.so debug
auth        required      pam_deny.so

Я не хочу запускать saslauthd в методе отладки (на переднем плане). Я не думаю, что мне нужно больше процессов saslauthd - у меня запущено 5, и этого было достаточно на предыдущем сервере с более низкой мощностью. Безопасный SMTP - это опция, которая не очень широко используется нашими пользователями, но, вероятно, каждые пару минут используется одно соединение.

1 ответ

Решение

Похоже, что это сообщаемая ошибка в winbind самбы, хотя saslauthd жаловался. Вот отчет об ошибке:

https://bugzilla.samba.org/show_bug.cgi?id=7265

Обходной путь, пока это не будет выпущено, состоит в том, чтобы перезапускать winbind и saslauthd каждые несколько дней (в cron).

Другие вопросы по тегам