Я настроил pam-pgsql для поиска паролей в моей базе данных для Postfix через Saslauthd.
Я могу проверить учетные данные с помощью командной строки:
$ sudo testsaslauthd -u user@email.com -p password
0: NO "authentication failed"
Аутентификация не удалась, и я не знаю почему.
$ sudo tail /var/log/auth.log
Feb 5 15:33:12 saslauthd[7460]: pam_unix(imap:auth): check pass; user unknown
Feb 5 15:33:12 saslauthd[7460]: pam_unix(imap:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Feb 5 15:33:14 saslauthd[7460]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
Feb 5 15:33:14 saslauthd[7460]: do_auth : auth failure: [user=user@email.com] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]
Как я могу узнать, что делает pam-pgsql? Как я могу получить больше полезных сообщений?
Джон из прошлого! У меня есть ответ на все твои проблемы.
В вашем журнале есть подсказка:
saslauthd[8044]: pam_unix(imap:auth): check pass; user unknown
Помните, как вы помещали конфигурацию PAM в /etc/pam.d/smtp
и нет imap
? И в вашем журнале написано imap
? Ага, вы пытаетесь авторизоваться не на том сервисе.
Я действительно нашел решение в руководстве Postfix SASL, чуть ниже где вы нашли эту тестовую команду Sasl:
Тестирование аутентификации saslauthd
Укажите дополнительный "
-s smtp
"если saslauthd был настроен для связи со структурой аутентификации PAM
Ага, скоро вы обнаружите, что правильный вызов скорее:
$ sudo testsaslauthd -u user@email.com -p password -s smtp
0: OK "Success."
Я предполагаю, что вы настроили этот модуль через файл конфигурации /etc/pam_pgsql.conf, который принимает параметр отладки:
database = db
user = user
[...]
debug = 1
Также есть глобальный параметр отладки, который вы должны добавить в строки конфигурации pam:
auth required pam_pgsql.so debug
источник: [github] Официальное репо