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

Переход на новый сервер Dovecot; Dovecot не может пройти аутентификацию с использованием старой базы данных паролей

Я переношу интрасеть своей компании с сервера 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 более разборчива, чем старая.