Postfix reject_unknown_reverse_client_hostname: แทนที่ค่าเริ่มต้น unknown_client_reject_code (450) ถึง 550 ทำไม / เมื่อใดที่ฉันไม่ควรทำ


9

ในการต่อสู้ประจำวันกับสแปมมีหลายครั้งที่ฉันถูกล่อลวงให้บังคับใช้ข้อกำหนด DNS จากไคลเอนต์ที่เชื่อมต่อจากอินเทอร์เน็ตป่า

ในรายละเอียดฉันจะเพิ่มการตั้งค่าreject_unknown_reverse_client_hostnameในส่วนsmtpd_client_restrictionsของฉันตามที่:

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            reject_unknown_reverse_client_hostname
            reject_unauth_pipelining 

อย่างไรก็ตามฉันสังเกตเห็นว่าเมื่อกดปุ่มข้อ จำกัด ดังกล่าวพฤติกรรมของ Postfix ค่อนข้าง "อ่อน" เป็นค่าเริ่มต้นสำหรับunknown_client_reject_code450 ดังนั้นลูกค้าจะได้รับเชิญให้ลองใหม่

ในขณะที่ตรวจสอบการตอบสนอง 550 ฉันพบคำสั่งต่อไปนี้ในเอกสาร Postfix อย่างเป็นทางการ :

ป้อนคำอธิบายรูปภาพที่นี่

ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับRFC 5321ทั้งหมด แต่เป็นคนแก่พอที่จะรู้RFC 821ฉันไม่เห็นว่าทำไมการตอบสนอง 550 แทนที่จะเป็น 450 อาจส่งผลต่ออินสแตนซ์ Postfix ของฉันที่ระดับ SMTP สูงสุด ( ทำลายการปฏิบัติตาม RFC) โดยเฉพาะอย่างยิ่งการพิจารณาว่าในกรณีที่เกิดข้อผิดพลาดชั่วคราว Postfix จะยึดกับ 450 โดยไม่คำนึงถึงการตั้งค่าที่ชัดเจน

ดังนั้นใครบางคนสามารถช่วยฉันเข้าใจว่าปัญหาคืออะไรกับการทดแทนเช่นนี้?


PS: ในระหว่างนี้ฉันสิ้นสุดด้วยข้อ จำกัด "ผ่อนคลาย":

smtpd_client_restrictions = 
            permit_sasl_authenticated
            check_client_access hash:/etc/postfix/access 
            check_policy_service inet:127.0.0.1:4466
            warn_if_reject reject_unknown_reverse_client_hostname
            reject_non_fqdn_helo_hostname
            reject_unauth_pipelining 
            reject_invalid_helo_hostname 

คำตอบ:


12

ฉันจะเริ่มต้นด้วยคำตอบที่ใช้ได้จริงสองข้อ

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

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

นอกจากคำเหล่านี้แล้วยังมีคำตอบที่แสดงถึงทฤษฎีและ RFC มากขึ้น

RFC กล่าวในหัวข้อ 4.2.1 ที่:

กฎง่ายๆในการพิจารณาว่าการตอบกลับเหมาะกับหมวด 4yz หรือหมวด 5yz (ดูด้านล่าง) คือการตอบกลับเป็น 4yz หากพวกเขาสามารถประสบความสำเร็จได้หากทำซ้ำโดยไม่มีการเปลี่ยนแปลงใด ๆ ในรูปแบบคำสั่งหรือในคุณสมบัติของผู้ส่งหรือผู้รับ คำสั่งจะทำซ้ำเหมือนกันและผู้รับไม่ได้นำการติดตั้งใหม่ไปใช้)

ในกรณีที่การค้นหาแบบย้อนกลับล้มเหลวเป็นไปได้ที่ข้อความจะสามารถยอมรับได้โดยไม่มีการเปลี่ยนแปลงใด ๆ ในข้อความนั้นโดยมีเงื่อนไขว่ามีการแก้ไขข้อผิดพลาด DNS เท่านั้น ดังนั้นนี่เป็นข้อผิดพลาดชั่วคราว

