Score:3

จะตั้งค่า DNS ด้วยโดเมนที่อยู่ตรงกลางสำหรับ DKIM และ SPF ได้อย่างไร

ธง us

ฉันกำลังทำงานกับเครื่องมือที่ช่วยให้ผู้ใช้ส่งอีเมลได้ ฉันวางแผนที่จะใช้ MTA (Mail Transfer Agent) ในแบ็กเอนด์ เช่น AWS-SES หรือ Sendgrid เป็นต้น เพื่อให้อีเมลมาถึงกล่องจดหมายสูตรสำเร็จ ผู้ใช้จะต้องตั้งค่า DKIM/SPF โดยการกำหนดค่า DNS การตั้งค่าของโดเมนนั้นๆ

ตอนนี้ถ้าฉันยกตัวอย่าง SES ฉันรู้ว่าพวกเขา มี API ที่อนุญาตฉัน เพื่อเพิ่ม "ข้อมูลประจำตัว" และดึงข้อมูลระเบียน DNS ที่จำเป็นทั้งหมดกลับมาโดยใช้ API ฉันแน่ใจว่า Sendgrid และ MTA อื่นๆ มี API ที่คล้ายกันซึ่งอนุญาตให้เพิ่มข้อมูลระบุตัวตนและคืนระเบียน DNS เพื่อให้ผู้ใช้นำไปใช้ได้

ฉันแสดงการตั้งค่า DNS ของ DKIM ที่ส่งคืนแก่ผู้ใช้ และผู้ใช้เพิ่มการตั้งค่านี้ไปยังผู้ให้บริการ DNS ของพวกเขา และหลังจากนั้นเมื่อพวกเขาส่งอีเมล ผู้สร้างสูตรจะได้รับอย่างถูกต้อง (โดยไม่มีเนื้อหา "via amazonses.com" ในส่วนหัว)

ต่อไปนี้เป็นตัวอย่าง สมมติว่าเครื่องมือที่ฉันกำลังสร้างโฮสต์อยู่บน Chillybilly.xyz และหนึ่งในผู้ใช้ที่ใช้เครื่องมือของฉัน พวกเขามีโดเมนชื่อ frankthetank.xyz ซึ่งพวกเขาต้องการใช้เพื่อส่งอีเมลผ่านแพลตฟอร์มของฉัน .

เมื่อผู้ใช้พยายามยืนยันโดเมนของตนผ่านแพลตฟอร์มของฉัน ฉันจะกด API ที่กล่าวถึงข้างต้นใน AWS SES - และแสดงสิ่งนี้แก่ผู้ใช้:

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

หลังจากนั้นพวกเขาสามารถเพิ่มบันทึก CNAMES และ TXT เหล่านี้สำหรับ DKIM/SPF ที่ประสบความสำเร็จ และเริ่มส่งอีเมลได้ แต่ถ้าคุณมองอย่างใกล้ชิด พวกเขาจะเห็นว่าฉันใช้ SES เนื่องจากค่าของระเบียน CNAMES และ TXT เหล่านั้น และนั่นคือสิ่งที่ฉันต้องการหลีกเลี่ยง แต่ฉันต้องการเรียกสิ่งเหล่านั้นแทน 7nuk24xywyawocu6ctqjxmjasiaiq3vq.dkim.chillybilly.xyz ซึ่งจะแสดงแบรนด์ของฉัน แต่ในพื้นหลังนั้นจะยังคงชี้ไปที่ SES ที่ถูกต้อง

ตอนนี้ฉันรู้แล้วว่าสิ่งนี้เป็นไปได้ เพราะตอนที่ฉันสมัครใช้งาน ConvertKit พวกเขาแสดงให้ฉันเห็นดังนี้:

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

อย่างที่คุณเห็นค่าสองค่านั้นชี้ไปที่ converkit.com แต่เมื่อฉันเรียกใช้ผ่านการค้นหา DNS:

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

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

ฉันเห็นว่าในพื้นหลังนั้นชี้ไปที่ระเบียน MX และ TXT ที่เป็นของ Sendgrid ฉันจะบรรลุสิ่งนี้ได้อย่างไร (ฉันเชื่อว่าหลักการเดียวกันนี้จะนำไปใช้กับ SES หรือ MTA อื่นๆ ด้วย)


แก้ไข: ฉันลองสองสามอย่าง - และฉันตั้งค่า CNAME, MX และ TXT ใน Chillybilly.xyz (โดเมนของโครงการของฉัน) และฉันชี้ CNAMES สองรายการจาก frankthetank.xyz ที่ชื่อว่า spf.frankthetank.xyz และ dkim.frankthetankxyz

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.frankthetank.xyz&rtype=ALL&dns=google

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

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.frankthetank.xyz&rtype=ALL&dns=google

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

