ฉันจะกำหนดค่า SPF สำหรับหลายโดเมนบนเซิร์ฟเวอร์ได้อย่างไร (อนุญาตให้ gmail เป็นผู้ส่งด้วย)


9

SPF (กรอบนโยบายผู้ส่ง) ดูเหมือนเป็นวิธีที่ดีในการต่อสู้กับสแปมเมอร์ / การปลอมแปลง

อย่างไรก็ตามแม้จะอ่านคำอธิบายหลาย ๆ ครั้งฉันก็ไม่ค่อยเข้าใจวิธีกำหนดค่าอย่างถูกต้อง


สมมติว่าผมมีเซิร์ฟเวอร์ของฉันที่a.x.comซึ่งเจ้าภาพwww.x.comและb.x.comและc.x.comและอื่น ๆ

ฉันยังมีa.co.uk b.net c.infoและอื่น ๆ แต่ละเหล่านี้มีการแบ่งประเภทของโดเมนย่อยทั้งหมดโฮสต์บนx.com

สำหรับโดเมนและโดเมนย่อยเหล่านี้ทั้งหมดฉันต้องการอนุญาตให้ส่งเมล a.x.com

ฉันต้องการให้ทุกคนอนุญาตให้ส่งอีเมลจาก Gmail สำหรับโดเมนเหล่านี้ทั้งหมด

ฉันจะตั้งค่านี้ด้วย SPF ได้อย่างไร

ฉันสามารถตั้งค่าระเบียน SPF หนึ่งรายการสำหรับx.com(หรือa.x.com) จากนั้นทุกอย่างอื่นจะมีการรวม / ตัวชี้แบบง่ายx.comเป็นบันทึกหรือไม่หรือจะต้องทำแตกต่างกันหรือไม่

ทุกคนสามารถให้ระเบียน SPF สำหรับตัวอย่างข้างต้นได้หรือไม่


หมายเหตุ:ส่วนที่สองของคำถามของฉันได้รับการตอบแล้ว (ใช้ " v=spf1 include:x.com -all" เพื่อรวม / ชี้ไปที่x.comระเบียนของ) แต่ส่วนสำคัญของสิ่งที่ตั้งไว้จะx.comยังไม่ได้รับคำตอบ ...


จริงๆแล้วมันได้รับการพิสูจน์แล้วว่าเป็นวิธีที่ไม่มีประสิทธิภาพในการลดสแปม ในความเป็นจริงมันเป็นความหมายเพียงเพื่อที่อยู่ที่อยู่ผู้ส่งปลอมแปลงอยู่แล้ว
คริสเอ็ดเวิร์ดส์

2
"การส่งที่อยู่การปลอมแปลงที่อยู่ผู้ส่ง" มีไว้เพื่อป้องกันสแปมเมอร์ไม่ให้ส่งจดหมายที่ดูเหมือนว่ามาจากโดเมนของผู้อื่น
Peter Boughton

คำตอบ:


7

คุณไม่สามารถหลีกเลี่ยงการแก้ไขไฟล์โซนสำหรับโดเมนอื่นที่ไม่ใช่ x.com ได้ แต่คุณสามารถช่วยตัวคุณเองได้ด้วยการกำหนดนโยบายทั่วไปที่โฮสต์ในโดเมนหนึ่งและใช้redirectคำหลัก SPF ในโดเมนอื่น ตัวอย่าง:

  • ใน zonefile สำหรับx.comโดเมน:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 ประกอบด้วย: _spf.google.com a: axcom -all"

_spf.google.comเป็นระเบียนที่เก็บระเบียน SPF ของ Gmail ไม่แน่ใจว่าเป็นเอกสารหรือไม่ ในทางทฤษฎีคุณควรinclude:gmail.comแต่นั่นคือการเปลี่ยนเส้นทาง_spf.google.comและมีอย่างน้อยหนึ่งแพทช์ SPF ที่ใช้กันอย่างแพร่หลายสำหรับ qmail ซึ่งไม่ได้ปฏิบัติตามอย่างถูกต้อง (ได้รับการแก้ไขในเดือนสิงหาคม 2008 แต่อาจยังคงถูกปรับใช้) นโยบายทั้งสองนี้เป็นตัวอย่าง การมีมากกว่าหนึ่งรายการที่มีระดับความเข้มงวดต่าง ๆ จะมีประโยชน์อย่างมากเมื่อทำการดีบั๊กเนื่องจากคุณต้องเปลี่ยนชื่อสั้น ๆ ในโดเมนเป้าหมายแทนการคัดลอกผิดพลาด

  • ใน zonefiles สำหรับโดเมนอื่น:
@ IN TXT "v = spf1 redirect = _policy1.x.com"

