1 votes

Postfix rejette les e-mails relayés depuis O365

Je dois faire une migration d'Office 365 depuis Postfix avec Sogo. Mon objectif est de configurer un petit hybride d'Office 365 avec Postfix, un peu de la même manière que vous le faites avec Exchange sur site.

Actuellement, postfix est un serveur principal avec 1000 utilisateurs et il envoie et reçoit tous les e-mails pour un domain.xyz. J'ai configuré Office 365 et ajouté le même domaine. J'ai créé 2 boîtes aux lettres et configuré Exchange Online pour que domain.xyz soit défini en tant que domaine InternalRelay.

Exchange en ligne a jusqu'à présent 2 comptes

  • utilisateurA@domain.xyz
  • utilisateurB@domain.xyz

Exchange est configuré pour que si quelqu'un sur Exchange envoie un e-mail à domain.xyz et que la boîte aux lettres est sur Exchange, l'e-mail devrait rester sur Exchange, mais si Exchange ne trouve pas la boîte aux lettres pour domain.xyz, il devrait utiliser Connecteur sortant que j'ai configuré pour transférer l'e-mail à postfix. Cela signifie que tout e-mail envoyé de l'utilisateurA à l'utilisateurB fonctionne correctement, mais au moment où l'utilisateurA envoie un e-mail à l'utilisateurC qui réside sur postfix, il le bloque.

Erreur signalée : 554 5.7.1 utilisateurC@domain.xyz : L'adresse du destinataire a été rejetée : Rejet de la politique non connectée

Je pense que Postfix pense qu'il est le seul serveur qui possède le domaine domain.xyz et il traite tout e-mail de domain.xyz comme un utilisateur/service essayant d'envoyer un e-mail sans autorisation et le refuse. Cela se confirme lorsque nous créons un e-mail totalement aléatoire dans Office 365 qui n'a pas de compte correspondant dans postfix et lorsque nous essayons d'envoyer un e-mail de test.user123456@domain.xyz à UserC@domain.xyz, nous obtenons

Le serveur distant a renvoyé '550 5.1.0 test.user123456@domain.xyz : L'adresse de l'expéditeur a été rejetée : Utilisateur inconnu dans la table de boîte aux lettres virtuelle'

