Ошибка Postfix для office365: проблема с библиотекой TLS – неверный номер версии

Вопрос или проблема

Я пытаюсь перенастроить (в данный момент работающую) конфигурацию postfix на Debian 10, так как мы перешли на Office365 в качестве SMTP-сервера. Конфигурация почты postfix используется только для отправки писем, которые сервер генерирует сам (например, письма от logcheck и т. д.).

Единственное изменение, которое, как я думал, мне нужно было сделать, это изменить настройку relayhost
с: relayhost = some.mail.provider:465
на: relayhost = smtp.office365.com:587

Проблема:

Тем не менее, это не сработало. В /var/log/syslog я получаю

21 сен 15:03:30 pasteur postfix/smtp[16877]: SSL_connect error to smtp.office365.com[40.101.137.34]:587: -1
21 сен 15:03:30 pasteur postfix/smtp[16877]: warning: TLS library problem: error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:332:
21 сен 15:03:30 pasteur postfix/smtp[16877]: EC2809EF92: Cannot start TLS: handshake failure

Вопрос: Кто-нибудь знает решение?

Я экспериментировал с различными настройками postfix в /etc/postfix/main.cf, но это не сработало. Например, изменение smtp_tls_security_level = encrypt на ... = may приводит к появлению записей в syslog, таких как smtp_tls_wrappermode требует "smtp_tls_security_level = encrypt" (или более строгий)

Мои настройки postfix в /etc/postfix/main.cf следующие:

# Управляемый Ansible

smtpd_banner = $myhostname ESMTP $mail_name
biff = no

# добавление .domain - это задача MUA.
append_dot_mydomain = no

# Раскомментируйте следующую строку, чтобы создать предупреждения о "задержанных письмах"
#delay_warning_time = 4h

readme_directory = no

# Смотрите http://www.postfix.org/COMPATIBILITY_README.html
# по умолчанию 2 при свежих установках.
compatibility_level = 2

# Параметры TLS
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# Включить аутентификацию SASL
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:<someuser>:************
smtp_sasl_security_options = noanonymous
smtp_tls_wrappermode = yes
smtp_use_tls = yes
smtp_tls_security_level = encrypt

# Общие настройки
myhostname = pasteur.<ourdomain>.com
myorigin = /etc/mailname
mydestination = $myhostname localhost.$mydomain localhost pasteur
mynetworks = "127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128"
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
relayhost = smtp.office365.com:587

На данный момент я обошёл проблему, используя подход “прямой отправки”, описанный Microsoft по адресу
https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365

Это означает, что мне пришлось изменить настройку relayhost (URL и порт) и несколько настроек TLS

Слой шифрования отличается между портом 465 и 587:

  • Порт 465 ожидает связи по протоколу SSL
  • Порт 587 ожидает первоначальную связь в открытом тексте с командой STARTTLS в самом начале сессии

Я полагаю, что исправление заключается в изменении

smtp_tls_security_level = may

Ответ или решение

Ошибка Postfix с Office 365: Проблема с библиотекой TLS – неверный номер версии

Когда вы настраиваете Postfix для работы с Office 365 в качестве SMTP-сервера, может возникнуть ошибка, связанная с TLS, о которой идет речь. Данная проблема часто вызвана неправильной конфигурацией шифрования при попытке установить соединение через неправильный порт. В данном случае проблема заключается в использовании порта 587, который требует явного использования команды STARTTLS для старта TLS-соединения.

Анализ проблемы

Вы переключили relayhost на smtp.office365.com:587, так как этот порт используется для отправки электронной почты с использованием STARTTLS. Ошибка в логах:

SSL_connect error to smtp.office365.com[40.101.137.34]:587: -1
warning: TLS library problem: error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Cannot start TLS: handshake failure

это указывает на то, что Postfix не может правильно установить защищенное соединение, вероятно, из-за конфликта настроек TLS.

Решение проблемы

  1. Настройки TLS: Убедитесь, что ваши параметры конфигурации TLS корректны. Откройте файл конфигурации /etc/postfix/main.cf и проверьте следующие параметры:

    smtp_tls_security_level = encrypt
    smtp_tls_wrappermode = no
    smtp_use_tls = yes

    Обратите внимание, что smtp_tls_wrappermode должен быть установлен в no, так как вы используете STARTTLS для шифрования.

  2. Убедитесь, что smtp_sasl_auth_enable включен: Это необходимо для аутентификации при отправке электронной почты через Office 365:

    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = static:<someuser>:<password>
    smtp_sasl_security_options = noanonymous
  3. Удаление старых настроек для SSL: Если у вас были ранее настроены параметры для SSL на порту 465, убедитесь, что они удалены или корректно переопределены для работы с STARTTLS.

  4. Перезапустите Postfix: После внесения всех изменений перезапустите службу Postfix:

    sudo systemctl restart postfix
  5. Проверяйте журналы: После перезапуска следите за тем, чтобы увидеть, устранилась ли ошибка, проверяя /var/log/syslog или /var/log/mail.log.

Альтернативный подход

Если вышеуказанные шаги не устранит проблему, рассмотрите возможность отправки электронной почты без использования Relay, как вы упомянули в своем вопросе. Следование рекомендациям Microsoft по прямой отправке может также помочь избежать дополнительных телодвижений с установкой TLS.

Пройдите по документации Microsoft для получения более подробной информации о конфигурациях.

Заключение

Проблема "TLS library problem – wrong version number" в Postfix при попытке подключения к Office 365 может быть решена с помощью точной настройки параметров CLS и SASL, а также путем использования правильного порта и режима шифрования. Убедитесь, что все параметры соответствуют требованиям Office 365, и проделайте необходимые шаги по тестированию и отладке.

Оцените материал
Добавить комментарий

Капча загружается...