หรือ

@ IN TXT "v = spf1 redirect = _policy2.x.com"

ฯลฯ ฉันกำลังใช้redirectไม่ใช่includeเพื่อให้การตรวจสอบ SPF แทนที่ระเบียนที่ประเมินในปัจจุบันอย่างสมบูรณ์ด้วยรายการที่ฉันเปลี่ยนเส้นทางไป includeไม่ได้ทำเช่น - -allในตอนท้ายของการincludeไม่ก่อให้เกิดการประเมินที่จะหยุด ( includeเป็นผู้เรียกชื่อผิดใหญ่) คุณควรหลีกเลี่ยงการใช้includeเมื่อคุณต้องการ "นามแฝง" ระเบียน SPF จากโดเมนอื่นเนื่องจากมันค่อนข้างบอบบาง - หากคุณลืมส่วนท้ายโดยบังเอิญ - คุณอาจทำให้ค่า SPF ทั้งหมดของคุณในโดเมนนั้นไม่มีประสิทธิภาพ

แก้ไข: โปรดทราบว่าคุณต้องระวังหากคุณต้องการอนุญาตให้เซิร์ฟเวอร์ของ Gmail เป็นผู้ส่ง chaptcha ของ Gmail ได้รับการแตกซึ่งหมายความว่าเป็นไปได้ที่จะทำการสมัครบัญชีโดยอัตโนมัติซึ่งหมายความว่า Gmail สามารถใช้ (ทางอ้อม) เป็นรีเลย์แบบเปิด (ฉันได้รับคำขอลงทะเบียนสแปมบอทนับหมื่นต่อสัปดาห์สำหรับฟอรั่มสนทนาของ บริษัท ของฉัน ที่อยู่อีเมล gmail.com - และที่อยู่เหล่านี้เป็นแบบสดฉันได้รับอนุญาตให้ดำเนินการบางอย่างเพื่อตรวจสอบจุดประสงค์) นอกจากนี้ทุกคนที่มีบัญชี Gmail สามารถเลี่ยงการตรวจสอบ SPF ได้หากคุ้นเคยกับส่วนต่างๆของที่อยู่อีเมลในโดเมนของคุณ .


ขอบคุณนี่เป็นคำตอบที่เป็นประโยชน์ ครั้งสุดท้ายที่ฉันตรวจสอบ Gmail ต้องมีการตรวจสอบอีเมลก่อนที่คุณจะสามารถส่งอีเมลจากที่อยู่อื่น ๆ ได้ดังนั้นเมื่อกล่องขาเข้าสำหรับที่อยู่นั้นปลอดภัยสิ่งต่าง ๆ ก็ใช้ได้ ความสำคัญแค่ไหน / ไม่มีเส้น 'www' ในคำตอบของ bortzmeyer?
Peter Boughton

1
จริง แต่เมื่อรอยแตกปรากฏขึ้นในความโกลาหลฉันแน่ใจว่าบางคนจะหาทางบีบแม่น้ำครึ่งหนึ่งผ่าน :) ไม่บอกว่าคุณไม่ควรทำฉันแค่แนะนำให้ใช้นิ้วเท้าของคุณและตรวจสอบ Gmail เป็นระยะ ถูกนำไปใช้ประโยชน์เช่นโปรดอย่าละสิทธิ์ในการใช้งาน Gmail อย่างไม่มีกำหนด ฉันเชื่อใจพวกเขามากกว่าที่ฉันไว้วางใจเอนทิตีออนไลน์มากขึ้น แต่นั่นเป็นเพียงความไว้วางใจเล็กน้อยเมื่อเทียบกับที่ไม่ไว้วางใจเลย
Mihai Limbăşan

ฉันไม่รู้ว่าทำไม bortzmeyer จึงรวมรายการ www ไว้ พวกเขาไร้ประโยชน์อย่างสิ้นเชิงเว้นแต่ว่าคุณจะส่งจดหมายจาก @ www.x.com ซึ่ง (นอกเหนือจากการไม่ได้ใช้งานมาก) จะดูแปลก ๆ และสร้างความสับสนในผู้ที่มีความรู้ทางเทคนิคน้อยกว่า
Mihai Limbăşan

2
นอกจากนี้ฉันจะไม่ใช้ประเภทระเบียน SPF ฉันแนะนำให้คุณติดกับ TXT ประเภทเรคคอร์ด SPF ได้รับการสนับสนุนโดย BIND 9.4 และสูงกว่าต่อ RFC คุณต้องรักษาเรคคอร์ดของเรคคอร์ด TXT เช่นคุณต้องคัดลอกเนื้อหาของยาสีฟัน (ไม่ดี) และคุณต้องคงไว้ในซิงค์ (ฮาร์ด) การรับไม่มีอยู่เนื่องจาก TXT จะเป็นกลไกการจัดส่ง SPF หลักสำหรับอนาคตอันใกล้ quoth openspf.org
Mihai Limbăşan

