Я переношу интрасеть своей компании с сервера OS X на сервер Ubuntu 12.04. Мы используем плоский файл для хранения хешей имен пользователей и паролей. Этот файл используется Apache и Dovecot для аутентификации пользователей. На сервере Ubuntu работает Dovecot 2.0, а на сервере OS X - Dovecot 1.2.
Я уже перенес WebDav, который использует Apache для аутентификации. Аутентификация работает. Я занимаюсь переносом нашего сервера Prosody, который использует Dovecot для аутентификации. Dovecot запущен и работает, но когда я тестирую аутентификацию с помощью telnet a login username password
или doveadm sudo doveadm auth username
, Я получил dovecot: auth: passwd-file(username): unknown user
dovecot: auth: Debug: client out: FAIL#0111#011user=username
в моем файле журнала.
я могу использовать sudo dovecot user username
для выполнения поиска пользователя, и он вернет информацию о пользователе. Я могу сгенерировать хеш пароля локально, и Dovecot без проблем аутентифицирует тестовый пароль.
Изменить: схема установлена на CRYPT, который всегда используется по умолчанию.
Отредактируйте второй: вот что у меня в auth-passwdfile.conf.ext:
# Authentication for passwd-file users. Included from auth.conf.
#
# passwd-like file with specified location.
# <doc/wiki/AuthDatabase.PasswdFile.txt>
passdb {
driver = passwd-file
args = scheme=CRYPT username_format=%u /srv/auth/passwd/passwd.intranet
}
userdb {
driver = passwd-file
args = username_format=%u /srv/auth/passwd/passwd.intranet
}
Как выглядит файл паролей:
username:userpasswordhash:
Dovecot поддерживает несколько схем шифрования паролей. Некоторые требуют обмена текстовыми паролями. Dovecot 2.0 добавляет к паролям префиксы такой схемы, как {SSHA256}
. Вы можете указать схему по умолчанию при указании файла.
Я обнаружил, что мне нужно указать auth_username_format при обновлении. Могут помочь следующие конфигурации.
auth_username_format=%n
mechanisms = plain login
# passwd-like file with specified location
passdb passwd-file {
args = scheme=plain-md5 /etc/dovecot/passwd.md5
}
Моя проблема заключалась в форматировании файла паролей. это было username:passwordhash:username@domain.com
где это должно было быть username:passwordhash::::::username@domain.com
. Дополнительные двоеточия разграничивают пустые поля, которые Dovecot ожидает там. Думаю, новая версия Dovecot более разборчива, чем старая.