ค้นหาเว็บไซต์

Exchange 2016 และ Exchange 2019 SMTP Relay


สองสามวันที่ผ่านมา ฉันได้ทำงานกับลูกค้าหลายรายในการส่งต่อ SMTP ใน Exchange 2016 ระหว่างการย้ายจาก Exchange 2010 ไปยัง Exchange 2016 ครั้งสุดท้ายที่ฉันทำคือกับ Exchange 2010 เกือบ 9 ปีที่แล้ว https://jaapwesselius.com /2012/05/25/smtp-relay-in-exchange-2010/ และสิ่งต่างๆ มีการเปลี่ยนแปลงตลอดหลายปีที่ผ่านมา การเปลี่ยนแปลงใน Exchange 2016 จะถูกยกยอดไปใน Exchange 2019…. โอ้ และนี่ก็เป็นจริงสำหรับ Exchange 2013 เช่นกัน แต่เนื่องจาก Exchange 2013 ไม่รองรับแล้ว และไม่มีลูกค้าของฉันคนใดใช้ Exchange 2013 ฉันจะข้ามสิ่งนี้….

Exchange 2010 มีบริการ Hub Transport สำหรับ SMTP และกำลังใช้พอร์ต 25 สำหรับการสื่อสารกับโฮสต์ SMTP อื่น ๆ Exchange 2016 และ Exchange 2019 มีบริการสองรายการสำหรับการขนส่ง SMTP:

  • Front-End Transport service (FETS) กำลังฟังบนพอร์ต 25 นี่คือจุดที่โฮสต์ SMTP อื่นเชื่อมต่ออยู่ ในศูนย์การจัดการ Exchange 2016 ตัวเชื่อมต่อการรับ FETS จะถูกระบุเป็น ส่วนหน้าเริ่มต้น ใน Exchange 2013 บริการนี้ทำงานบนเซิร์ฟเวอร์การเข้าถึงไคลเอ็นต์
  • Hub Transport Service กำลังฟังบนพอร์ต 2525 นี่คือบริการแบ็คเอนด์ที่ใช้โดย FETS และบริการแบ็คเอนด์ Exchange Hub Transport อื่นๆ ไคลเอนต์ไม่คาดว่าจะใช้บริการ Hub Transport บนพอร์ต 2525 ใน Exchange Admin Center ตัวเชื่อมต่อการรับนี้ถูกระบุว่าเป็น ค่าเริ่มต้น ใน Exchange 2013 บริการนี้ทำงานบนเซิร์ฟเวอร์กล่องจดหมาย

ตัวเชื่อมต่อเหล่านี้จะแสดงอยู่ในภาพหน้าจอต่อไปนี้ เลือกตัวเชื่อมต่อการรับส่วนหน้าเริ่มต้น (บนพอร์ต 25) ลูกศรสีแดงชี้ไปที่ตัวเชื่อมต่อรับการขนส่งฮับบนพอร์ต 2525

หมายเหตุ ตัวเชื่อมต่อการรับส่วนหน้าของไคลเอนต์ในภาพหน้าจอกำลังฟังบนพอร์ต 587 และใช้สำหรับไคลเอนต์ SMTP ที่ได้รับการรับรองความถูกต้องเช่น Mozilla Thunderbird

SMTP Relay ใน Exchange 2016 และ 2019

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

มีสองวิธีในการสร้างตัวเชื่อมต่อรีเลย์ดังกล่าว:

  • สร้างตัวเชื่อมต่อการรับเฉพาะ (บน Frontend Transport ไม่ใช่ใน Transport Service) จำกัดตามที่อยู่ IP และเพิ่มสิทธิ์ Ms-Exch-SMTP-Accept-Any-Recipient บน NT AUTHORITY\ หลักการรักษาความปลอดภัยของการเข้าสู่ระบบแบบไม่ระบุชื่อ นี่คือสิ่งที่ฉันได้แสดงในบล็อกที่กล่าวถึงก่อนหน้านี้ และสามารถทำได้โดยใช้ Exchange PowerShell เท่านั้น โฮสต์การส่งจะถือว่าไม่ระบุชื่อ และจำกัดขนาดข้อความและป้องกันสแปม
  • สร้างตัวเชื่อมต่อการรับเฉพาะ (อีกครั้งใน Frontend Transport) จำกัดตามที่อยู่ IP และเพิ่มกลไกการตรวจสอบสิทธิ์ Exchange Servers และ Externally Secured ให้กับตัวเชื่อมต่อ ในสถานการณ์นี้ โฮสต์การส่งจะถือเป็นผู้ส่งที่มีการตรวจสอบสิทธิ์ และข้อความอีเมล ข้ามขีดจำกัดการป้องกันสแปมและขนาดข้อความ และกำหนดค่าได้ง่ายโดยใช้ Exchange Admin Console

