SMTP ของเครื่องพิมพ์ สแกนเนอร์ และแอปพลิเคชันรุ่นเก่ามักส่งอีเมลไม่ออก เมื่อผู้ให้บริการอีเมลปิดการยืนยันตัวตนแบบ Basic Auth (Username และ Password) สำหรับ SMTP AUTH และบังคับใช้ OAuth 2.0 แทน ทางแก้มี 4 แนวทาง คือ อัปเดตอุปกรณ์ให้รองรับ OAuth 2.0, ใช้ Direct Send, ตั้ง SMTP Relay ผ่าน Connector หรือใช้ SMTP Relay แยกที่องค์กรควบคุมเอง แต่ละแบบมีข้อจำกัดต่างกัน บทความนี้ช่วยให้เลือกได้ตรงกับอุปกรณ์ที่มีอยู่
ตัวอย่างที่ทีม IT ในไทยเจอบ่อยคือ Microsoft 365 ซึ่งประกาศแผนยุติ Basic Auth สำหรับ SMTP AUTH Client Submission ใน Exchange Online [ตรวจสอบ: Timeline ล่าสุดจากประกาศทางการของ Microsoft เนื่องจากมีการปรับกำหนดการมาแล้ว] ผู้ให้บริการรายอื่นก็มีทิศทางเดียวกัน เพราะ Basic Auth เสี่ยงต่อการถูกขโมยรหัสผ่านและโจมตีแบบ Password Spray
ทำไม SMTP แบบ Basic Auth ถึงถูกยกเลิก
Basic Auth ส่ง Username และ Password ไปพร้อมทุกการเชื่อมต่อ ถ้ารหัสผ่านรั่ว ผู้โจมตีใช้ส่งอีเมลในนามองค์กรได้ทันที และ MFA ป้องกันไม่ได้ เพราะโปรโตคอลนี้ไม่รองรับการยืนยันตัวตนขั้นที่สอง
OAuth 2.0 เปลี่ยนมาใช้ Access Token ที่มีอายุสั้นและกำหนดสิทธิ์ได้เฉพาะงาน ผู้ดูแลระบบเพิกถอน Token ได้โดยไม่ต้องเปลี่ยนรหัสผ่านทั้งบัญชี ข้อเสียคืออุปกรณ์รุ่นเก่าจำนวนมากไม่รองรับกลไกนี้ ข้อมูลเพิ่มเติมดูได้จาก เอกสาร Authenticated Client SMTP Submission ของ Microsoft
สำรวจอุปกรณ์ที่ใช้ SMTP ก่อนถึงกำหนด
เริ่มจากทำรายการสิ่งที่ส่งอีเมลผ่าน SMTP ทั้งหมด ซึ่งมักมีมากกว่าที่คิด
- เครื่องพิมพ์และเครื่องสแกนแบบ Scan-to-Email
- ระบบแจ้งเตือนจาก UPS, NAS, กล้องวงจรปิด และอุปกรณ์ Network
- แอปพลิเคชันภายใน เช่น ERP, ระบบ HR และสคริปต์ที่ส่งรายงานอัตโนมัติ
- เว็บไซต์ที่ส่งอีเมลยืนยันผ่าน Plugin SMTP
วิธีหาที่เร็วที่สุดคือดู Sign-in Log หรือรายงาน SMTP AUTH ในหน้า Admin ของผู้ให้บริการ แล้วกรองเฉพาะรายการที่ใช้ Basic Auth ทุกบัญชีที่ปรากฏคืออุปกรณ์ที่ต้องแก้
เปรียบเทียบทางเลือกสำหรับ SMTP หลังเลิก Basic Auth
| ทางเลือก | ส่งถึงผู้รับภายนอกได้ | ต้องมี IP คงที่ | เหมาะกับ |
|---|---|---|---|
| OAuth 2.0 บนอุปกรณ์ | ได้ | ไม่ต้อง | อุปกรณ์และแอปรุ่นใหม่ที่รองรับ |
| Direct Send | ไม่ได้ (ส่งได้เฉพาะผู้รับในโดเมนตัวเอง) | แนะนำให้มี | เครื่องพิมพ์ที่ส่งไฟล์สแกนให้พนักงานภายใน |
| SMTP Relay ผ่าน Connector | ได้ | ต้องมี หรือใช้ Certificate | สำนักงานที่มี Public IP คงที่ |
| SMTP Relay แยกที่องค์กรควบคุม | ได้ | ขึ้นกับการตั้งค่า | องค์กรที่มีอุปกรณ์หลากหลายและอยากจัดการจากจุดเดียว |
ทางเลือกที่ 1: อัปเดตให้รองรับ OAuth 2.0
ตรวจ Firmware ของเครื่องพิมพ์และเวอร์ชันของแอปก่อน ผู้ผลิตหลายรายเพิ่ม OAuth 2.0 ให้รุ่นที่ยังอยู่ในรอบ Support แล้ว ถ้าเป็นแอปที่พัฒนาเอง ให้เปลี่ยนไลบรารีส่งอีเมลเป็นแบบที่รองรับ XOAUTH2 และลงทะเบียนแอปกับระบบ Identity ของผู้ให้บริการ
ทางเลือกที่ 2: Direct Send
อุปกรณ์ส่งอีเมลตรงไปที่ MX Record ของโดเมนผ่านพอร์ต 25 โดยไม่ต้องยืนยันตัวตน ข้อจำกัดสำคัญคือส่งได้เฉพาะผู้รับในองค์กร และผู้ให้บริการบางรายมีตัวเลือกให้ปิด Direct Send เพื่อลดการปลอมแปลงอีเมล ต้องตรวจนโยบายขององค์กรก่อนเลือก
ทางเลือกที่ 3: SMTP Relay ผ่าน Connector
สร้าง Connector ที่อนุญาตให้ Public IP ของสำนักงานส่งอีเมลออกไปภายนอกได้ วิธีนี้เหมาะกับสำนักงานที่มี IP คงที่ ต้องเพิ่ม IP นั้นใน SPF Record ของโดเมนด้วย ไม่อย่างนั้นอีเมลมีโอกาสเข้า Spam
ทางเลือกที่ 4: SMTP Relay แยกที่องค์กรควบคุม
ตั้ง SMTP Relay ภายในหรือบน Cloud เช่น Postfix ให้อุปกรณ์ในเครือข่ายส่งเข้า Relay แล้ว Relay เป็นตัวยืนยันตัวตนกับปลายทางอีกชั้น วิธีนี้รวมจุดควบคุมไว้ที่เดียว กำหนด Rate Limit, จำกัด IP ต้นทาง และเก็บ Log ได้ละเอียด เหมาะกับองค์กรที่มีอุปกรณ์หลายร้อยเครื่อง
ขั้นตอนที่ 1: ทดสอบการเชื่อมต่อ SMTP ด้วยคำสั่ง
ก่อนแก้ค่าบนอุปกรณ์ ให้ทดสอบจากเครื่องในเครือข่ายเดียวกันว่าเชื่อมต่อ SMTP ปลายทางได้และรองรับ STARTTLS
openssl s_client -starttls smtp -connect smtp.example.com:587 -crlf
ถ้าเชื่อมต่อได้ ให้พิมพ์ EHLO test.local แล้วดูว่ามีบรรทัด AUTH แสดงกลไกอะไรบ้าง ถ้ามีเฉพาะ XOAUTH2 แปลว่าปลายทางไม่รับ Basic Auth แล้ว