ในกรณีที่ข้อความนั้นไม่ใช่จดหมายขยะผู้ดูแลระบบอีเมลที่ส่งอาจสังเกตเห็นข้อความแสดงข้อผิดพลาดและได้รับการแก้ไขปัญหา DNS เพื่อให้สามารถส่งข้อความได้โดยที่ผู้ใช้ไม่ต้องเข้าไปแทรกแซงและส่งข้อความอีกครั้ง และหากผู้ใช้ที่ส่งอีเมลนั้นเป็นผู้ดูแล mailserver และ / หรือรายการ DNS ของตนแม้ว่าพวกเขาจะได้รับการตีกลับอย่างถาวรโดยตรงพวกเขาจะไม่สามารถทำอะไรกับมันได้ - ต่างจากกรณีที่สะกดผิด ที่อยู่

แน่นอนว่าคุณยังคงอยู่ในสิทธิ์ที่จะปฏิเสธอีเมลด้วยเหตุผลใดก็ตาม


ฉันคิดเกี่ยวกับปัญหาชั่วคราวของ DNS แต่ .... ดูเหมือนว่าพวกเขาไม่ควรมีปัญหาเนื่องจาก ... " เซิร์ฟเวอร์ SMTP จะตอบกลับด้วยเสมอ 450 เมื่อการแมปล้มเหลวเนื่องจากเงื่อนไขข้อผิดพลาดชั่วคราว " สิ่งเหล่านี้ควรรวมถึงปัญหาการค้นหา DNS ชั่วคราว ไม่ใช่เหรอ สำหรับจุดที่สอง (BotNet, greylisting และอื่น ๆ ) ฟังดูสมเหตุสมผล: เมื่อลูกค้าไม่ใช้กลไกการจัดคิวที่เหมาะสมการตอบสนอง 4XX จะให้ผลแบบเดียวกันกับ 5XX ยังไงก็ตามฉันยังคงคิดถึงว่าทำไมสิ่งนี้ถึงส่งผลกระทบในระดับ RFC
Damiano Verzulli

2
@DamianoVerzulli มันจะใช้เมื่อการแมปล้มเหลวโดยมีข้อผิดพลาดไม่ใช่เมื่อ DNS ถูกกำหนดค่าผิดพลาดเพื่อส่งคืนชื่อที่ไม่ถูกต้องและจะได้รับการแก้ไขในภายหลัง ไม่ว่าในกรณีใดฉันได้ขยายประเด็นเล็กน้อยเกี่ยวกับ RFC
เจนนี่ D

1
ขอขอบคุณที่ชี้ไปยังส่วน RFC ที่เหมาะสม ฉันมุ่งเน้นไปนี้: "ตอบกลับมี 4yz ถ้าพวกเขาสามารถประสบความสำเร็จถ้าซ้ำโดยไม่มีการเปลี่ยนแปลงใด ๆในรูปแบบคำสั่งหรือในคุณสมบัติของSENDERหรือรับ" สิ่งแรกที่ฉันคาดเดาก็คือชื่อโฮสต์ DNS ของลูกค้ารวมถึงการจับคู่ DNS ย้อนกลับเป็นคุณสมบัติของผู้ส่ง ไม่ใช่เหรอ มิฉะนั้นฉันไม่เห็นสิ่งที่อาจเป็นคุณสมบัติผู้ส่ง (BTW: โปรดอย่าแสดงความคิดเห็นของฉันเป็นการส่วนตัวฉันสนใจในการสนทนานี้และขอบคุณที่ให้คะแนน! ขอบคุณสำหรับการแสดงความคิดเห็น!)
Damiano Verzulli

1
@DamianoVerzulli ชื่อโฮสต์ DNS ไม่ใช่คุณสมบัติของผู้ส่งจดหมายและไม่สามารถเปลี่ยนแปลงได้ภายในการกำหนดค่าจดหมายเซิร์ฟเวอร์ มันถูกควบคุมโดยเซิร์ฟเวอร์ DNS ที่มีสิทธิ์ซึ่งโดยปกติจะไม่ได้เป็นเซิร์ฟเวอร์เดียวกัน แต่ส่วนน้อยมากของเซิร์ฟเวอร์อีเมล บางครั้งมันไม่ได้ควบคุมภายในองค์กรเดียวกัน (ฉันไม่ได้ใช้มันเป็นการส่วนตัว - นี่เป็นการสนทนาของข้อเท็จจริงโดยไม่มีข้อโต้แย้งโฆษณา hominem ไม่มีอะไรที่จะเป็นการส่วนตัว! ฉันยอมรับว่ามันน่าสนใจมากและฉันไม่คิดว่ามันชัดเจนมีกรณีที่จะเป็น ทำเพื่อด้านอื่น ๆ เช่นกัน.)
Jenny D
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.