อย่างที่คุณเห็น ฉันสามารถบรรลุผลลัพธ์ที่คล้ายคลึงกันมากกับสิ่งที่ ConvertKit ทำกับ Sendgrid แต่ไม่ได้รับการตรวจสอบด้วยวิธีนี้ :(

ข้อแตกต่างเดียวที่ฉันเห็นเมื่อตรวจสอบการค้นหา DNS (ลิงก์ด้านบน) คือ CNAME ปรากฏในการค้นหาสำหรับฉันด้วย แต่ไม่ใช่ในกรณีของ Convertkit ฉันคิดว่าฉันใกล้จะแก้ปัญหาได้แล้ว แต่ไม่แน่ใจว่าขาดอะไรไป มีความคิดเห็นอย่างไร :)

anx avatar
fr flag
anx
พวกเขาจะรู้ว่าคุณจ้างผู้ให้บริการรายใด.. เมื่อพวกเขาเห็นจดหมายที่ส่งโดยผู้ให้บริการรายนั้น?
Rohan avatar
us flag
ไม่ นั่นคือประเด็นทั้งหมด เพื่อลบตราสินค้าของผู้ให้บริการและใส่ของเรา สิ่งที่เกิดขึ้นกับ DKIM/SPF มีข้อความแจ้งว่าลงนามโดยโดเมนของลูกค้า ดังนั้นจึงไม่ได้ระบุว่า "ผ่าน amazonses.com" หรืออะไรทำนองนั้นอีกต่อไป
Score:3
ธง ru

SPF แรก: หากคุณเปลี่ยน เช่น เรคคอร์ด SPF ขาออกของ sendgrid ซึ่งรวมอยู่ในเรคคอร์ด SPF ของคุณ พร้อมการสร้างแบรนด์ของคุณเอง ซึ่งในขณะเดียวกันคุณก็ทำหน้าที่ติดตามสิ่งที่ sendgrid อาจทำกับชื่อและที่อยู่ของเซิร์ฟเวอร์เมลขาออก คุณไม่ต้องการทำเช่นนั้น ดังนั้นหากคุณส่งผ่าน sendgrid คุณต้องรวม SPF ของ sendgrid ดังนั้น เนื่องจากคุณใช้ sendgrid คุณจึงไม่มีทางกำจัด "include: sendgrid.net" ในระเบียน SPF ของคุณโดยไม่สร้างความเจ็บปวดให้กับตัวเองได้

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

อย่างไรก็ตาม หากคุณต้องการลบ "การสร้างแบรนด์" ออกจากเซิร์ฟเวอร์เมลของ Amazon หรือ sendgrid วิธีเดียวคือต้องซื้อมัน เพราะทำโดย DNS ย้อนกลับ และพวกเขาจะไม่ชี้เซิร์ฟเวอร์ขาออกไปยังชื่อในเนมสเปซ DNS ของคุณ

