ฉันพยายามที่จะคิดออกว่าทำไมอีเมลปลอมจะถูกส่งไปยังผู้ให้บริการอีเมลที่สำคัญ (gmail.com, outlook.com) แม้ว่าอีเมลถูกทำเครื่องหมายด้วยค่า hardfail
SPF อีเมลดังกล่าวจะถูกส่งไปยัง Microsoft Exchange ซึ่งกำลังส่งไปยังPermError
ระเบียน SPF เดียวกัน
ฉันกำลังส่งอีเมลโดยใช้โดเมน SOME_DOMAIN.com ซึ่งกำหนดเรคคอร์ด SPF ที่ใช้งานไม่ได้ อีเมลถูกส่งจากที่อยู่ IP ของฉันซึ่งไม่ได้ระบุไว้อย่างชัดเจนในบันทึก SPF ของ SOME_DOMAIN.com ระเบียน SPF สำหรับ SOME_DOMAIN.com มีคุณสมบัติสามประการต่อไปนี้สองรายการแรกเป็นการละเมิด SPF RFC-4408:
- ต้องมีมากกว่า 10 คำสั่ง DNS เพื่อแก้ไขระเบียน SPF
include:
ทั้งการเนื่องจาก - ข้อผิดพลาดทางไวยากรณ์ในหนึ่งในระเบียน SPF, python-spf ส่งข้อผิดพลาดในการแยกวิเคราะห์
- ระเบียน SPF มีทั้งกฎ
~all
และ-all
ทั้งสองบอกว่าชุดของที่อยู่ทั้งหมดควรsoftfail
และhardfail
อีเมลที่ส่งไปยังที่อยู่ outlook.com ที่ปลอมแปลงเป็น admin@SOME_DOMAIN.com จะมีข้อผิดพลาดต่อไปนี้ในส่วนหัว SMTP ของอีเมลที่ส่ง โดยปกติอีเมลนี้จะถูกส่งไปยังกล่องจดหมายของผู้ใช้ :
Received-SPF: PermError (: domain of SOME_DOMAIN.com used an invalid SPF mechanism)
Gmail จะส่งอีเมลไปยังกล่องจดหมายของผู้ใช้ แต่จะมีข้อผิดพลาด SPF แตกต่างกัน:
spf=hardfail (google.com: domain of admin@SOME_DOMAIN.COM does not designate x.x.x.x as permitted sender) smtp.mail=admin@SOME_DOMAIN.COM
แล้วเกิดอะไรขึ้นที่นี่? ทำไมอีเมลถูกส่งแม้จะมีค่า SPF hardfail
? การมีระเบียน SPF ที่ใช้งานไม่ได้หมายความว่าเซิร์ฟเวอร์ SMTP อื่นไม่สนใจค่า SPF ทั้งหมดหรือไม่ หรือมีบางอย่างที่ฉันขาดหายไปที่นี่ ...