Рейтинг:1

Postfix отклоняет электронные письма, ретранслируемые из O365

флаг vn

Мне нужно выполнить миграцию Office 365 с Postfix с помощью Sogo. Моя цель — настроить небольшой гибрид Office 365 с Postfix, примерно так же, как вы это делаете с локальным Exchange.

В настоящее время postfix является основным сервером с 1000 пользователями, и он отправляет и получает все электронные письма за определенное время. домен.xyz. Я настроил Office 365 и добавил к нему тот же домен. Я создал на нем 2 почтовых ящика и настроил Exchange Online, домен.xyz установлен как домен InternalRelay.

Exchange online пока имеет 2 аккаунта

  • пользовательA@домен.xyz
  • пользовательB@домен.xyz

Exchange настроен так, что если кто-то на Exchange отправляет электронное письмо на domain.xyz, а почтовый ящик находится на Exchange, электронное письмо должно оставаться на Exchange, но если Exchange не может найти почтовый ящик для domain.xyz, он должен использовать Исходящий коннектор который я настроил для пересылки электронной почты на постфикс. Это означает, что любое электронное письмо, отправленное пользователем A пользователю B, работает нормально, но в тот момент, когда пользователь A отправляет электронное письмо пользователю C, которое находится на постфиксе, оно блокируется.

Сообщенная ошибка: 554 5.7.1 userC@domain.xyz: адрес получателя отклонен: отказ от политики не вошел в систему

Насколько я понимаю, Postfix считает, что это единственный сервер, которому принадлежит домен domain.xyz, и он обрабатывает любое электронное письмо от domain.xyz как некий пользователь/службу, пытающуюся отправить электронное письмо без авторизации, и это отрицает. Это доказывается, когда мы создаем совершенно случайное электронное письмо в Office 365, у которого нет соответствующей учетной записи в постфиксе, и при попытке отправить электронное письмо с test.user123456@domain.xyz на UserC@domain.xyz мы получаем

Удаленный сервер вернул «550 5.1.0 test.user123456@domain.xyz: адрес отправителя отклонен: пользователь неизвестен в таблице виртуальных почтовых ящиков»

Как заставить postfix (SoGo) начать доверять Office 365 (диапазон IP-адресов) и позволить ему получать электронную почту из домена, который, по его мнению, принадлежит ему, и для учетных записей, которые у него есть.На последнем этапе миграции postfix в Office 365 каждая учетная запись в postfix будет иметь идентичную учетную запись в O365, и мы будем использовать перенаправление электронной почты по одному почтовому ящику за раз на адрес onmicrosoft.com, чтобы пользователи могли использовать O365, не беспокоясь о их постфиксная учетная запись. Но для этого трафик между O365 и postfix должен работать.

Я предполагаю, что это проблема не только сосуществования Office 365, но и любая служба, такая как SendGrid или аналогичная, которую кто-то будет использовать, будет иметь идентичную проблему.

Последнее - у меня нет доступа к postfix/sogo. У меня только "своя" сторона о365. Я пытаюсь внести свой вклад в команду Linux/Postfix, чтобы исправить это.

Потенциально релевантные биты конфигурации, которые я получил от команды, но я сам понятия не имею, правильно ли это.

# ограничение HELO
smtpd_helo_required = да
smtpd_helo_restrictions =
    Permit_mynetworks
    Permit_sasl_authenticated
    reject_non_fqdn_helo_hostname
    reject_invalid_helo_hostname
    check_helo_access pcre:/etc/postfix/helo_access.pcre

# Ограничения отправителя
smtpd_sender_restrictions =
    reject_unknown_sender_domain,
    reject_non_fqdn_sender,
    reject_unlisted_sender,
    разрешение_mynetworks,
    разрешение_sasl_аутентифицированный,
    check_sender_access pcre:/etc/postfix/sender_access.pcre
    #reject_sender_login_mismatch

# Ограничения получателя
smtpd_recipient_restrictions =
    reject_unknown_recipient_domain,
    reject_non_fqdn_recipient,
    reject_unlisted_recipient,
    check_policy_service инет: 127.0.0.1: 7777,
    разрешение_mynetworks,
    разрешение_sasl_аутентифицированный,
    #reject_unauth_destination

# Ограничения данных
smtpd_data_restrictions = reject_unauth_pipelining

