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

Отладка ошибки аутентификации Postfix Saslauthd PAM-PGsql

Я настроил 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] Официальное репо