Score:1

Postfix ปฏิเสธอีเมลที่ส่งต่อจาก O365

ธง vn

ฉันต้องทำการย้ายข้อมูล Office 365 จาก Postfix ด้วย Sogo เป้าหมายของฉันคือการกำหนดค่าไฮบริดขนาดเล็กของ Office 365 ด้วย Postfix ซึ่งเป็นวิธีเดียวกับที่คุณทำกับ Exchange On-premises

ปัจจุบัน postfix เป็นเซิร์ฟเวอร์หลักที่มีผู้ใช้ 1,000 ราย และส่งและรับอีเมลทั้งหมดสำหรับ โดเมน.xyz. ฉันได้กำหนดค่า Office 365 และเพิ่มโดเมนเดียวกันเข้าไปแล้ว ฉันได้สร้างกล่องจดหมาย 2 กล่องและกำหนดค่า Exchange Online ที่ โดเมน.xyz ตั้งเป็นโดเมน InternalRelay

Exchange ออนไลน์มี 2 บัญชี

Exchange ได้รับการกำหนดค่าว่าหากมีคนใน Exchange ส่งอีเมลไปที่ domain.xyz และกล่องจดหมายอยู่ใน Exchange อีเมลนั้นควรอยู่ใน Exchange แต่ถ้า Exchange ไม่พบกล่องจดหมายสำหรับ domain.xyz ก็ควรใช้ ตัวเชื่อมต่อขาออก ซึ่งฉันได้กำหนดค่าให้ส่งต่ออีเมลไปยัง postfix ซึ่งหมายความว่าอีเมลใด ๆ ที่ส่งจาก userA ไปยัง userB นั้นใช้งานได้ดี แต่ทันทีที่ userA ส่งอีเมลไปยัง userC ซึ่งอยู่ใน postfix - มันจะบล็อกมัน

ข้อผิดพลาดที่รายงาน: 554 5.7.1 [email protected]: ที่อยู่ผู้รับถูกปฏิเสธ: การปฏิเสธนโยบายไม่ได้เข้าสู่ระบบ

ความเข้าใจของฉันคือ Postfix คิดว่าเป็นเซิร์ฟเวอร์เดียวที่เป็นเจ้าของโดเมน domain.xyz และปฏิบัติต่ออีเมลใดๆ จาก domain.xyz เหมือนผู้ใช้/บริการบางคนพยายามส่งอีเมลโดยไม่ได้รับอนุญาตและปฏิเสธ นี่เป็นข้อพิสูจน์เมื่อเราสร้างอีเมลแบบสุ่มทั้งหมดใน Office 365 ที่ไม่มีบัญชีที่เกี่ยวข้องใน postfix และเมื่อพยายามส่งอีเมลจาก [email protected] ไปยัง [email protected] เราได้รับ

เซิร์ฟเวอร์ระยะไกลส่งคืน '550 5.1.0 [email protected]: ที่อยู่ผู้ส่งถูกปฏิเสธ: ผู้ใช้ที่ไม่รู้จักในตารางกล่องจดหมายเสมือน'

วิธีบอก postfix (SoGo) ให้เริ่มเชื่อถือ Office 365 (ช่วงที่อยู่ IP) และอนุญาตให้รับอีเมลจากโดเมนที่คิดว่าเป็นเจ้าของ และสำหรับบัญชีที่มีในขั้นตอนสุดท้ายของการโยกย้าย postfix ไปยัง Office 365 แต่ละบัญชีใน postfix จะมีบัญชีที่เหมือนกันใน O365 และเราจะใช้การเปลี่ยนเส้นทางของอีเมล 1 กล่องจดหมายในแต่ละครั้งไปยังที่อยู่ onmicrosoft.com เพื่อให้แน่ใจว่าผู้ใช้สามารถใช้ O365 ได้โดยไม่ต้องกังวล บัญชี postfix ของพวกเขา แต่เพื่อให้การรับส่งข้อมูลระหว่าง O365 และ postfix ต้องใช้งานได้