เนื่องจากตัวเลือกแรกได้รับการบันทึกไว้แล้ว ฉันจะดำเนินการต่อด้วยตัวเลือกที่สอง โดยส่วนตัวแล้วฉันชอบทำสิ่งนี้ด้วย PowerShell และคำสั่งเพื่อสร้างตัวเชื่อมต่อและกำหนดค่าให้เป็นดังนี้:

[PS] C:\>New-ReceiveConnector -Name "SMTP Relay EXCH01" 
-Server EXCH01 -TransportRole FrontendTransport -Custom 
-Bindings 0.0.0.0:25 -RemoteIpRanges 10.38.96.15

Identity                 Bindings     Enabled
--------                 --------     -------
EXCH01\SMTP Relay EXCH01 {0.0.0.0:25} True


[PS] C:\>Set-ReceiveConnector "EXCH01\SMTP Relay EXCH01" 
-AuthMechanism ExternalAuthoritative 
-PermissionGroups ExchangeServers

[PS] C:\>

เมื่อคุณตรวจสอบตัวเชื่อมต่อโดยใช้ Exchange Admin Center คุณจะเห็นว่ากลไกการรับรองความถูกต้องได้รับการตั้งค่าอย่างถูกต้องดังที่แสดงในภาพหน้าจอต่อไปนี้:

คุณสามารถสร้างตัวเชื่อมต่อใหม่ได้โดยใช้ Exchange Admin Center ใน EAC ให้ไปที่ การรับส่งอีเมล และเลือกแท็บ รับตัวเชื่อมต่อ และคลิกไอคอน + ทำตามตัวช่วยสร้าง ตั้งชื่อที่ถูกต้องให้กับตัวเชื่อมต่อใหม่ เลือก Frontend Transport และ Custom และจำกัดตามที่อยู่ IP ดังที่แสดงในภาพหน้าจอต่อไปนี้:

เมื่อสร้างแล้ว ให้เปิดตัวเชื่อมต่อรับใหม่ เลือก ความปลอดภัย และกำหนดค่ากลไกการตรวจสอบสิทธิ์เป็น การรักษาความปลอดภัยภายนอก และ เซิร์ฟเวอร์ Exchange ดังที่แสดงในภาพหน้าจอก่อนหน้า

ขณะนี้สามารถส่งต่อข้อความ SMTP จากเซิร์ฟเวอร์ด้วยที่อยู่ IP 10.38.96.15 ได้ เมื่อใช้ Telnet บนพอร์ต 25 คุณจะเห็นสิ่งนี้:

เมื่อพยายามส่งต่อจากเซิร์ฟเวอร์อื่น (ซึ่งไม่อยู่ในรายการการตั้งค่าเครือข่ายระยะไกล) มันจะล้มเหลวด้วย 550 5.7.54 SMTP; ไม่สามารถส่งต่อผู้รับในโดเมนที่ไม่ได้รับการยอมรับ เกิดข้อผิดพลาดดังที่แสดงในภาพหน้าจอต่อไปนี้:

สรุป

กล่าวโดยสรุป อย่ากำหนดค่าตัวเชื่อมต่อการรับเริ่มต้นในลักษณะที่จะส่งต่อข้อความภายนอกเซิร์ฟเวอร์ Exchange เมื่อคุณต้องการใช้รีเลย์ SMTP ให้สร้างตัวเชื่อมต่อเฉพาะ

ตัวเลือกแรกและปลอดภัยที่สุดคือการสร้างตัวเชื่อมต่อการรับใหม่ จำกัดตามที่อยู่ IP และกำหนดค่าสิทธิ์ Ms-Exch-SMTP-Accept-Any-Recipient มีการใช้ขีดจำกัดการป้องกันสแปมและขนาดข้อความ แต่สามารถกำหนดค่าได้โดยใช้ PowerShell เท่านั้น (และมีความซับซ้อนมากขึ้น)

ประการที่สองคือการสร้างตัวเชื่อมต่อการรับใหม่ จำกัดตามที่อยู่ IP และกำหนดค่ากลไกการตรวจสอบสิทธิ์ กำหนดค่าง่ายกว่า (โดยใช้ EAC) แต่มีความปลอดภัยน้อยกว่า: ไม่มีการใช้ขีดจำกัดการป้องกันสแปมและข้อความ

มันขึ้นอยู่กับคุณว่าจะใช้อันไหน

บทความที่เกี่ยวข้อง