# Адреса O365
мои сети = 127.0.0.0/8, 40.92.0.0/15, 40.107.0.0/16, 52.100.0.0/14, 104.47.0.0/17

#
# Поиск учетных записей виртуальной почты
#
транспорт_карты =
    #regexp:/etc/postfix/transport_regexp
    прокси:ldap:/etc/postfix/ldap/transport_maps_user.cf
    прокси:ldap:/etc/postfix/ldap/transport_maps_domain.cf

отправитель_зависимый_релейхост_карты =
    прокси:ldap:/etc/postfix/ldap/sender_dependent_relayhost_maps_user.cf
    прокси:ldap:/etc/postfix/ldap/sender_dependent_relayhost_maps_domain.cf

# Таблица поиска с именами входа SASL, которым принадлежат адреса отправителя (MAIL FROM).
smtpd_sender_login_maps =
    прокси:ldap:/etc/postfix/ldap/sender_login_maps.cf

виртуальный_почтовый_домен =
    прокси:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf

реле_домены =
    $мой пункт назначения
    прокси:ldap:/etc/postfix/ldap/relay_domains.cf

виртуальный_почтовый ящик_карты =
    прокси:ldap:/etc/postfix/ldap/virtual_mailbox_maps.cf

виртуальный_алиас_карты =
    #regexp:/etc/postfix/transport_regexp
    прокси:ldap:/etc/postfix/ldap/virtual_alias_maps.cf
    прокси:ldap:/etc/postfix/ldap/virtual_group_maps.cf
    прокси:ldap:/etc/postfix/ldap/virtual_group_members_maps.cf
    прокси:ldap:/etc/postfix/ldap/catchall_maps.cf
    прокси:ldap:/etc/postfix/ldap/sender_login_maps.cf
    
отправитель_bcc_maps =
    прокси:ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf
    прокси:ldap:/etc/postfix/ldap/sender_bcc_maps_domain.cf

получатель_bcc_maps =
    прокси:ldap:/etc/postfix/ldap/recipient_bcc_maps_user.cf
    прокси:ldap:/etc/postfix/ldap/recipient_bcc_maps_domain.cf

В master.cf

smtps inet n - n - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=да
  -o smtpd_sasl_auth_enable=да
  -o smtpd_reject_unlisted_recipient=нет
  -o smtpd_client_restrictions=permit_sasl_authenticated,отклонить
# -o smtpd_client_restrictions=permit_sasl_authenticated,permit_mynetworks
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated, отклонить
# -o milter_macro_daemon_name=ИСХОДЯЩИЙ

Любые идеи будут приветствоваться.

Ivan_Wang avatar
флаг us
Какой сервер генерирует два сообщения о недоставке (недоставленных)? Для общего кода отчета о недоставке (например, 5.1.1) в офисе 365: https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/non-delivery-reports-in-exchange-online /non-delivery-reports-in-exchange-online#find-my-ndr-code-and-get-help-delivering-my-email (извините за это, я не знаком с постфиксом, возможно, следующее может помощь: https://aventistech.com/configure-postfix-email-relay-via-office-365/)
флаг vn
Я заработал, переоформив правила. Спасибо
Рейтинг:1
флаг vn

Кажется, что порядок правил имеет значение!

  • smtpd_helo_restrictions
  • smtpd_sender_restrictions
  • smtpd_recipient_restrictions

Это означает, что если вы хотите, чтобы все адреса o365 всегда были разрешены, Permit_mynetworks правило должно быть поверх каждого правила (или того, которое отвечает за блокировку). Как только правило было перемещено наверх, все заработало, и первая проблема была решена.

2-я ошибка скорее всего связана с глобальными настройками

# Отклонить незарегистрированного отправителя и получателя
smtpd_reject_unlisted_recipient = да
smtpd_reject_unlisted_sender = да

Которые имеют приоритет над правилами, определенными в ограничениях отправителя и ограничениях получателя, поэтому, казалось бы, отключив их, правила также будут разрешены. Я не проверял это, но это моя ставка, и, поскольку у нас не будет такой необходимости проверять это, я оставлю это для того, чтобы кто-то другой узнал :-)

Ivan_Wang avatar
флаг us
Я рад, что проблема с реле была решена. Спасибо, что поделились в то же время. Если все в порядке, вы можете пометить свое решение как лучший ответ, чтобы его могли найти другие люди с такой же проблемой.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.