1
@Mihai Limbasan: คำตอบที่ยอดเยี่ยมขอบคุณสำหรับการแบ่งปัน ในกรณีที่คุณคิดว่าจำเป็นต้องอัปเดตคำตอบของคุณ Google ดูเหมือนจะชอบv=spf1 include:_spf.google.com ~allแทนที่-allฉันเข้าใจว่าถูกต้องอ้างอิง google.com/support/a/bin/answer.py?answer=178723
Marco Demaio

4

ใช่คุณสามารถรวมการกำหนดค่าจากหนึ่งในโดเมนของคุณในระเบียน SPF สำหรับโดเมนอื่นทั้งหมด การตั้งค่าระเบียน SPF ของโดเมนอื่นเป็นดังต่อไปนี้ควรทำเคล็ดลับ:

v=spf1 include:x.com -all

สิ่งนี้ "ใช้งานได้" หรือจะต้องใช้โดเมนย่อย _spf หรือคล้ายกันหรือไม่
Peter Boughton

ฉันค่อนข้างแน่ใจว่าถ้าคุณมีระเบียน SPF ที่กำหนดโดยตรงบน x.com ในตอนแรกการรวมสำหรับโดเมนอื่น ๆ ก็สามารถชี้ไปที่ x.com โดยตรงเช่นกัน หากคุณกำหนดระเบียน SPF ของคุณในเส้นทาง _spf.x.com ใช่แล้วคุณจะต้องเปลี่ยนการรวมบิตเพื่อชี้ไปที่ FQDN นั้นเช่นกัน
womble

2

คุณลองใช้เครื่องมือเว็บที่http://www.openspf.org/หรือไม่ มันอาจทำให้ง่ายขึ้นสำหรับคุณที่จะจัดการกับเรื่องนี้ ...

เพียงป้อนโดเมนของคุณในกล่องด้านบนขวาและคลิกปุ่มไป จากตรงนั้นคุณควรจะรีบรีบรีบ


1
ฉันลองใช้เครื่องมือนั้นหลายครั้ง แต่คำอธิบายนั้นไม่ชัดเจนพอ
Peter Boughton

2

มาตรฐานRFC 4408มีตัวอย่างบางส่วนที่ใกล้เคียงกับที่คุณต้องการ นี่คือส่วนขยายของ zonefile ของ x.com:

@ IN TXT "v = spf1 a: axcom -all"
      ใน SPF "v = spf1 a: axcom -all"

www IN TXT "v = spf1 a: axcom - ทั้งหมด"
      ใน SPF "v = spf1 a: axcom -all"

หมายเหตุ:

  • ฉันไม่ได้เพิ่มเซิร์ฟเวอร์อีเมล Gmail เพราะฉันไม่รู้พวกเขาถามคน Gmail
  • 'a' ใช้สำหรับ 'address' ( ไม่ใช่ระเบียน DNS A แต่มี IPv6)
  • ฉันเพิ่มระเบียน SPF ตาม RFC แม้ว่าการใช้งานเกือบทั้งหมดจะใช้เฉพาะระเบียน TXT

1

ใช่คุณต้องเพิ่มระเบียน SPF เฉพาะสำหรับแต่ละโดเมน

สาเหตุของการทำเช่นนี้คือระเบียนประเภท aliasing (มีประโยชน์) เท่านั้นใน DNS คือCNAMEระเบียน อย่างไรก็ตามCNAMEบันทึกสาเหตุ aliasing ที่จะเกิดขึ้นทั้งหมดของ RRtypes ใน RRset - มีวิธีที่จะพูดว่า " CNAMEระเบียน SPF แต่ไม่MXบันทึก "


ฉันเข้าใจว่าฉันจะต้องเพิ่มระเบียน SPF สำหรับแต่ละโดเมน แต่ผมก็หวังว่าจะเพียงแค่เก็บง่ายชี้ไปยังโดเมนหลักที่ทุกคำสั่งที่ซับซ้อนมากขึ้นแล้วสามารถมีชีวิตอยู่ Womble แนะนำว่าฉันสามารถใช้การรวม: {domain} สำหรับสิ่งนี้ แต่ฉันยังไม่ชัดเจนว่าจะรวม / จุดที่ระเบียน SPF สำหรับโดเมนอื่นหรือไม่หรือหากฉันต้องการโฮสต์โดเมนย่อย _spf.x.com
Peter Boughton

ใช่ดูคำตอบของ womble
Alnitak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.