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