
ปัญหา Email Spoofing และ Phishing เป็นหนึ่งในภัยคุกคามทางไซเบอร์ที่พบบ่อยที่สุด ผู้ไม่หวังดีสามารถส่งอีเมลปลอมในชื่อโดเมนของคุณไปหาลูกค้าหรือพันธมิตรทางธุรกิจ ทำให้เกิดความเสียหายต่อชื่อเสียงและความน่าเชื่อถือ บทความนี้จะอธิบายวิธีตั้งค่า SPF, DKIM และ DMARC ทีละขั้นตอน เพื่อปิดช่องโหว่และปกป้องโดเมนของคุณอย่างครบถ้วน
ภาพรวม SPF, DKIM, DMARC — ใครทำหน้าที่อะไร
ทั้งสามมาตรฐานนี้คือ Email Authentication ที่ทำงานบน DNS ของโดเมนคุณ ไม่ใช่ตัวแทนกันแต่ทำงานเสริมกันเป็นชั้น ๆ SPF ตรวจว่าใครส่งได้ DKIM ตรวจว่าเนื้อหาไม่ถูกแก้ และ DMARC เป็นนโยบายควบคุมว่าให้ทำอย่างไรเมื่อสองตัวแรกไม่ผ่าน ตารางด้านล่างสรุปบทบาท ชนิด Record และตัวอย่างค่าของแต่ละตัว เพื่อให้เห็นภาพก่อนลงมือตั้งค่าจริงทีละขั้นใน DNS ของโดเมน
| มาตรฐาน | ทำหน้าที่อะไร | ชนิด Record / ตำแหน่ง | ตัวอย่างค่า |
|---|---|---|---|
| SPF | ระบุว่า IP / เซิร์ฟเวอร์ใดได้รับอนุญาตให้ส่งอีเมลในนามโดเมน | TXT ที่ root (@) |
v=spf1 include:_spf.provider.com ~all |
| DKIM | ลงลายเซ็นดิจิทัลในอีเมล ยืนยันว่าเนื้อหาไม่ถูกดัดแปลงระหว่างทาง | TXT ที่ selector._domainkey |
v=DKIM1; k=rsa; p=MIGf... |
| DMARC | กำหนดนโยบายเมื่อ SPF/DKIM ไม่ผ่าน + รับรายงานความพยายาม Spoof | TXT ที่ _dmarc |
v=DMARC1; p=none; rua=mailto:... |
จุดสำคัญที่ต้องจำคือ ทั้งสามตัวเป็น TXT Record ที่ตั้งใน DNS Management ของโดเมนทั้งหมด ถ้าจดโดเมนและจัดการ DNS ที่ AsiaGB ผ่าน DirectAdmin คุณสามารถเพิ่มและแก้ไข Record เหล่านี้ได้เองทั้งหมดในที่เดียว ไม่ต้องพึ่ง provider ภายนอก
SPF คืออะไร และทำงานอย่างไร
SPF (Sender Policy Framework) คือ DNS TXT Record ที่ระบุว่าเซิร์ฟเวอร์ IP ใดบ้างได้รับอนุญาตให้ส่งอีเมลในนามโดเมนของคุณ เมื่อเซิร์ฟเวอร์ปลายทางได้รับอีเมล จะตรวจสอบ IP ของผู้ส่งกับ SPF Record ว่าตรงกันหรือไม่ ถ้าไม่ตรงก็จะตีว่าเป็นอีเมลน่าสงสัย
โครงสร้าง SPF Record
ตัวอย่าง SPF Record พื้นฐาน:
v=spf1 include:thirdpartydomain.com ip4:203.0.113.10 ~all
- v=spf1 — ประกาศว่าเป็น SPF version 1
- include: — รวม SPF ของ mail provider อื่น เช่น Google Workspace หรือ Mailchimp
- ip4: — อนุญาต IP address นี้โดยตรง
- ~all — SoftFail: อีเมลจาก IP ที่ไม่อยู่ใน list จะถูกทำเครื่องหมายน่าสงสัย (แนะนำสำหรับเริ่มต้น)
- -all — HardFail: ปฏิเสธทันที (ใช้เมื่อมั่นใจ 100% ว่า list ครบถ้วน)
วิธีเพิ่ม SPF Record บน DirectAdmin
- เข้า DirectAdmin → DNS Management
- เลือก Type เป็น TXT
- Name ใส่ @ (หมายถึง root domain)
- Value ใส่
v=spf1 include:YOUR-MAILPROVIDER.com ~all - บันทึกและรอ DNS propagate 1-4 ชั่วโมง
ข้อควรระวัง: มีได้เพียง 1 SPF Record ต่อโดเมน ถ้ามีหลาย TXT record ที่ขึ้นต้น v=spf1 จะทำให้ SPF ใช้งานไม่ได้ ต้องรวมทุก provider ไว้ใน Record เดียว โดยใช้ include: หลายตัวต่อกัน
ตั้งค่า SPF record ทีละขั้น (DNS TXT)
มาดูการตั้งค่า SPF จริงทีละขั้นตอนบน DNS Management ของโดเมน สมมติว่าคุณส่งอีเมลผ่าน mail server ของ AsiaGB และมีบริการ newsletter ภายนอกเพิ่มอีกหนึ่งเจ้า เป้าหมายคือรวมทุก source ที่ส่งในนามโดเมนไว้ใน SPF Record เดียว
- เข้า DirectAdmin → DNS Management ของโดเมนที่ต้องการ
- ตรวจก่อนว่ามี TXT ที่ขึ้นต้น
v=spf1อยู่แล้วหรือไม่ — ถ้ามีให้แก้ Record เดิม ไม่สร้างเพิ่ม - สร้าง/แก้ TXT Record: Name =
@, Type = TXT - กรอก Value โดยไล่ใส่ทุก source ที่ส่งจริง เช่น mail server หลัก + provider ภายนอก:
@ TXT "v=spf1 a mx include:_spf.asiagb-mail.com include:servers.mailprovider.net ~all"
a— อนุญาต IP ของ A record โดเมน (เซิร์ฟเวอร์เว็บที่ส่งเมลจากฟอร์มได้)mx— อนุญาต IP ของ MX server (server ที่รับ-ส่งเมลของโดเมน)include:— ดึง SPF ของ provider อื่นมารวม (ใส่ได้หลายตัวต่อกัน)~all— SoftFail ปิดท้ายเสมอ (เริ่มต้นใช้ ~all ก่อน แล้วค่อยเปลี่ยนเป็น -all เมื่อมั่นใจ)
หลังบันทึก ให้รอ DNS propagate ประมาณ 1-4 ชั่วโมง แล้วตรวจด้วยคำสั่ง dig TXT yourdomain.com หรือเครื่องมือออนไลน์ ว่าค่าที่ออกมาตรงกับที่ตั้งไว้ ข้อควรระวังเรื่อง 10 DNS lookups: SPF จำกัดจำนวน include: / a / mx ที่ทำให้เกิด DNS lookup รวมไม่เกิน 10 ครั้ง ถ้าเกินจะได้ผล PermError และ SPF ใช้ไม่ได้ — ถ้าใช้ provider เยอะ ให้ลด include ที่ไม่จำเป็นออก
ทดสอบก่อนเข้มงวด: อย่าเพิ่งใช้ -all (HardFail) ทันที เพราะถ้าลืม source ใด source หนึ่ง อีเมลจริงจะถูกตีกลับ เริ่มที่ ~all เก็บข้อมูลจาก DMARC report สัก 1-2 สัปดาห์ก่อน แล้วค่อยปรับเป็น -all
DKIM คืออะไร และทำงานอย่างไร
DKIM (DomainKeys Identified Mail) คือระบบ Digital Signature สำหรับอีเมล ทำงานโดยเซิร์ฟเวอร์ต้นทางจะเพิ่ม Signature ลงใน Header ของอีเมลทุกฉบับ เซิร์ฟเวอร์ปลายทางจะตรวจสอบ Signature นี้กับ Public Key ที่เผยแพร่ใน DNS หากตรงกันแสดงว่าอีเมลไม่ถูกดัดแปลงระหว่างทาง
โครงสร้าง DKIM Record
DKIM Record จะถูกเพิ่มที่ Subdomain รูปแบบ selector._domainkey.yourdomain.com เช่น:
mail._domainkey.yourdomain.com TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqG..."
- selector — ชื่อที่ mail server กำหนด เช่น "mail", "google", "s1"
- k=rsa — ใช้ RSA encryption
- p= — Public Key ที่ได้จาก mail provider
วิธีรับ DKIM Key
หาก hosting อีเมลกับ AsiaGB DKIM Key จะถูกสร้างอัตโนมัติ คุณสามารถดู Record ใน DirectAdmin → Email → DomainKeys เพื่อ copy ไปเพิ่มใน DNS ของโดเมน หาก hosting อีเมลกับ provider อื่น เช่น Google Workspace หรือ Microsoft 365 ให้ดู DKIM key จากหน้า Admin console ของ provider นั้น
ตั้งค่า DKIM (เปิดใน DirectAdmin + TXT)
DKIM ต่างจาก SPF ตรงที่ต้องสร้างคู่กุญแจ (private key เก็บที่ mail server, public key เผยแพร่ใน DNS) บน AsiaGB DirectAdmin จะช่วยสร้างกุญแจให้อัตโนมัติ คุณเพียงเปิดใช้งานแล้วนำ public key ไปใส่ DNS
- เข้า DirectAdmin → Email Manager → DKIM Keys (บางธีมอยู่ที่ E-Mail Accounts → DomainKeys)
- กดเปิดใช้งาน DKIM สำหรับโดเมน — ระบบจะสร้าง private key และแสดง public key ในรูป TXT พร้อม selector (มักเป็น
xหรือdefault) - คัดลอกค่า TXT ที่ระบบให้มา หากจัดการ DNS ที่เดียวกัน DirectAdmin มักเพิ่ม Record ให้อัตโนมัติแล้ว — ตรวจยืนยันใน DNS Management ว่ามี Record นี้:
x._domainkey TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ..."
ถ้า DNS โดเมนชี้ไปที่ provider อื่น (เช่น Cloudflare) ให้นำค่า public key ที่ได้จาก DirectAdmin ไปสร้าง TXT Record ด้วยตนเองที่ provider นั้น โดยใช้ Name เป็น selector._domainkey ตามที่ระบบกำหนด ส่วนเครื่องที่ใช้ Google Workspace หรือ Microsoft 365 ให้ดึง public key จากหน้า Admin ของบริการนั้นแทน เพราะ private key อยู่ที่ mail server ของผู้ให้บริการ
ระวังค่า p= ยาวเกิน 255 อักขระ: public key ของ DKIM มักยาวเกินขีดจำกัดของ TXT แต่ละ string DNS panel ส่วนใหญ่จัดการให้อัตโนมัติ แต่ถ้าใส่เองต้องแบ่งเป็นหลาย string ในเครื่องหมายคำพูด เช่น "v=DKIM1; k=rsa; " "p=MIGf..." มิฉะนั้น DKIM จะ verify ไม่ผ่าน
DMARC คืออะไร และทำงานอย่างไร
DMARC (Domain-based Message Authentication, Reporting, and Conformance) คือนโยบายที่บอกเซิร์ฟเวอร์ปลายทางว่าควรทำอย่างไรกับอีเมลที่ผ่าน SPF และ DKIM ไม่ได้ นอกจากนี้ยังส่ง Report กลับมาให้เจ้าของโดเมนทราบว่ามีใครพยายาม Spoofing บ้าง
โครงสร้าง DMARC Record
DMARC Record เพิ่มที่ _dmarc.yourdomain.com เป็น TXT Record:
v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100
- p=none — ตรวจสอบเท่านั้น ไม่ทำอะไรกับอีเมลที่ fail (ใช้ระยะแรก)
- p=quarantine — ส่งอีเมลที่ fail ไปยัง spam folder
- p=reject — ปฏิเสธอีเมลที่ fail โดยสิ้นเชิง (ปลอดภัยที่สุด)
- rua= — ส่ง Aggregate Report ไปยัง email นี้ (รายวัน)
- pct= — กำหนดเปอร์เซ็นต์อีเมลที่ apply นโยบาย (100 = ทั้งหมด)
ตั้งค่า DMARC policy (none→quarantine→reject, rua report)
DMARC คือชั้นบนสุดที่บอกเซิร์ฟเวอร์ปลายทางว่าให้ทำอย่างไรกับอีเมลที่ SPF/DKIM ไม่ผ่าน หัวใจของการตั้ง DMARC คือ ค่อย ๆ ไต่ระดับนโยบาย จาก none ไป quarantine แล้วจึง reject เพื่อไม่ให้อีเมลจริงพังระหว่างทาง สร้าง TXT Record ที่ _dmarc ดังนี้
- ขั้นที่ 1 — Monitor (p=none): เริ่มต้นด้วยโหมดเฝ้าดูอย่างเดียว ไม่กระทบ delivery แต่เปิดรับ report:
_dmarc TXT "v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=r; aspf=r; pct=100"
- ขั้นที่ 2 — Quarantine (p=quarantine): เมื่ออ่าน report แล้วมั่นใจว่า SPF/DKIM ครอบคลุม source จริงทั้งหมด เปลี่ยนเป็น quarantine ให้อีเมลที่ fail ตกลง spam:
_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100"
- ขั้นที่ 3 — Reject (p=reject): ขั้นเข้มงวดสุด ปฏิเสธอีเมลปลอมทันที ใช้เมื่อทุกอย่างเสถียรหลายสัปดาห์แล้ว:
_dmarc TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
ความหมายของแต่ละ tag ที่ใช้บ่อย:
- rua= — ที่อยู่รับ Aggregate Report (สรุปรายวันแบบ XML ว่ามีใครส่งในนามโดเมนบ้าง pass/fail เท่าไร)
- ruf= — ที่อยู่รับ Forensic Report (รายละเอียดต่อฉบับ ผู้รับบางรายไม่ส่งเพื่อความเป็นส่วนตัว)
- fo=1 — ส่ง forensic report เมื่อ SPF หรือ DKIM ตัวใดตัวหนึ่ง fail
- adkim / aspf — โหมด alignment:
r= relaxed (ยืดหยุ่น แนะนำ),s= strict (ต้องตรงเป๊ะ) - pct= — เปอร์เซ็นต์อีเมลที่ใช้นโยบาย ใช้ค่อย ๆ ทยอย เช่น
pct=25ก่อนขยับเป็น 100
rua report จะมาในรูปไฟล์ XML บีบอัด เปิดอ่านดิบ ๆ ค่อนข้างยาก แนะนำใช้บริการอ่าน DMARC report ที่แปลงเป็นกราฟ จะเห็นชัดว่ามี source ใดที่ยัง fail และควรเพิ่มเข้า SPF/DKIM ก่อนเลื่อนระดับนโยบาย
ลำดับการตั้งค่าที่แนะนำ
การตั้งค่า SPF, DKIM, DMARC ควรทำตามลำดับ เพื่อลดความเสี่ยงที่อีเมลจะถูก block โดยไม่ตั้งใจ:
- เพิ่ม SPF Record — เริ่มด้วย ~all (SoftFail) ก่อนเสมอ
- เพิ่ม DKIM Record — รับ Key จาก mail provider และเพิ่มใน DNS
- ทดสอบ SPF + DKIM — ส่งอีเมลทดสอบและตรวจสอบ Header ว่า pass ทั้งคู่
- เพิ่ม DMARC ด้วย p=none — รอรับ Report 1-2 สัปดาห์
- อ่าน Report และปรับ SPF — ตรวจสอบว่ามี mail server ใดที่ยังไม่ได้เพิ่ม
- เปลี่ยนเป็น p=quarantine — เมื่อมั่นใจว่า SPF ครอบคลุมครบถ้วน
- เปลี่ยนเป็น p=reject — ขั้นสุดท้าย เมื่อทุกอย่างเสถียร
เครื่องมือทดสอบ SPF, DKIM, DMARC
มีเครื่องมือออนไลน์ฟรีที่ช่วยตรวจสอบการตั้งค่าของคุณได้ทันที:
- MXToolbox (mxtoolbox.com) — ตรวจ SPF, DKIM, DMARC, MX Record ครบในที่เดียว
- mail-tester.com — ส่งอีเมลทดสอบและรับ Score พร้อมคำแนะนำ
- Google Admin Toolbox — สำหรับผู้ใช้ Google Workspace
- DMARC Analyzer — วิเคราะห์ DMARC Report โดยละเอียด
สรุปข้อดีของการตั้งค่าครบทั้ง 3: SPF ป้องกัน IP ที่ไม่ได้รับอนุญาต, DKIM รับรองความสมบูรณ์ของอีเมล, DMARC กำหนดนโยบายและรับรายงาน เมื่อตั้งครบทั้ง 3 อย่าง Deliverability ของอีเมลธุรกิจของคุณจะดีขึ้นอย่างเห็นได้ชัด และโอกาสที่คนอื่นจะ Spoof โดเมนคุณจะลดลงมาก
คำถามที่พบบ่อย (FAQ)
ต้องตั้ง SPF, DKIM, DMARC ครบทั้ง 3 เลยไหม
ควรครบทั้ง 3 เพราะทำงานเสริมกัน หากมีแค่ SPF อย่างเดียว ผู้ไม่หวังดียังปลอม display name หรือ forward เพื่อหลบได้ DKIM ปิดช่องการดัดแปลงเนื้อหา ส่วน DMARC คือตัวที่บังคับนโยบายและให้รายงาน ถ้าขาด DMARC คุณจะไม่รู้เลยว่ามีใครพยายาม spoof โดเมนอยู่ การมีครบทั้งสามจึงช่วยทั้งความปลอดภัยและ deliverability พร้อมกัน
ตั้งค่าแล้วต้องรอนานแค่ไหนถึงมีผล
เป็นเรื่องของ DNS propagation ปกติ TXT Record จะกระจายภายใน 1-4 ชั่วโมง แต่ขึ้นอยู่กับค่า TTL ของ Record เดิมด้วย ถ้า TTL ตั้งไว้สูง (เช่น 86400 วินาที = 1 วัน) อาจต้องรอจนกว่า cache เดิมหมดอายุ แนะนำให้ตั้ง TTL ต่ำ (เช่น 3600) ก่อนแก้ไขช่วงทดสอบ แล้วตรวจด้วย dig TXT yourdomain.com เพื่อยืนยันว่าค่าใหม่มีผลแล้ว
มี SPF กับ DKIM แล้ว ยังจำเป็นต้องมี DMARC ไหม
จำเป็น เพราะ SPF และ DKIM เป็นเพียงการตรวจสอบ แต่ไม่ได้บอกเซิร์ฟเวอร์ปลายทางว่าให้ทำอย่างไรเมื่อตรวจไม่ผ่าน DMARC คือชั้นที่กำหนดนโยบาย (none/quarantine/reject) และส่ง rua report กลับมาให้คุณเห็นว่ามีอีเมลปลอมจาก IP ใดบ้าง หากไม่มี DMARC อีเมลปลอมที่ fail SPF/DKIM อาจยังถูกส่งเข้า inbox ผู้รับได้อยู่
ตั้ง p=reject ตั้งแต่แรกเลยได้ไหม
ไม่แนะนำ การกระโดดไป p=reject ทันทีเสี่ยงที่อีเมลจริง (เช่น จากระบบส่งใบแจ้งหนี้ หรือ newsletter ที่ลืมเพิ่มใน SPF) จะถูกปฏิเสธทั้งหมด ควรเริ่มที่ p=none เพื่อเก็บ rua report ก่อนอย่างน้อย 1-2 สัปดาห์ ดูว่ามี source ใดยัง fail แล้วแก้ให้ครบ จากนั้นค่อยขยับเป็น quarantine และ reject ตามลำดับ
จดโดเมนพร้อม DNS Management ฟรี
AsiaGB รองรับการตั้งค่า TXT Record สำหรับ SPF, DKIM และ DMARC ผ่าน DirectAdmin DNS Management ครบทุกฟีเจอร์ จดโดเมน .com เพียง 500 บาท/ปี
จดโดเมนที่ AsiaGB