Score:1

เพิ่ม dkimproxy ใน OpenSMTPD ... เมลวนซ้ำเมื่อส่งไปยังโดเมนของฉันเอง

ธง in

ฉันมีการกำหนดค่า OpenSMTPD ที่ใช้งานได้ดีและฉันได้เพิ่ม dkimproxy เข้าไป

ทุกอย่างทำงานได้ดี และผู้ทดสอบเมล ฯลฯ รายงานทั้งหมดว่าฉันเซ็นชื่อ DKIM ถูกต้องและคะแนนอีเมลของฉันคือ 10/10 เป็นต้น

ปัญหาคือ ...

หากฉันพยายามส่งอีเมลจาก [email protected] ไปยัง [email protected] เซิร์ฟเวอร์อีเมลจะวนซ้ำและอีเมลจะไม่ถูกส่งเลย ฉันเห็นสิ่งนี้ใน จดหมาย:

15 พ.ย. 08:34:13 น. mail dkimproxy.out[38686]: การลงนาม DKIM - ลงนาม; message-id=<[email protected]>, signer=<[email protected]>, from=<[email protected]>
15 พ.ย. 08:34:13 เมล smtpd[33463]: 4dea90938ef29e98 ข้อความ smtp msgid=0b62ff80 size=104666 nrcpt=1 proto=ESMTP
15 พ.ย. 08:34:13 เมล smtpd[33463]: 4dea90938ef29e98 ซองจดหมาย smtp evpid=0b62ff80eb408785 from=<> to=<[email protected]>                                                               
15 พ.ย. 08:34:13 เมล smtpd[33463]: 4dea9092f4274d88 การส่ง mta evpid=6fe8c750a74f16ac from=<> to=<[email protected]> rcpt=<-> source="200.100.240.135" relay="200.100.240.135 (mail.mydomain.com)" delay=1s result="Ok" stat="250 2.0.0 0b62ff80 ข้อความได้รับการยอมรับสำหรับการจัดส่ง"

... และมันวนซ้ำอยู่อย่างนั้น 50 ครั้งซ้ำแล้วซ้ำอีก - ในที่สุดมันก็เลิกกับข้อผิดพลาดนี้:

15 พ.ย. 08:34:18 เมล smtpd[33463]: เตือน: ตรวจพบลูป                                                                                                                                            
15 พ.ย. 08:34:18 เมล smtpd[33463]: 4dea9097226c93aa smtp คำสั่งคำสั่งล้มเหลว = "DATA" ผลลัพธ์ = "500 5.4.6 ตรวจพบลูปการกำหนดเส้นทาง: ตรวจพบลูป"                                                    
15 พ.ย. 08:34:18 เมล smtpd[33463]: 4dea90969c6cf495 mta delivery evpid=49514d020281ac48 from=<> to=<[email protected]> rcpt=<-> source="200.100.240.135" relay="200.100.240.135 (mail.mydomain.com)" delay=1s result="PermFail" stat="500 5.4.6 ตรวจพบลูปการกำหนดเส้นทาง: ตรวจพบลูป"

ฉันไม่รู้ว่าปัญหาคืออะไร สิ่งนี้จะเกิดขึ้นเมื่อฉันส่งอีเมลถึงตัวเองหรือผู้ใช้รายอื่นที่มีโดเมนนี้ซึ่งโฮสต์บนเซิร์ฟเวอร์เมลนี้เท่านั้น

#แมวdkimproxy_in.conf

# ระบุที่อยู่/พอร์ต DKIMproxy ที่ควรรับฟัง
ฟัง 200.100.240.135:10025

# ระบุที่อยู่/พอร์ตที่ DKIMproxy ส่งต่อเมลไป
รีเลย์ 200.100.240.135:10026


#แมวdkimproxy_out.conf 

# ระบุที่อยู่/พอร์ต DKIMproxy ที่ควรรับฟัง
ฟัง 200.100.240.135:10027

# ระบุที่อยู่/พอร์ตที่ DKIMproxy ส่งต่อเมลไป
รีเลย์ 200.100.240.135:10028

# ระบุโดเมนที่ DKIMproxy สามารถลงชื่อได้ (คั่นด้วยเครื่องหมายจุลภาค ไม่เว้นวรรค)
โดเมน mydomain.com

# ระบุลายเซ็นที่จะเพิ่ม
ลายเซ็น dkim (c = ผ่อนคลาย)
คีย์โดเมนลายเซ็น (c=nofws)

# ระบุตำแหน่งของคีย์ส่วนตัว
ไฟล์คีย์ /root/dkim.private.key

# ระบุตัวเลือก (เช่นชื่อของบันทึกคีย์ที่ใส่ใน DNS)
ตัวเลือก selector1

# ควบคุมจำนวนกระบวนการที่ DKIMproxy ใช้
# - ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ (และอื่น ๆ ) ได้
# กำลังเรียกใช้ `perldoc Net::Server::PreFork'
#min_servers 5
#min_spare_servers 2

... และนั่นคือทั้งหมด ... ขอบคุณ

แก้ไข - นี่คือ opensmtpd.conf:

