У меня есть почтовый сервер Postfix, на котором запущен Debian Squeeze. SASL-аутентификация для безопасного SMTP поддерживается saslauthd, который полагается на pam, который полагается на winbind.
Эта закономерность, кажется, повторяется каждые пару недель:
Ошибки появляются в журнале через неделю и более:
5 декабря 15:45:22 myhostname saslauthd [32586]: PAM не может выполнить dlopen (/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 не может выполнить dlopen (/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]: DEBUG: auth_pam: pam_start failed: Критическая ошибка - немедленное прерывание
5 декабря 15:45:22 myhostname saslauthd [32586]: do_auth: ошибка аутентификации: [user = dteed] [service = smtp] [realm =] [mech = pam] [причина = ошибка запуска PAM]
5 декабря 15:45:32 myhostname saslauthd [32586]: server_exit: мастер завершил работу: 32586
5 декабря 15:45:32 myhostname saslauthd [1696]: detach_tty: master pid: 1696
5 декабря 15:45:32 myhostname saslauthd [1696]: ipc_init: прослушивание сокета: / var / run / saslauthd / mux
В это время аутентификация всегда будет неудачной. Это можно проверить в testsaslauthd. Простой перезапуск 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 - это вариант, который не так широко используется нашими пользователями, но, вероятно, его использует одно соединение каждые пару минут.
Похоже, это ошибка, о которой сообщают в winbind самбы, хотя пожаловался saslauthd. Вот отчет об ошибке:
https://bugzilla.samba.org/show_bug.cgi?id=7265
Обходной путь, пока он не будет выпущен, - перезапускать winbind и saslauthd каждые несколько дней (в cron).