ฉันเดาว่ามันไม่ใช่แค่ปัญหาสำหรับการอยู่ร่วมกันของ Office 365 แต่บริการใดๆ เช่น SendGrid หรือที่คล้ายกันที่มีคนใช้ก็มีปัญหาเหมือนกัน

สุดท้าย - ฉันไม่สามารถเข้าถึง postfix/sogo ฉัน "เป็นเจ้าของ" ฝั่ง o365 เท่านั้น ฉันกำลังพยายามให้ข้อมูลกับทีม Linux/Postfix เพื่อแก้ไขปัญหานี้

บิตการกำหนดค่าที่อาจเกี่ยวข้องซึ่งฉันได้รับจากทีม แต่ฉันเองก็ไม่รู้ว่าถูกต้องหรือไม่

#ข้อ จำกัด ของ HELO
smtpd_helo_required = ใช่
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    ปฏิเสธ_non_fqdn_helo_ชื่อโฮสต์
    ปฏิเสธ_invalid_helo_ชื่อโฮสต์
    check_helo_access pcre:/etc/postfix/helo_access.pcre

#ข้อ จำกัด ของผู้ส่ง
smtpd_sender_restrictions =
    ปฏิเสธ_unknown_sender_domain
    ปฏิเสธ_non_fqdn_sender
    ปฏิเสธ_unlisted_sender,
    permit_mynetworks,
    permit_sasl_authenticated,
    check_sender_access pcre:/etc/postfix/sender_access.pcre
    #reject_sender_login_mismatch

#ข้อ จำกัด ของผู้รับ
smtpd_recipient_restrictions =
    ปฏิเสธ_unknown_recipient_domain
    ปฏิเสธ_non_fqdn_recipient
    ปฏิเสธ_unlisted_recipient,
    check_policy_service inet:127.0.0.1:7777,
    permit_mynetworks,
    permit_sasl_authenticated,
    #reject_unauth_destination

# ข้อ จำกัด ข้อมูล
smtpd_data_restrictions = ปฏิเสธ_unauth_pipelining

# ที่อยู่ 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

#
# ค้นหาบัญชีจดหมายเสมือน
#
แผนที่ขนส่ง =
    #regexp:/etc/postfix/transport_regexp
    พร็อกซี:ldap:/etc/postfix/ldap/transport_maps_user.cf
    พร็อกซี:ldap:/etc/postfix/ldap/transport_maps_domain.cf

sender_dependent_relayhost_maps =
    พร็อกซี: 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

virtual_mailbox_domains =
    พร็อกซี:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf

โดเมนรีเลย์ =
    $mydestination
    พร็อกซี:ldap:/etc/postfix/ldap/relay_domains.cf

virtual_mailbox_maps =
    พร็อกซี:ldap:/etc/postfix/ldap/virtual_mailbox_maps.cf

virtual_alias_maps =
    #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
    
sender_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=ORIGINATING

ความคิดใด ๆ ที่จะได้รับการต้อนรับ

Ivan_Wang avatar
us flag
เซิร์ฟเวอร์ที่สร้างข้อความ NDR (ไม่สามารถจัดส่งได้) สองรายการคืออะไร สำหรับรหัส NDR ทั่วไป (เช่น 5.1.1) ใน office 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 (ขออภัยที่ฉันไม่คุ้นเคยกับ postfix อย่างไรก็ตามสิ่งต่อไปนี้อาจ วิธีใช้: https://aventistech.com/configure-postfix-email-relay-via-office-365/)
vn flag
ฉันทำให้มันทำงานโดยการจัดลำดับกฎใหม่ ขอขอบคุณ
Score: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 flag
ฉันดีใจที่ปัญหารีเลย์ได้รับการแก้ไขแล้ว ขอขอบคุณสำหรับการแบ่งปันของคุณในเวลาเดียวกัน หากทุกอย่างเรียบร้อยดี คุณสามารถทำเครื่องหมายว่าโซลูชันของคุณเป็นคำตอบที่ดีที่สุด เพื่อให้ผู้อื่นที่มีปัญหาเดียวกันสามารถค้นพบได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา