ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home ตรวจสอบและขอถอด IP ออกจาก Blacklist อีเมล

ตรวจสอบและขอถอด IP ออกจาก Blacklist อีเมล

Blacklist อีเมล หรือ DNSBL (DNS-based Blackhole List) คือรายชื่อ IP และโดเมนที่ถูกบันทึกว่าส่งสแปม เซิร์ฟเวอร์ผู้รับจำนวนมากจะตรวจ IP ของผู้ส่งกับรายชื่อเหล่านี้ทุกครั้งที่มีอีเมลเข้ามา ถ้าพบ ก็จะปฏิเสธหรือส่งเข้าโฟลเดอร์ Spam อาการที่เห็นคืออีเมลตีกลับพร้อมข้อความทำนอง 550 5.7.1 Service unavailable; Client host [203.0.113.10] blocked using zen.spamhaus.org

คู่มือนี้สำหรับผู้ที่ดูแล Mail Server เองบน Cloud Server หรือ Cloud VPS (Plesk, DirectAdmin หรือ Postfix/Exim ติดตั้งเอง) ครอบคลุมการตรวจว่า IP ติดรายการใดบ้าง การหาต้นเหตุ และการยื่นขอถอดชื่อ ข้อสำคัญที่สุดคือ ต้องหยุดต้นเหตุให้ได้ก่อนยื่นขอถอด เพราะหากยังมีสแปมออกไป IP จะกลับเข้ารายการอีกในเวลาไม่นาน และบางรายการจะถอดยากขึ้นในครั้งถัดไป

สิ่งที่ต้องเตรียม

  • IP สาธารณะที่เซิร์ฟเวอร์ใช้ส่งอีเมล (ดูได้จาก Diagnostic-Code ในอีเมลตีกลับ หรือจากหน้าข้อมูลเซิร์ฟเวอร์)
  • สิทธิ์ root หรือ sudo บนเซิร์ฟเวอร์ เพื่อตรวจคิวและ Log
  • สิทธิ์เข้าแผงควบคุมของบัญชีอีเมล เพื่อเปลี่ยนรหัสผ่านบัญชีที่ถูกเจาะ

หากใช้อีเมลบน Web Hosting แบบแชร์ หรือ Microsoft 365 / Google Workspace คุณไม่ได้เป็นเจ้าของ IP ผู้ส่ง ให้ส่งข้อความตีกลับมาให้ผู้ให้บริการตรวจสอบแทน

ขั้นตอนที่ 1: ตรวจว่า IP ติด Blacklist ใดบ้าง

วิธีที่ง่ายที่สุดคือใช้เว็บตรวจหลายรายการพร้อมกัน เช่น MXToolbox Blacklist Check (mxtoolbox.com/blacklists.aspx) หรือ multirbl.valli.org กรอก IP แล้วดูว่ารายการใดขึ้นว่า Listed จากนั้นตรวจรายการใหญ่โดยตรงด้วยเครื่องมือของเจ้าของรายการ เช่น Spamhaus IP and Domain Reputation Checker ที่ check.spamhaus.org ซึ่งจะบอกเหตุผลที่ติดด้วย

ตรวจจากบรรทัดคำสั่งก็ได้ โดยกลับลำดับตัวเลขของ IP แล้วต่อด้วยชื่อ DNSBL ตัวอย่าง IP 203.0.113.10 จะกลายเป็น 10.113.0.203

dig +short 10.113.0.203.zen.spamhaus.org
dig +short 10.113.0.203.b.barracudacentral.org
dig +short 10.113.0.203.bl.spamcop.net

ถ้าไม่มีผลลัพธ์ แปลว่าไม่ติดรายการนั้น ถ้าได้ค่าในรูป 127.0.0.x แปลว่าติด สำหรับ Spamhaus ZEN ค่าที่ได้บอกประเภทของรายการ

ค่าที่ได้รายการความหมายโดยย่อ
127.0.0.2SBLแหล่งสแปมที่ Spamhaus ตรวจยืนยันแล้ว
127.0.0.3CSSIP ที่ส่งอีเมลลักษณะสแปมหรือตั้งค่าไม่ถูกต้อง เช่น HELO ไม่ตรง
127.0.0.4-127.0.0.7XBLเครื่องที่ติดมัลแวร์หรือถูกใช้เป็น Proxy/Bot
127.0.0.10, 127.0.0.11PBLช่วง IP ที่เจ้าของเครือข่ายระบุว่าไม่ควรส่งอีเมลตรง
127.255.255.xไม่ใช่การติดรายการการสอบถามถูกปฏิเสธ มักเพราะถามผ่าน Public DNS

หมายเหตุ: Spamhaus ไม่ตอบคำถามที่มาจาก Public DNS Resolver เช่น 8.8.8.8 หรือ 1.1.1.1 ถ้าได้ค่า 127.255.255.254 ให้ตรวจผ่านหน้าเว็บ check.spamhaus.org แทน อย่าตีความว่าติด Blacklist

ขั้นตอนที่ 2: หาต้นเหตุและหยุดให้ได้

สาเหตุที่พบบ่อยที่สุดมีสามอย่าง: บัญชีอีเมลถูกขโมยรหัสผ่านแล้วใช้ส่งสแปม, สคริปต์บนเว็บ (เช่น ฟอร์มติดต่อหรือปลั๊กอิน WordPress ที่มีช่องโหว่) ถูกใช้ส่งอีเมล และเครื่องติดมัลแวร์ เริ่มจากดูว่าคิวมีอีเมลค้างผิดปกติหรือไม่

# Postfix (รวม Plesk): บรรทัดสุดท้ายบอกจำนวนอีเมลในคิว
sudo postqueue -p | tail -n 1

# Exim (DirectAdmin): นับจำนวนอีเมลในคิว
sudo exim -bpc

ถ้ามีหลักร้อยหรือหลักพันฉบับ แทบแน่ใจว่ามีการส่งสแปม ต่อไปหาว่าบัญชีใดส่งมากที่สุด

# Postfix บน Ubuntu (AlmaLinux/Rocky ใช้ /var/log/maillog)
sudo grep -o 'sasl_username=[^ ,]*' /var/log/mail.log | sort | uniq -c | sort -rn | head

# Exim (DirectAdmin)
sudo grep -o 'A=dovecot_[a-z]*:[^ ]*' /var/log/exim/mainlog | sort | uniq -c | sort -rn | head

บัญชีที่มีจำนวนสูงผิดปกติคือบัญชีที่ถูกเจาะ ให้เปลี่ยนรหัสผ่านเป็นรหัสใหม่ที่ยาวและไม่ซ้ำทันที หากไม่พบบัญชีที่ส่งผิดปกติแต่คิวยังเต็ม ต้นเหตุอาจเป็นสคริปต์ PHP ให้เปิดอีเมลฉบับหนึ่งในคิวดู Header

# Postfix: เปลี่ยน QUEUE_ID เป็นรหัสจาก postqueue -p
sudo postcat -q QUEUE_ID | head -n 40

# Exim: ดู Header ของอีเมลในคิว
sudo exim -Mvh MESSAGE_ID

Header X-PHP-Originating-Script (ถ้ามี) จะบอกชื่อไฟล์สคริปต์ที่ส่ง ให้ปิดหรืออัปเดตเว็บนั้น และสแกนหามัลแวร์

เมื่อหยุดต้นเหตุได้แล้ว ค่อยล้างอีเมลสแปมที่ค้างในคิว คำสั่งนี้ลบอีเมลทิ้งถาวร รวมถึงอีเมลปกติที่ยังรอส่ง จึงควรใช้เมื่อแน่ใจแล้วว่าคิวส่วนใหญ่เป็นสแปม

# Postfix: ลบทุกฉบับในคิว
sudo postsuper -d ALL

# Exim: ลบเฉพาะอีเมลจากผู้ส่งที่ถูกเจาะ
sudo exiqgrep -i -f '[email protected]' | xargs -r sudo exim -Mrm

ขั้นตอนที่ 3: ตรวจพื้นฐานของ Mail Server ก่อนยื่นขอถอด

  • PTR Record: IP ต้องมี Reverse DNS ชี้ไปยังชื่อ Hostname เช่น mail.example.com และชื่อนั้นต้องมี A Record ชี้กลับมาที่ IP เดิม ตรวจด้วย dig +short -x 203.0.113.10
  • HELO/EHLO: เซิร์ฟเวอร์ควรแนะนำตัวด้วยชื่อ Hostname เดียวกับ PTR ไม่ใช่ localhost
  • SPF, DKIM, DMARC: ตั้งค่าให้ครบตามคู่มือ ตั้งค่า SPF, DKIM และ DMARC
  • ไม่เป็น Open Relay: เซิร์ฟเวอร์ต้องไม่ยอมส่งต่ออีเมลให้ผู้ที่ไม่ได้ยืนยันตัวตน

ขั้นตอนที่ 4: ยื่นขอถอดชื่อ

