Я настроилПостфиксиспользоватьГолубятня SASLсПАМи пользователи Unix, а также Dovecot LDA (LMTP) для локального хранения почтовых ящиков. После некоторого тестирования выяснилось, что входящая почта отклоняется по следующей причине:
Ошибка: поиск passdb не удался для [пользователь]: настроенные passdb не поддерживают поиск учетных данных
Это и хлопотно, и тревожно - я выбрал аутентификацию на основе PAM, потому что все источники, которые я нашел, предполагали, что это самый простой и надежный способ. Мне сложно определить, что не так в данный момент - я не уверен, действительно ли это проблема с PAM или что-то не так с моей конфигурацией.
Журналы
Тест doveadm
поиска:
$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups
Журнал отладки Dovecot после проверки поиска:
$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS 1 [user] service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL 1 reason=Configured passdbs don't support credentials lookups
Соответствующая конфигурация
Файл /etc/dovecot/conf.d/10-auth.conf
:
auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext
Файл /etc/dovecot/conf.d/auth-system.conf.ext
:
passdb {
driver = pam
args = session=yes failure_show_msg=yes dovecot
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/vmail/%n
}
Это файл /etc/pam.d/dovecot
по умолчанию, который поставляется с пакетом Dovecot для Rocky Linux (который эквивалентен RHEL и аналогичен Fedora):
#%PAM-1.0
auth required pam_nologin.so
auth include password-auth
account include password-auth
session include password-auth
Однако я также попробовал конфигурацию, предложенную официальным сайтом.Документация Dovecot PAMи это не дало никаких других результатов. Я уверен в остальной части своей конфигурации, так как потратил немало времени на изучение опций, но я все еще едва понимаю конфигурацию PAM...
Все логи указывают на то, что проблема связана с самим Dovecot SASL, а не с конфигурацией Postfix или Dovecot. Любые предложения будут высоко оценены.
решение1
Я понятия не имею, является ли это правильным решением проблемы (сейчас возвращаюсь и читаюкомментарий anxв моем первоначальном посте заставляет меня задуматься, так ли это), но мне удалось заставить работать и поиск, и аутентификацию, добавив вторую passdb
запись в конфигурацию Dovecot.
В конфигурации Dovecot я предшествовалБаза данных паролей PAMзапись спарольбаза данных паролейвход:
# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
# Passwd can be used both as a passdb and a userdb
driver = passwd
}
passdb {
driver = pam
args = dovecot
}
Это делает поиск пользователя doveadm auth lookup [user]
успешным. Однако,парольбаза данных не можетаутентифицироватьпользователей, поскольку пароли больше не хранятся в /etc/passwd
файле в системах Unix. Когда это происходит, поиск продолжается с базой данных паролей PAM, которая корректно аутентифицирует пользователя. Это можно проверить с помощью команды doveadm auth test [user]
.
Я добавил это как принятый ответ, потому что решение/обходной путь в настоящее время работает для меня. Если у кого-то есть какие-либо предложения или вы знаете, как это можно решить лучше, я с радостью приму их вместо этого. Поскольку только база данных PAM является конфигурацией по умолчанию наРокки Линукс(фактически RHEL), меня удивляет, что он не работает «из коробки».