Почтовые серверы Linux / почтовый сервер

Почтовый сервер: После обновления Dovecot перестала работать аутентификация IMAP

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

После обновления Dovecot пользователи не могут войти по IMAP, хотя сервер отвечает на TCP 993. Не меняйте пароли всех пользователей сразу: нужно отличить конфликт синтаксиса версии, источник passdb/userdb, TLS и ограничения на конкретные аккаунты.

В этой статье
  1. Симптомы и область применимости
  2. Причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как убедиться, что проблема устранена
  5. Если проблема осталась

#Симптомы и область применимости

После обновления Dovecot пользователи не могут войти по IMAP, хотя сервер отвечает на TCP 993. Не меняйте пароли всех пользователей сразу: нужно отличить конфликт синтаксиса версии, источник passdb/userdb, TLS и ограничения на конкретные аккаунты.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Изменились параметры конфигурацииНовая версия не применяет прежнюю схему настройки в полном объёме.После обновления doveconf сообщает об устаревших или неизвестных ключахИспользуйте документацию установленной ветки.
Не работает источник учётных данныхБаза SQL/LDAP/PAM, путь сокета или права доступа отличаются от прежних.В журналах auth failed или user unknownПроверьте passdb и userdb по отдельности.
Проблема до проверки пароляСбой соединения не связан с правильностью логина.Клиент получает ошибку TLS/сертификатаСначала проверьте TLS и протокол.

#Пошаговая диагностика и исправление

  1. 1. Запишите версии и масштаб ошибкиСделайте снимок состояния перед дальнейшими действиями: когда обновили Dovecot, какие версии пакетов установлены и какие клиенты затронуты. Отдельно проверьте тестового пользователя, не затрагивая рабочие пароли других людей.
  1. 2. Проверьте состояние службы и конфигурацииНа сервере Linux посмотрите состояние Dovecot и разбор его конфигурации. Команда doveconf -n отображает отличающиеся от умолчаний значения; некоторые настройки могут содержать технические секреты, поэтому не публикуйте весь вывод.
    Linux · Терминал (Bash)КомандаНужен sudo
    Dovecot, чтение. Синтаксис настроек Dovecot 2.3 и 2.4 различается: сверяйте документацию вашей версии.
    sudo doveconf -n
  1. 3. Найдите первую ошибку в журнале после обновленияОткройте journalctl по службе dovecot с момента обновления. Ищите unknown setting, auth-worker, passdb lookup, TLS failure и permission denied; остановитесь на первопричине, а не на последующем отказе клиента.
    Linux · Терминал (Bash)КомандаНужен sudo
    systemd, только чтение; путь журнала может отличаться.
    sudo journalctl -u dovecot --since "1 hour ago" --no-pager
  1. 4. Проверяйте сеть отдельно от учётных данныхС внешнего клиента с OpenSSL установите TLS на 993 и убедитесь, что сертификат действителен для нужного имени. Если соединение не устанавливается, исправляйте сеть или TLS до работы с паролями. Не выключайте проверку сертификата в программе.
    Linux · Терминал (Bash)Команда
    Терминал с OpenSSL, замените домен. Сертификат и TLS проверяются без передачи пароля.
    openssl s_client -connect mail.example.com:993 -servername mail.example.com -verify_return_error </dev/null
  1. 5. Сверьте фактический способ авторизацииЧерез конфигурацию установленной версии найдите passdb, userdb, механизмы и внешний источник пользователей. При SQL/LDAP проверьте доступность сервиса и ошибки запросов на одном тестовом пользователе. Не включайте запись паролей в журнал для постоянной диагностики.
  1. 6. Проверьте одного пользователя административным средствомНа Dovecot команда auth test позволяет проверить passdb отдельно от клиента; пароль при передаче аргументом может попасть в список процессов и историю. Лучше вызвать без пароля, если версия позволяет интерактивный ввод, либо использовать отдельного тестового пользователя и безопасную локальную процедуру.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)КомандаНужен sudo
    Dovecot; в некоторых версиях запросит пароль; не включайте реальные секреты в историю команд.
    sudo doveadm auth test user@example.com
  1. 7. Проверьте поиск учётной записи и путь ящикаС помощью doveadm user выясните, может ли userdb вернуть параметры для данного адреса. Успешный пароль при неверном mail_home/mail_location также может не дать нормальной IMAP-сессии. При изменении пути проверьте реальное расположение данных и резервную копию.
    Linux · Терминал (Bash)КомандаНужен sudo
    Только проверка userdb; замените адрес и ограничьте доступ к выводу.
    sudo doveadm user user@example.com
  1. 8. Верните совместимые настройки и испытайте входПо документации именно установленной ветки Dovecot исправьте устаревшие параметры в копии файла, проверьте doveconf, примените штатную перезагрузку сервиса в короткое окно и испытайте одну запись. Если после правки стало хуже, восстановите сохранённый файл без массового сброса паролей.

#Как убедиться, что проблема устранена

IMAP по TLS доступен, вход тестового пользователя проходит, папки открываются и новые письма приходят. В журнале исчезли ошибки passdb/userdb и не появились новые предупреждения о несовместимой настройке.

#Если проблема осталась

Если один пользователь не входит, исследуйте его passdb-запись, блокировку и формат имени; если все — состояние источника учётных данных и версию Dovecot. При крупном обновлении применяйте официальную процедуру миграции вместо копирования старого файла целиком.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.