Comment indiquer à postfix (SoGo) de commencer à faire confiance à Office 365 (plage d'adresses IP) et de lui permettre de recevoir des e-mails à partir du domaine qu'il pense posséder, et pour les comptes qu'il possède. À la dernière étape de la migration de postfix vers Office 365, chaque compte dans postfix aura un compte identique dans O365 et nous utiliserons la redirection des e-mails un à un vers l'adresse onmicrosoft.com pour nous assurer que les utilisateurs peuvent utiliser O365 sans avoir à se soucier de leur compte postfix. Mais pour que cela fonctionne, le trafic entre O365 et postfix doit fonctionner.

Je suppose que ce n'est pas seulement un problème pour la coexistence d'Office 365, mais tout service tel que SendGrid ou similaire que quelqu'un utiliserait aurait le même problème.

Enfin - je n'ai pas accès à postfix/sogo. Je gère uniquement le côté o365. J'essaie de fournir des informations à l'équipe Linux/Postfix pour résoudre ce problème

Éléments de configuration potentiellement pertinents que j'ai obtenus de l'équipe, mais je n'ai aucune idée si c'est correct

# Restriction HELO
smtpd_helo_required = yes
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

# Restrictions de l'expéditeur
smtpd_sender_restrictions =
    reject_unknown_sender_domain,
    reject_non_fqdn_sender,
    reject_unlisted_sender,
    permit_mynetworks,
    permit_sasl_authenticated,
    check_sender_access pcre:/etc/postfix/sender_access.pcre
    #reject_sender_login_mismatch

# Restrictions du destinataire
smtpd_recipient_restrictions =
    reject_unknown_recipient_domain,
    reject_non_fqdn_recipient,
    reject_unlisted_recipient,
    check_policy_service inet:127.0.0.1:7777,
    permit_mynetworks,
    permit_sasl_authenticated,
    #reject_unauth_destination

# Restrictions des données
smtpd_data_restrictions = reject_unauth_pipelining

# Adresses O365
mynetworks = 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

#
# Recherche de comptes de messagerie virtuels
#
transport_maps =
    #regexp:/etc/postfix/transport_regexp
    proxy:ldap:/etc/postfix/ldap/transport_maps_user.cf
    proxy:ldap:/etc/postfix/ldap/transport_maps_domain.cf

sender_dependent_relayhost_maps =
    proxy:ldap:/etc/postfix/ldap/sender_dependent_relayhost_maps_user.cf
    proxy:ldap:/etc/postfix/ldap/sender_dependent_relayhost_maps_domain.cf

# Table de recherche avec les noms de connexion SASL qui possèdent les adresses de l'expéditeur (MAIL FROM).
smtpd_sender_login_maps =
    proxy:ldap:/etc/postfix/ldap/sender_login_maps.cf

virtual_mailbox_domains =
    proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf

relay_domains =
    $mydestination
    proxy:ldap:/etc/postfix/ldap/relay_domains.cf

virtual_mailbox_maps =
    proxy:ldap:/etc/postfix/ldap/virtual_mailbox_maps.cf

virtual_alias_maps =
    #regexp:/etc/postfix/transport_regexp
    proxy:ldap:/etc/postfix/ldap/virtual_alias_maps.cf
    proxy:ldap:/etc/postfix/ldap/virtual_group_maps.cf
    proxy:ldap:/etc/postfix/ldap/virtual_group_members_maps.cf
    proxy:ldap:/etc/postfix/ldap/catchall_maps.cf
    proxy:ldap:/etc/postfix/ldap/sender_login_maps.cf

sender_bcc_maps =
    proxy:ldap:/etc/postfix/ldap/sender_bcc_maps_user.cf
    proxy:ldap:/etc/postfix/ldap/sender_bcc_maps_domain.cf

recipient_bcc_maps =
    proxy:ldap:/etc/postfix/ldap/recipient_bcc_maps_user.cf
    proxy:ldap:/etc/postfix/ldap/recipient_bcc_maps_domain.cf

Dans master.cf

smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -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,reject
#  -o milter_macro_daemon_name=ORIGINATING

Toute idée serait la bienvenue.

0 votes

Quel est le serveur de génération des deux messages NDR (non-distribuables) ? Pour le code NDR commun (par exemple 5.1.1) dans Office 365 : docs.microsoft.com/fr-fr/exchange/mail-flow-best-practices/… (Désolé pour cela, je ne suis pas familier avec postfix, cependant, peut-être que ce qui suit pourrait vous aider : aventistech.com/configure-postfix-email-relay-via-office-365‌​)

0 votes

J'ai réussi en réorganisant les règles. Merci

1voto

MadBoy Points 3673

Il semble que l'ordre des règles est important !

  • smtpd_helo_restrictions
  • smtpd_sender_restrictions
  • smtpd_recipient_restrictions

Cela signifie que si vous voulez autoriser toutes les adresses o365 à être toujours autorisées, la règle permit_mynetworks doit être en haut de chaque règle (ou celle qui est responsable du blocage). Une fois la règle déplacée en haut, tout a commencé à fonctionner et le premier problème a été résolu.

La 2ème erreur est très probablement liée aux paramètres globaux

# Rejeter l'expéditeur et le destinataire non répertoriés
smtpd_reject_unlisted_recipient = yes
smtpd_reject_unlisted_sender = yes

Qui ont la priorité sur les règles définies sous les restrictions d'expéditeur et les restrictions de destinataire - il semblerait donc qu'en les désactivant, les règles seraient également autorisées. Je n'ai pas testé cela - mais c'est mon hypothèse et comme nous n'aurons pas besoin de le tester, je laisserai à quelqu'un d'autre le soin de le découvrir :-)

1 votes

Je suis content que le problème de relais ait été résolu. Merci pour votre partage en même temps. Si tout va bien, vous pourriez marquer votre solution comme la meilleure réponse afin que d'autres personnes rencontrant le même problème puissent la trouver.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X