ไฟล์ชื่อแทนของตาราง:/usr/local/etc/mail/aliases

ตัวกรอง check_dyndns เฟสเชื่อมต่อตรงกับ rdns regex \
    { '.*\.dyn\..*', '.*\.dsl\..*' } \
    ตัดการเชื่อมต่อ "550 ไม่มีการเชื่อมต่อที่อยู่อาศัย"

กรอง check_rdns เชื่อมต่อเฟสตรงกัน !rdns \
    ตัดการเชื่อมต่อ "550 ไม่มี rDNS"

กรอง check_fcrdns เชื่อมต่อเฟสตรงกัน !fcrdns \
    ตัดการเชื่อมต่อ "550 ไม่มี FCrDNS"

ฟังตัวกรอง 200.100.240.135 { check_dyndns, check_rdns, check_fcrdns }

ฟังบนพอร์ต 200.100.240.135 10028 แท็ก DKIM

ฟังเมื่อส่งพอร์ต 200.100.240.135

การดำเนินการ "local_mail" mbox นามแฝง <นามแฝง>
การดำเนินการ "relay_dkim" โฮสต์รีเลย์ smtp://200.100.240.135:10027
การดำเนินการ "ขาออก" รีเลย์ helo mail.mydomain.com
    
ตรงกับเมลจากการกระทำ "[email protected]" "local_mail"

จับคู่แท็ก DKIM สำหรับการดำเนินการใด ๆ "ขาออก"
ตรงกับการกระทำใด ๆ "relay_dkim"

จับคู่จากการกระทำใด ๆ สำหรับโดเมน "mydomain.com" "local_mail"
ตรงกับการกระทำในเครื่อง "local_mail"

จับคู่จากการรับรองความถูกต้องใด ๆ สำหรับการกระทำใด ๆ "ขาออก"
ตรงกับการกระทำใด ๆ "ขาออก"
Paul avatar
cn flag
คุณใช้ระบบปฏิบัติการอะไร คุณช่วยโพสต์ `smtpd.conf` ได้ไหม
user227963 avatar
in flag
ระบบปฏิบัติการคือ FreeBSD ฉันสามารถโพสต์ smtpd.conf ได้ แต่อีกครั้ง ทุกอย่างทำงานได้ดี - คะแนนที่สมบูรณ์แบบจากผู้ทดสอบเมล การลงนาม DKIM นั้นยอดเยี่ยม ... ทุกอย่างทำงานได้ดีและฉันสามารถส่งอีเมลถึงโดเมนของฉันเองก่อนที่จะเพิ่ม dkimproxy ... หลังจากเพิ่มเท่านั้น dkimproxy ที่ฉันได้รับเมลวนรอบด้วยโดเมนของฉันเอง ....
user227963 avatar
in flag
ตกลง เพิ่ม smtpd.conf ...
Paul avatar
cn flag
หากทั้งหมดนี้อยู่ในเซิร์ฟเวอร์เดียวกัน การไม่ใช้ `lo0` หรือ `127.0.0.1` เป็นเรื่องผิดปกติ มีเหตุผลใดเป็นพิเศษที่คุณใช้ DKIMproxy ดูเหมือนว่าแพ็คเกจนั้นจะไม่ได้รับการอัพเดตเลยเป็นเวลากว่า 10 ปี นอกจากนี้ การค้นหาตัวอย่างการกำหนดค่าสำหรับเครื่องมือที่ใช้โดยผู้ดูแล OpenSMTPD อาจง่ายกว่า เช่น `rspamd` ซึ่งอยู่ในพอร์ต FreeBSD ที่ดีที่สุดที่ฉันสามารถบอกได้ และ อยู่ใน `smtpd.conf(5)` ประเมินลำดับ `match` ให้ใกล้เคียงยิ่งขึ้น เนื่องจาก `smtpd` "กฎการจับคู่จะได้รับการประเมินตามลำดับ โดยที่แมทช์แรกจะชนะ"
user227963 avatar
in flag
ฉันต้องใช้ dkimproxy เพราะมีปัญหาความเข้ากันได้ไบนารี freebsd แปลก ๆ กับ rspamd (และ senderscore) ดังนั้นฉันจึงใช้ dkimproxy ซึ่งทำงานได้ดี ... มันเป็นเพียงการวนรอบแปลก ๆ ที่ส่งไปยังโดเมนของฉันจากโดเมนของฉันเอง ...
Paul avatar
cn flag
มีเหตุผลที่คุณใช้ที่อยู่ IP ของอินเทอร์เฟซภายนอกแทนการย้อนกลับหรือไม่
Score:1
ธง cn

คำตอบนี้เขียนขึ้นโดยไม่มีเหตุผลที่จะใช้อินเทอร์เฟซภายนอกสำหรับกระบวนการภายใน คำถามไม่รวมถึง pf.conf configuration ซึ่งอาจมีการตั้งค่าที่ขัดแย้งกับการประมวลผลเมลปกติ เมื่อใช้อินเทอร์เฟซอื่นที่ไม่ใช่ลูปแบ็คและควรมี ตั้งข้ามในแท้จริง หรือการกำหนดค่าเทียบเท่า

