Score:1

การตั้งค่า Exim Smarthost ทำงานใน starttls แต่ไม่ใช่ใน smtps

ธง cn

ฉันได้ตั้งค่า exim4 ของฉันเป็น mta ในเครื่องพร้อมการจัดส่ง smarthost (debian 10 vm) ตามคำแนะนำนี้: Exim บน DebianWiki

หากสมาร์ทโฮสต์ของฉันคาดหวังการเชื่อมต่อ ssl (smtp ผ่าน ssl) จะไม่ทำงาน

เมื่อเว็บแอปพลิเคชันท้องถิ่นส่งอีเมลไปที่ localhost:25 อีเมลนั้นจะยังคงติดอยู่ในคิว ถ้าฉันพยายามบังคับให้ส่ง สิ่งนี้จะเกิดขึ้น:

root@testbug:~# วันที่ && exim -v -M 1nrqKZ-0003Ji-WE
วันศุกร์ที่ 20 พฤษภาคม 2565 10:33:50 น. CEST
ส่งมอบ 1nrqKZ-0003Ji-WE
R: smarthost สำหรับ [email protected]
T: remote_smtp_smarthost สำหรับ [email protected]
พอร์ตการขนส่ง = 25 ถูกแทนที่ด้วยพอร์ตเฉพาะโฮสต์ = 465
กำลังเชื่อมต่อกับ smtps.aruba.it [62.149.128.218]:465 ... เชื่อมต่อแล้ว

=========== ติดอยู่ไม่กี่วินาที ===========

  SMTP(ปิด)>>
บันทึก: หลัก
  H=smtps.aruba.it [62.149.128.218]: โฮสต์ระยะไกลปิดการเชื่อมต่อเพื่อตอบสนองต่อการเชื่อมต่อเริ่มต้น
พอร์ตการขนส่ง = 25 ถูกแทนที่ด้วยพอร์ตเฉพาะโฮสต์ = 465
กำลังเชื่อมต่อกับ smtps.aruba.it [62.149.156.218]:465 ... เชื่อมต่อแล้ว

=========== ติดอยู่ไม่กี่วินาที ===========

  SMTP(ปิด)>>
บันทึก: หลัก
  H=smtps.aruba.it [62.149.156.218]: โฮสต์ระยะไกลปิดการเชื่อมต่อเพื่อตอบสนองต่อการเชื่อมต่อเริ่มต้น
บันทึก: หลัก
  == [email protected] R=smarthost T=remote_smtp_smarthost เลื่อน (-18) H=smtps.aruba.it [62.149.156.218]: โฮสต์ระยะไกลปิดการเชื่อมต่อเพื่อตอบสนองต่อการเชื่อมต่อเริ่มต้น

นี่คือบันทึกสำหรับสิ่งนั้น:

root@testbug:~# หาง -3 /var/log/exim4/mainlog
2022-05-20 10:35:31 1nrqKZ-0003Ji-WE H=smtps.aruba.it [62.149.128.218]: โฮสต์ระยะไกลปิดการเชื่อมต่อเพื่อตอบสนองต่อการเชื่อมต่อเริ่มต้น
2022-05-20 10:37:11 1nrqKZ-0003Ji-WE H=smtps.aruba.it [62.149.156.218]: โฮสต์ระยะไกลปิดการเชื่อมต่อเพื่อตอบสนองต่อการเชื่อมต่อเริ่มต้น
2022-05-20 10:37:11 1nrqKZ-0003Ji-WE == [email protected] R=smarthost T=remote_smtp_smarthost เลื่อน (-18) H=smtps.aruba.it [62.149.156.218]: โฮสต์ระยะไกล ปิดการเชื่อมต่อเพื่อตอบสนองการเชื่อมต่อเริ่มต้น

โปรดทราบว่าเซิร์ฟเวอร์ยอมรับการเชื่อมต่อ ssl:

root@testbug:~#openssl s_client -เชื่อมต่อ smtps.aruba.it:465
เชื่อมต่อแล้ว(00000003)
ความลึก=2 C = IT, L = มิลาน, O = Actalis S.p.A./03358520967, CN = CA รูทการรับรองความถูกต้องของ Actalis
[...]
ไม่มีการส่งชื่อ CA ของใบรับรองไคลเอ็นต์
[...]
การยืนยัน: ตกลง
---
ใหม่, TLSv1.2, Cipher คือ ECDHE-RSA-AES256-GCM-SHA384
รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต
รองรับการเจรจาต่อรองใหม่อย่างปลอดภัย
การบีบอัด: ไม่มี
การขยายตัว: ไม่มี
ไม่มีการเจรจา ALPN
เซสชัน SSL:
    โปรโตคอล : TLSv1.2
[...]
---
220 smtpdh08.ad.aruba.it เซิร์ฟเวอร์ Aruba ขาออก Smtp ESMTP พร้อมแล้ว

