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

Почтовый сервер: После обновления Postfix перестала работать отправка через SMTP AUTH

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

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

После обновления Postfix почтовая программа подключается к SMTP, но не может войти: сервер не предлагает AUTH после STARTTLS либо отвечает 535/454. Рассматриваем сервер Postfix с Dovecot SASL или Cyrus SASL, а не пароль исходящего шлюза, когда Postfix работает SMTP-клиентом.

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

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

После обновления Postfix почтовая программа подключается к SMTP, но не может войти: сервер не предлагает AUTH после STARTTLS либо отвечает 535/454. Рассматриваем сервер Postfix с Dovecot SASL или Cyrus SASL, а не пароль исходящего шлюза, когда Postfix работает SMTP-клиентом.

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

Возможная причинаКак узнатьЧто делать
Переопределение настроек submissionВ master.cf у службы submission свои параметры -o, отличные от main.cf.AUTH есть на 25, но отсутствует на 587 или наоборотПроверьте эффективную настройку каждой службы.
Недоступен сокет DovecotВзаимодействие Postfix с выбранной реализацией SASL разорвано.В журнале Postfix упомянут private/auth или cannot connect to saslauthdПроверьте сокет, пользователей и каталоги без ослабления прав.
Отличается политика TLSПри smtpd_tls_auth_only=yes это нормальная защита учётных данных.AUTH не показывается до STARTTLSПроверяйте возможности после установки шифрования.

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

  1. 1. Определите точный ответ почтовой программыОткройте настройки исходящей почты клиента, запишите сервер, порт, тип шифрования и время неудачной попытки. Ошибка 535 означает отказ в учётных данных, 454 может указывать на временный сбой аутентификации. Проверьте, что вход в IMAP тем же паролем работает, но не считайте это доказательством исправности SMTP AUTH.
  1. 2. Убедитесь, что используется submission, а не входящий SMTPНа Linux-сервере выполните чтение списка слушающих портов. Ожидайте 587/tcp, если этот порт включён для почтовых клиентов; порт 25 предназначен прежде всего для передачи между серверами. Если 587 отсутствует, посмотрите службу submission в master.cf.
  2. Linux, чтение сокетов; вывод показывает слушающий процесс
    Linux · Терминал (Bash)КомандаНужен sudo
    Linux, чтение сокетов; вывод показывает слушающий процесс. Отсутствие 465 нормально, если SMTPS не используется.
    sudo ss -ltnp | grep -E ":(25|587|465)\b"
  1. 3. Проверьте эффективную конфигурацию PostfixВ терминале выведите отличающиеся от умолчаний параметры и отдельно переопределения master.cf. Найдите smtpd_sasl_type, smtpd_sasl_path, smtpd_tls_auth_only и smtpd_sasl_auth_enable. После обновления именно служба submission могла сменить способ запуска.
  2. Postfix с правами чтения конфигурации; посторонние секреты в выводе скрывайте
    Linux · Терминал (Bash)КомандаНужен sudo
    Postfix с правами чтения конфигурации; посторонние секреты в выводе скрывайте.
    sudo postconf -n && sudo postconf -P | grep -E "submission|smtps"
  1. 4. Проверьте наличие поддержки выбранного SASLВыполните postconf -a: для интеграции с Dovecot в списке должно присутствовать dovecot. Не переключайте на cyrus вслепую: это другой источник учётных данных. Если поддержка отсутствует после смены пакета, установите соответствующий пакет вашей системы из доверенного репозитория по руководству дистрибутива.
    Linux · Терминал (Bash)Команда
    Linux, Postfix; только чтение. Вывод — список серверных механизмов SASL, не статус авторизации.
    postconf -a
  1. 5. Сверьте путь сокета Dovecot и праваДля распространённой связки Dovecot/Postfix ожидается private/auth относительно каталога очереди Postfix, часто /var/spool/postfix/private/auth. Проверьте определение unix_listener в Dovecot и реальное существование сокета. Не ставьте всем пользователям режим 777 и не удаляйте сокет вручную.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)КомандаНужен sudo
    Linux, путь только пример стандартной интеграции; отсутствие файла требует сверки с фактическим smtpd_sasl_path.
    sudo ls -l /var/spool/postfix/private/auth
  1. 6. Прочитайте сообщения Postfix и Dovecot за время отказаВ журнале systemd выполните чтение последних событий почтовых служб; если сервисы пишут в /var/log/mail.log, откройте соответствующий файл. Разделите неверный пароль, отсутствие механизма SASL, ошибку сокета и отказ по политике отправителя. Не выкладывайте чужие адреса и идентификаторы сообщений.
  2. systemd, только чтение
    Linux · Терминал (Bash)КомандаНужен sudo
    systemd, только чтение. На дистрибутивах может использоваться иной журнал/название unit.
    sudo journalctl -u postfix -u dovecot --since "30 minutes ago" --no-pager
  1. 7. Проверьте AUTH только внутри защищённого сеансаНа рабочем компьютере с OpenSSL откройте STARTTLS-подключение к 587 и посмотрите расширения EHLO после защищённого рукопожатия. Наличие 250-AUTH указывает, что вход предложен; оно не гарантирует верный пароль. Не тестируйте PLAIN/LOGIN в незашифрованном сеансе.
    Linux · Терминал (Bash)Команда
    Замените домен. Терминал, без администратора; проверьте имя сертификата и наличие ошибок проверки цепочки.
    openssl s_client -starttls smtp -connect mail.example.com:587 -servername mail.example.com -crlf </dev/null
  1. 8. Внесите точечную правку и испытайте отправкуСделайте резервные копии main.cf и master.cf, исправьте только неверный параметр SASL или путь сокета; при необходимости приведите unix_listener Dovecot к документированной схеме с доступом группы postfix. Выполните postfix check, затем штатную перезагрузку сервиса и отправьте одно тестовое письмо на свой адрес. Не снимайте требование TLS ради появления AUTH.
    Linux · Терминал (Bash)КомандаНужен sudo
    Linux, Postfix; синтаксическая и структурная проверка без отправки писем.
    sudo postfix check

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

После STARTTLS на 587 доступно AUTH, авторизованный пользователь отправляет одно тестовое письмо, а в логах нет предупреждений о сокете. Отдельно убедитесь, что неавторизованный клиент по-прежнему не может пересылать почту на чужие домены.

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

Если ошибка 535 осталась, проверьте саму запись пользователя и пароль в выбранном источнике SASL, дополнительные механизмы входа и разрешённые адреса отправителя. Если 454 или connection refused — вернитесь к журналам и доступности сокета, откатите последнюю правку при ухудшении.

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

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

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