Rohan avatar
us flag
โอเค คุณช่วยอธิบายเพิ่มเติมในส่วน "ซื้อขาด" ได้ไหม หมายความว่ามีอีกระดับหนึ่งสำหรับ SES และ SG ที่ฉันสมัครได้ และพวกเขาจะให้เซิร์ฟเวอร์ส่งเมลเฉพาะของฉันเอง แล้วคุณกำลังบอกว่าฉันจะต้องใช้ "reverse DNS" (ตอนนี้ฉันต้องตรวจสอบและเรียนรู้เกี่ยวกับสิ่งนั้นด้วย) เพื่อทำในสิ่งที่ฉันตั้งใจจะทำให้สำเร็จ ตัวเลือก "ซื้อขาด" - เหมือนกับการมีตัวเลือก "Dedicated IPs" ใน SES หรือไม่ - เหมือนคุณวอร์มอัพ IP เหล่านั้นแล้วใช้ - นั่นคือวิธีที่ฉันสามารถทำได้หรือไม่ บางทีมันอาจจะทำให้ฉันควบคุมสิ่งทั้งหมดได้มากขึ้น? ยังใหม่ & การเรียนรู้ ขอบคุณ :)
ru flag
"ซื้อพวกเขาออกไป" เป็นเรื่องตลกมากกว่า ประเด็นก็คือ อย่างน้อยที่อยู่ IPv4 ก็ค่อนข้างหายาก ดังนั้นฉันจะไม่กลั้นหายใจเพื่อให้พวกเขามอบเซิร์ฟเวอร์เฉพาะ (หรือแม้แต่ IP) ให้คุณเพื่อส่งจาก และ DNS ย้อนกลับจะได้รับการตรวจสอบอย่างแน่นอนโดยการรับเมลเซิร์ฟเวอร์ รวมถึง SPF และ DKIM และในบางกรณีแม้แต่ DMARC (ทั้งสองอย่างรวมกัน) แน่นอนว่าไม่มีใครห้ามไม่ให้คุณเรียกใช้บริการอีเมลของคุณเอง แต่นั่นก็มาพร้อมกับเงื่อนไขบางประการ ฉันไม่คุ้นเคยกับข้อเสนอของ Amazon แต่แม้แต่ gmail และ M365 (Microsoft) ก็ยังใช้ร้านค้าและ DNS ของตนเองเพื่ออนุญาต
ru flag
นอกจากนี้ยังเป็นการปกป้องการควบคุมของตนเองเหนือเซิร์ฟเวอร์เหล่านั้น ลองคิดดูในบริบทของนักส่งสแปม พวกเขาต้องการบริการที่มี oomf จำนวนมากเพื่อส่งสแปมออกจากโดเมนของตนเอง แต่ทั้ง Microsoft และ Google มีการกรองอีเมลขาออกเพื่อป้องกันสิ่งนั้น
Rohan avatar
us flag
`คำว่า "ซื้อขาด" เป็นเรื่องตลกมากกว่า` ไม่กี่นาทีต่อมาฉันก็รู้ว่า :'D `ดังนั้นฉันจึงไม่กลั้นหายใจที่จะให้เซิร์ฟเวอร์เฉพาะ (หรือแม้แต่ IP) แก่คุณเพื่อส่งจาก` - แต่พวกเขาทำ พวกเขามีตัวเลือก IP เฉพาะที่ฉันสามารถจ่ายเงินได้มากขึ้น ฉันจะลิงก์ไปยังเอกสาร ในความคิดเห็นถัดไป :) ฉันสามารถสร้างพูลของตัวเองจาก IP เหล่านี้ได้ ขึ้นอยู่กับว่าฉันต้องการแยกอีเมลขาออกตามหมวดหมู่หรือไม่ สิ่งที่ฉันยังคงพยายามเข้าใจคือพวกเขาจะอนุญาตให้ฉันทำ Reverse DNS ที่คุณพูดถึงกับ IP เฉพาะหรือไม่ :)
Rohan avatar
us flag
https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip.html
Rohan avatar
us flag
ปัญหาใหญ่เพียงอย่างเดียวของการใช้ IP เฉพาะแทนที่จะเป็นพูล IP ที่ใช้ร่วมกันขนาดใหญ่ที่พวกเขามี - คือฉันจะต้องอุ่นเครื่อง IP เฉพาะของฉันและทำให้พวกมันอบอุ่นตลอดเพื่อรักษารูปแบบการส่งใดก็ตามที่ฉันต้องการบรรลุผล นั่นหมายถึงการทำงานที่มากขึ้น และ algos เพื่อ maintian :)
Rohan avatar
us flag
เพิ่มการแก้ไข แจ้งให้เราทราบหากคุณมีความคิดใด ๆ :)
Score:1
ธง tl

คุณจึงทำได้เพียงแค่สร้างระเบียน CNAME ที่ชี้ไปยังระเบียนต้นฉบับ หรือเพียงแค่ใส่ค่า SPF ที่ถูกต้องเหมือนตัวอย่าง Convertkit แต่อยู่ภายใต้โดเมนของคุณ

หรือมีมิดเดิลแวร์ที่ต้องผ่านกระบวนการยืนยันโดเมนใน sendgrid/AWS สร้างระเบียน DNS บนโดเมนของคุณ ซึ่งคุณจะแจ้งลูกค้าของคุณให้ CNAME ทราบในระเบียน DNS ใหม่ที่คุณสร้างขึ้น จากนั้นดำเนินการยืนยันให้เสร็จสิ้นเมื่อลูกค้าคลิก ปุ่มเพื่อบอกว่าพวกเขาได้ทำสิ่งนี้แล้ว

สิ่งนี้จะไม่หยุดส่วนหัวของอีเมลหรือการติดตามระเบียน DNS เพื่อค้นหาผู้ให้บริการดั้งเดิม แต่สำหรับคนทั่วไป นี่คือสิ่งนี้ มีแนวโน้ม ละเอียด.

อย่างไรก็ตามฉันต้องการเตือนสิ่งนี้ - เลเยอร์ของการทำให้งงงวยนั้นสร้างความเสียหายที่เลเยอร์ DNS

ตัวอย่างเช่น SPF มีขีด จำกัด การค้นหาฮาร์ดโค้ดที่ชัดเจน 10 รายการใน RFC - Sendgrid เขียนเกี่ยวกับมันเอง - https://docs.sendgrid.com/ui/account-and-settings/spf-limitations

  • RFC เดิม. คุณมีความเสี่ยงสูงที่จะประสบปัญหานี้หากคุณสร้างความสับสนให้กับ SPF

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