smtpd.conf:

# ตรวจสอบว่านี่คือตำแหน่งที่ถูกต้องของนามแฝงซึ่งปกติแล้ว
# อยู่ใน /etc/mail/aliases หากคุณได้เปลี่ยนนามแฝง
# จากค่าเริ่มต้น อย่าลืมเรียกใช้นามแฝงใหม่
ไฟล์ชื่อแทนของตาราง:/usr/local/etc/mail/aliases

ตัวกรอง check_dyndns เฟสเชื่อมต่อตรงกับ rdns regex \
    { '.*\.dyn\..*', '.*\.dsl\..*' } \
    ตัดการเชื่อมต่อ "550 ไม่มีการเชื่อมต่อที่อยู่อาศัย"

กรอง check_rdns เชื่อมต่อเฟสตรงกัน !rdns \
    ตัดการเชื่อมต่อ "550 ไม่มี rDNS"

กรอง check_fcrdns เชื่อมต่อเฟสตรงกัน !fcrdns \
    ตัดการเชื่อมต่อ "550 ไม่มี FCrDNS"

ฟังบนพอร์ต 127.0.0.1 10028 แท็ก DKIM
ฟังตัวกรอง 200.100.240.135 \
    { check_dyndns, check_rdns, check_fcrdns }
ฟังเมื่อส่งพอร์ต 200.100.240.135

การดำเนินการ "local_mail" mbox นามแฝง <นามแฝง>
การดำเนินการ "relay_dkim" โฮสต์รีเลย์ smtp+notls://127.0.0.1:10027
การดำเนินการ "ขาออก" รีเลย์ helo mail.mydomain.com

จับคู่แท็ก DKIM สำหรับการดำเนินการใด ๆ "ขาออก"
จับคู่จดหมายจากการกระทำ "[email protected]" "local_mail"
จับคู่จากการกระทำใด ๆ สำหรับโดเมน "mydomain.com" "local_mail"
จับคู่จากการรับรองความถูกต้องใด ๆ สำหรับการกระทำใด ๆ "ขาออก"
ตรงกับการกระทำในเครื่อง "local_mail"
ตรงกับการกระทำใด ๆ "relay_dkim"

# ฉันตีความสิ่งนี้ว่าซ้ำซ้อน:
# ตรงกับการกระทำใด ๆ "ขาออก"

# บรรทัดการกำหนดค่าดั้งเดิมนี้ดูไร้สาระเพราะ
# "mail-from" ยังเป็น "จากใด ๆ " ดังนั้นให้ลบ "จากใด ๆ "
# จับคู่จากเมลใด ๆ จาก "[email protected]" การกระทำ "local_mail"

แม้ว่า dkimproxy_in.conf ได้รับการกำหนดค่า ขณะนี้ไม่มีการรับรองความถูกต้องของส่วนหัว DKIM ในข้อความที่ได้รับ เนื่องจากไม่ได้กำหนดค่าในต้นฉบับ smtpd.confดังนั้นฉันจึงไม่เพิ่มมัน

dkimproxy_in.conf:

# ระบุที่อยู่/พอร์ต DKIMproxy ที่ควรรับฟัง
ฟัง 127.0.0.1:10025

# ระบุที่อยู่/พอร์ตที่ DKIMproxy ส่งต่อเมลไป
รีเลย์ 127.0.0.1:10026

dkimproxy_out.conf:

# ระบุที่อยู่/พอร์ต DKIMproxy ที่ควรรับฟัง
ฟัง 127.0.0.1:10027

# ระบุที่อยู่/พอร์ตที่ DKIMproxy ส่งต่อเมลไป
รีเลย์ 127.0.0.1:10028

# ระบุโดเมนที่ DKIMproxy สามารถลงชื่อได้ (คั่นด้วยเครื่องหมายจุลภาค ไม่เว้นวรรค)
โดเมน mydomain.com

# ระบุลายเซ็นที่จะเพิ่ม
ลายเซ็น dkim (c = ผ่อนคลาย)
คีย์โดเมนลายเซ็น (c=nofws)

# ระบุตำแหน่งของคีย์ส่วนตัว
ไฟล์คีย์ /root/dkim.private.key

# ระบุตัวเลือก (เช่นชื่อของบันทึกคีย์ที่ใส่ใน DNS)
ตัวเลือก selector1

# ควบคุมจำนวนกระบวนการที่ DKIMproxy ใช้
# - ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกเหล่านี้ (และอื่น ๆ ) ได้
# กำลังเรียกใช้ `perldoc Net::Server::PreFork'
#min_เซิร์ฟเวอร์ 5
#min_spare_servers 2
Paul avatar
cn flag
เป็นไปได้ว่าสิ่งนี้ยังคงต้องการการปรับแต่งบางอย่าง กรุณาทดสอบและแสดงความคิดเห็น
user227963 avatar
in flag
ขอบคุณมาก - สิ่งนี้ช่วยแก้ปัญหาการวนซ้ำของจดหมายได้อย่างแน่นอน

โพสต์คำตอบ

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