ถ้าฉันเปลี่ยนไปใช้เซิร์ฟเวอร์ smarthost อื่น smtp.mydomain.itดำเนินการโดยผู้ให้บริการรายเดียวกัน (ดังนั้นฉันจึงใช้ข้อมูลรับรองเดียวกันในการตรวจสอบเทียบกับสมาร์ทโฮสต์) บนพอร์ต 25 ด้วย starttls สิ่งต่าง ๆ ทำงานได้อย่างราบรื่น ส่งอีเมล (ใน starttls) เมื่อฉันรีสตาร์ท exim:

2022-05-20 10:42:48 exim 4.92 daemon เริ่มต้น: pid=4015, -q30m, กำลังฟัง SMTP บน [127.0.0.1]:25 [::1]:25
2022-05-20 10:42:48 เริ่มรันคิว: pid=4017
2022-05-20 10:42:51 1nrqKZ-0003Ji-WE => [email protected] R=smarthost T=remote_smtp_smarthost H=smtp.mydomain.it [62.149.128.203] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384: 256 CV=no DN="C=IT,ST=Bergamo,L=Ponte San Pietro,O=Aruba S.p.A.,CN=*.aruba.it" A=plain C="250 2.0.0 ryDgn51y1TRWPryDinATBj จดหมายยอมรับสำหรับการจัดส่ง"
2022-05-20 10:42:51 1nrqKZ-0003Ji-WE เสร็จสมบูรณ์
2022-05-20 10:42:51 สิ้นสุดการรันคิว: pid=4017

คุณจะเห็นว่าอีเมลถูกส่งอย่างถูกต้องใน starttls:

root@testbug:~# ngrep -qt -dany พอร์ต 25
อินเทอร์เฟซ: ใด ๆ
ตัวกรอง: ( พอร์ต 25 ) และ (ip || ip6)

T 2022/05/20 10:42:48.900722 62.149.128.203:25 -> MY.SRV.IP.ADDR:47932 [AP] #4
  220 smtpdh13.ad.aruba.it Aruba เซิร์ฟเวอร์ Smtp ESMTP ขาออกพร้อม ..

T 2022/05/20 10:42:48.900903 MY.SRV.IP.ADDR:47932 -> 62.149.128.203:25 [AP] #5
  EHLO testbug.mydomain.it..

T 2022/05/20 10:42:49.025487 62.149.128.203:25 -> MY.SRV.IP.ADDR:47932 [AP] #7
  250-smtpdh13.ad.aruba.it สวัสดี [MY.SRV.IP.ADDR] ยินดีที่ได้รู้จัก..250-HELP..250-AUTH LOGIN PLAIN..250-SIZE 524288000..250-ENHANCEDSTATUSCODES..250 -8BITMIME..250-STARTTLS..250 ตกลง..

T 2022/05/20 10:42:49.025702 MY.SRV.IP.ADDR:47932 -> 62.149.128.203:25 [AP] #8
  STARTTLS..

T 2022/05/20 10:42:49.092110 62.149.128.203:25 -> MY.SRV.IP.ADDR:47932 [AP] #10
  220 2.0.0 พร้อมที่จะเริ่ม TLS..

T 2022/05/20 10:42:49.111151 MY.SRV.IP.ADDR:47932 -> 62.149.128.203:25 [AP] #11
  ....L...H..d.@"^.`I.....OU..x.N|Z..."...._@..:....... ..,.......+.....0...../.......5.....[...]

ใครสามารถชี้ให้ฉันเห็นทิศทางที่ถูกต้องในการตรวจสอบ?

นี่อาจเป็นปัญหาเครือข่าย/พอร์ตหรือไม่ หรือปัญหาเกี่ยวกับใบรับรอง (ฉันสร้างใบรับรองที่ลงนามด้วยตนเองด้วยวิธีที่ต่างออกไปเล็กน้อย และที่จริงฉันไม่รู้ว่าเหตุใดจึงต้องใช้ใบรับรองนี้ และเซิร์ฟเวอร์ยังตรวจสอบใบรับรองนี้อยู่หรือไม่)

ขอบคุณมาก.

แก้ไข: รับเอาต์พุตที่มีรายละเอียดมากขึ้นสำหรับการส่งข้อความ: https://pastebin.com/axRsQmwy

anx avatar
fr flag
anx
ความจริงที่ว่า `tls_on_connect_ports` [เข้าถึงการกำหนดค่าได้เท่านั้น](https://github.com/Exim/exim/search?q=on_connect_ports) ผ่าน `tls_in.on_connect_ports` โดยไม่มีวิธีการตั้งค่า `tls_out.on_connect_ports` ทำให้ฉัน สงสัยว่ารองรับเฉพาะการเชื่อมต่อขาเข้าและไม่คำนึงถึง SMTP ขาออก Exim อาจไม่เคยรองรับสิ่งนี้ เนื่องจากไม่ใช่มาตรฐาน & ที่แนะนำในขณะที่ใช้คุณสมบัติด้าน daemon
cn flag
พารามิเตอร์ @anx `hosts_require_tls` ที่ถูกตั้งค่าเป็นมาโคร ค#L2879)?

โพสต์คำตอบ

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