ลองนึกภาพว่าอีเมลฉบับเดียวใช้เวลา 20 มิลลิวินาทีในการประมวลผลและส่งผ่าน MTA ด้วย DNS นี่เป็นกรณีตัวอย่างที่ดีที่สุดโดยสมมติว่า ตรรกะนี้ ถือเป็นจริง คุณสามารถส่งอีเมลได้ประมาณ 180,000 ฉบับต่อชั่วโมง หากเราต้องการเพิ่มเป็นสองเท่าโดยเพิ่มการค้นหา DNS พิเศษอย่างน้อย 1 รายการ อีเมลจำนวนนี้จะลดลงเหลือ 90,000 ฉบับต่อชั่วโมง หากคุณพึ่งพาปริมาณข้อมูล คุณจะต้องเพิ่มฮาร์ดแวร์เป็นสองเท่าเพื่อรักษาปริมาณงานเท่าเดิม

Rohan avatar
us flag
ขอบคุณสำหรับคำตอบโดยละเอียด :) แต่ประเด็นที่คุณพูดว่า "มีมิดเดิลแวร์..." นี่คือส่วนที่ฉันต้องการความช่วยเหลือจริงๆ วิธี "ที่ใช้ได้จริง" ในการสร้าง CNAME สำหรับลูกค้าของฉันซึ่งชี้ไปที่ระเบียน DNS ในโดเมนของฉันซึ่งนำไปสู่ ​​AWS ในที่สุด ฉันจะบรรลุสิ่งนี้ได้อย่างไร มีคำแนะนำใด ๆ ที่คุณสามารถชี้ให้ฉันดูได้หรือไม่? โดยเฉพาะอย่างยิ่งในส่วนที่ฉันสามารถสร้างมิดเดิลแวร์สำหรับระเบียน MX และ TXT นั่นคือสิ่งที่ฉันสับสน
Rohan avatar
us flag
เพิ่มการแก้ไข แจ้งให้เราทราบหากคุณมีความคิดใด ๆ :)
Rohan avatar
us flag
เฮ้ แอนโทนี่ คุณตรวจสอบการแก้ไขที่ฉันเพิ่มเข้าไปแล้วดูว่ามันให้แนวคิดอะไรเพิ่มเติมอีกไหม ฉันยังไม่พบวิธีแก้ปัญหาในทางปฏิบัติ ขอบคุณ :)
Score:1
ธง us

SG มีตัวเลือกที่เรียกว่า อัตโนมัติ_ความปลอดภัย ใน รับรองความถูกต้องของโดเมน เอพีไอ ฉันคิดว่าตัวเลือกนี้ในส่วนหลังจะช่วยให้ SG จัดการ/หมุนคีย์ DKIM และบันทึกอื่นๆ โดยใช้ระเบียน DNS ได้ดังนั้น เมื่อคุณกำหนดให้ตัวเลือกนี้เป็นจริง ระบบจะส่งคืนระเบียน CNAME แทนระเบียน MX และ TXT และระเบียน MX/TXT ได้รับการจัดการเบื้องหลังโดย SG

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

ส่วนที่น่าเชื่อถือเกี่ยวกับระเบียน CNAME คือระเบียน CNAME อื่นๆ สามารถชี้ไปที่ระเบียนเหล่านี้ได้อย่างง่ายดาย ผมก็เลยชี้ chillybilly.xyz -> ระเบียน SG CNAME ที่ฉันกลับมาจาก SG และฉันชี้ ระเบียน frankthetank.xyz -> ระเบียน CNAME ของ Chillybilly.xyz และสร้างตัวกลางระหว่างนั้น

กรุณาอย่าว่า Chillibilly.xyz เป็นโดเมนของแอปของฉันและ frankthetank.xyz เป็นโดเมนของลูกค้า นั่นคือสมมติฐานที่เรากำลังดำเนินการในขณะที่แก้ปัญหานี้

แน่นอนว่าตอนนี้ หนึ่งในคำตอบ ชี้ให้เห็นว่าสิ่งนี้จะเพิ่มการค้นหา DNS เนื่องจากเลเยอร์อื่นอยู่ระหว่างนั้น เรายังคงต้องประเมินว่าการทำเช่นนี้เหมาะสมสำหรับเราหรือไม่ หรือจะเพิ่มเวลาการส่งอีเมลเมื่อขยายขนาดในที่สุด แต่วิธีแก้ปัญหานั้นใช้ได้ผล ฉันคิดว่ามันเป็นการใช้งาน SG เท่านั้นที่ฉันคิด ฉันไม่สามารถใช้งานกับ AWS SES ได้ ฉันได้โทรหาพวกเขาเร็ว ๆ นี้ - ถ้าฉันรู้ดีกว่านี้ จะแก้ไขคำตอบนี้ :)

โพสต์คำตอบ

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