รายการวิธีถอด
Spamhaus (SBL, CSS, XBL)ยื่นผ่าน check.spamhaus.org โดยกรอก IP แล้วทำตามขั้นตอนที่หน้าเว็บแนะนำ รายการ CSS และ XBL มักถอดได้เองเมื่อแก้ปัญหาแล้ว ส่วน SBL จะมีการตรวจสอบโดยทีมงาน
Spamhaus PBLไม่ได้แปลว่าส่งสแปม เป็นช่วง IP ที่เจ้าของเครือข่ายระบุไว้ หากเป็น Mail Server จริงที่มี PTR ถูกต้อง สามารถยื่นขอยกเว้นผ่านหน้าเดียวกันได้
Barracuda (BRBL)ยื่นแบบฟอร์ม Removal Request ที่ barracudacentral.org
SpamCopหลุดเองอัตโนมัติเมื่อไม่มีรายงานสแปมใหม่ช่วงหนึ่ง (โดยทั่วไปราว 24 ชั่วโมง)
UCEPROTECTLevel 1 หลุดเองเมื่อไม่มีสแปมใหม่ตามระยะที่เว็บไซต์กำหนด ส่วน Level 2 และ 3 เป็นการแบนทั้งช่วงเครือข่าย ไม่จำเป็นต้องจ่ายเงินเพื่อขอถอดด่วน ผู้ให้บริการอีเมลรายใหญ่ส่วนใหญ่ไม่ได้ใช้รายการนี้ตัดสิน
Microsoft (Outlook.com, Hotmail, Microsoft 365)ใช้รายการของตัวเอง ยื่นผ่าน Delist Portal ที่ sender.office.com สำหรับกรณี Microsoft 365 ปฏิเสธ
Gmailไม่มีระบบถอดรายการ ใช้ชื่อเสียงของ IP และโดเมน ติดตามได้ด้วย Google Postmaster Tools และแก้ที่การยืนยันตัวตนและเนื้อหา

ตอนกรอกแบบฟอร์ม ให้อธิบายสั้น ๆ และตรงไปตรงมาว่าพบต้นเหตุอะไรและแก้อย่างไร เช่น "บัญชี [email protected] ถูกขโมยรหัสผ่าน เปลี่ยนรหัสผ่านและล้างคิวแล้ว" อย่ายื่นซ้ำหลายครั้งในเวลาสั้น ๆ

ตรวจสอบผลลัพธ์

  • ตรวจซ้ำด้วย dig หรือเว็บตรวจหลังยื่นไปแล้ว บางรายการใช้เวลาไม่กี่นาที บางรายการหลายชั่วโมง และ DNS ของผู้รับอาจยังจำผลเก่าไว้ช่วงหนึ่ง
  • ดูคิวอีกครั้งในวันถัดไป จำนวนต้องกลับมาอยู่ในระดับปกติ (หลักหน่วยหรือศูนย์)
  • ส่งอีเมลทดสอบไปยังปลายทางที่เคยปฏิเสธ แล้วดูว่าไม่มีข้อความตีกลับ ความหมายของรหัสตีกลับดูได้ที่ ทำความเข้าใจอีเมลตีกลับและ SMTP Error Code

ปัญหาที่พบบ่อย

ถอดแล้วไม่กี่วันกลับเข้ารายการอีก

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

รหัสผ่านถูกเดาซ้ำ ๆ

บัญชีที่รหัสผ่านอ่อนมักถูกบอตเดาผ่าน SMTP และ IMAP ใช้ Fail2Ban ช่วยบล็อก IP ที่เดาผิดซ้ำ ผู้ใช้ Plesk ดูการจัดการได้ที่ ปลดบล็อก IP ที่ถูก Fail2Ban แบนบน Plesk

ตรวจแล้วไม่ติดรายการใดเลย แต่ยังถูกปฏิเสธ

ผู้รับบางรายใช้ระบบประเมินของตัวเอง เช่น Gmail และ Microsoft อ่านข้อความตีกลับให้ละเอียด มักมีรหัสหรือลิงก์ที่ระบุเหตุผลเจาะจง

IP ติด Blacklist ตั้งแต่ได้รับเซิร์ฟเวอร์มา

IP อาจเคยถูกใช้งานโดยผู้อื่นมาก่อน ให้ยื่นขอถอดตามขั้นตอนที่ 4 โดยระบุว่าเป็นเซิร์ฟเวอร์ใหม่ หรือแจ้งผู้ให้บริการเพื่อหารือทางเลือก

หากตรวจแล้วยังหาต้นเหตุไม่พบ หรือต้องการความช่วยเหลือเรื่อง PTR Record ของ IP ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security