EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC
หน้าหลัก / แท็ก / Mail
Mail

#Mail

10 บทความ
Mail
ดูดเมลเข้าระบบโดยไม่ทำลายกล่องจดหมายของคนอื่น
Linux

ดูดเมลเข้าระบบโดยไม่ทำลายกล่องจดหมายของคนอื่น

กล่องเมลที่แอปจะไปดึงของ เป็นกล่องที่คนใช้งานอยู่จริงทุกวัน — ดึงด้วย UNSEEN คือเมลหายเงียบเมื่อเจ้าของเปิดอ่านบนมือถือก่อน cron วิธีที่ถูกคือ UID SEARCH คู่กับ UIDVALIDITY และ BODY.PEEK พร้อมการกันซ้ำที่ต้องทำฝั่งเราเอง

#mail#imap#pop3#dovecot
อ่าน 10 นาที·13 ต.ค.
tinker ส่งเมลผ่าน แต่เว็บส่งไม่ออก — proc_open ที่ปิดอยู่ใน FPM
DirectAdmin

tinker ส่งเมลผ่าน แต่เว็บส่งไม่ออก — proc_open ที่ปิดอยู่ใน FPM

ทดสอบส่งเมลจาก tinker ผ่านฉลุย แต่พอกดจากฟอร์มจริงกลับไม่มีอะไรออกเลย และ mail log ไม่มีสักบรรทัด — เพราะ CLI กับ PHP-FPM ไม่ใช่ PHP ตัวเดียวกัน พร้อมสูตร SMTP AUTH ที่ใช้ได้จริงบนโฮสต์ DirectAdmin และกฎเรื่อง From ที่ห้ามพลาด

#mail#smtp#laravel#php
อ่าน 9 นาที·8 ต.ค.
บัญชีเมลถูกยึดจริง หรือแค่โดนเดารหัส พิสูจน์ให้ชี้ขาดก่อนแจ้ง
Security

บัญชีเมลถูกยึดจริง หรือแค่โดนเดารหัส พิสูจน์ให้ชี้ขาดก่อนแจ้ง

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

#mail#mail-forensics#exim#forensics
อ่าน 11 นาที·4 ต.ค.
Laravel หลัง proxy เห็น IP เป็น 127.0.0.1 — ฟอร์มเงียบ ไม่มี error
DirectAdmin

Laravel หลัง proxy เห็น IP เป็น 127.0.0.1 — ฟอร์มเงียบ ไม่มี error

ฟอร์มติดต่อบน DirectAdmin กดส่งแล้วขึ้นว่าไม่ใช่คน เมลไม่ออก แต่ log ทุกชั้นเงียบสนิท — ต้นเหตุคือ Laravel หลัง nginx-to-apache เห็น $request->ip() เป็น 127.0.0.1 ทำให้ด่านตรวจบอทไม่ผ่านแล้ว return ก่อนถึงบรรทัดส่งเมล พร้อมเหตุผลว่าทำไม TrustProxies ห้ามใส่ '*'

#laravel#php#nginx#php-fpm
อ่าน 9 นาที·16 ส.ค.
mailbox รหัสรั่ว ส่งสแปมออก 1,786 ฉบับ โดยที่ CSF/LFD ไม่เห็น
Security

mailbox รหัสรั่ว ส่งสแปมออก 1,786 ฉบับ โดยที่ CSF/LFD ไม่เห็น

เคสจริงของ mailbox ที่ถูกขโมยรหัสแล้วใช้ยิงสแปมออกนอกวันละ 50-75 ฉบับใต้เพดาน 200 ติดต่อกัน 4 สัปดาห์ โดย CSF/LFD/BFM ไม่ขยับเลยสักครั้ง เพราะมันนับแค่ auth ที่ล้มเหลว พร้อมคำถามชี้ขาดว่าโดนแฮ็กจริงหรือแค่โดนถล่ม ชุดคำสั่ง forensics บน exim และ playbook ขอปลดออกจาก blocklist

#mail#exim#security#csf
อ่าน 11 นาที·7 ส.ค.
ย้ายโดเมนเข้า Cloudflare แล้วเมลหาย — เพราะ record เมลถูกเปิดพร็อกซี (ส้ม)
Network

ย้ายโดเมนเข้า Cloudflare แล้วเมลหาย — เพราะ record เมลถูกเปิดพร็อกซี (ส้ม)

เพิ่มโดเมนเข้า Cloudflare ให้ DNS ตรงกับโฮสต์แล้วอยู่ดี ๆ เมลส่งเข้าไม่ได้ — สาเหตุที่เจอบ่อยสุดคือปล่อย record mail/smtp/pop เป็นพร็อกซี (เมฆส้ม) ทั้งที่พร็อกซี Cloudflare แบกแค่ HTTP/S บทความนี้สรุปกฎ record ไหนต้องเทา + กับดัก token/SSL

#cloudflare#dns#mail#security
อ่าน 7 นาที·17 ก.ค.
ลูกค้าเช็คเมลแล้วโดน firewall แบนยกออฟฟิศ — แก้ด้วย auto-whitelist จาก login
Security

ลูกค้าเช็คเมลแล้วโดน firewall แบนยกออฟฟิศ — แก้ด้วย auto-whitelist จาก login

พฤติกรรมลูกค้าเมลจริงหน้าตาเหมือน bot เป๊ะ — เครื่องในออฟฟิศยิงรหัสเก่ารัวๆ จนโดน CSF แบนทั้งวง บทความนี้เล่าระบบ auto-whitelist ที่เกาะเหตุการณ์ login สำเร็จ + GeoIP ไทย แล้ว temp allow 24 ชั่วโมง พร้อมกับดัก 5 ข้อที่เจ็บมาแล้ว

#csf#firewall#mail#exim
อ่าน 9 นาที·10 ก.ค.
ปลด CSF อัตโนมัติให้ออฟฟิศจริง แต่ไม่ปลดให้ attacker ด้วย geo+account gate
Security

ปลด CSF อัตโนมัติให้ออฟฟิศจริง แต่ไม่ปลดให้ attacker ด้วย geo+account gate

เคสจริง ออฟฟิศลูกค้า IP หมุนทุกวัน มี ghost device รหัสเก่าค้างทำให้ทั้งออฟฟิศโดน CSF บล็อกเป็นรอบ ๆ วิธีปลดอัตโนมัติด้วย gate แคบ account+geo ที่ปลดให้ออฟฟิศจริงแต่กันต่างชาติที่ brute creds.

#csf#firewall#brute-force#geoip
อ่าน 12 นาที·4 มิ.ย.
อ่าน exim mainlog หา stuck client — Mail Forensics ภาคแรก
Security

อ่าน exim mainlog หา stuck client — Mail Forensics ภาคแรก

วิธีไล่อ่าน /var/log/exim/mainlog แยกให้ออกว่าใครส่งเมลไม่ได้เพราะเครื่องในออฟฟิศใส่รหัสผิด กับใครเป็น attacker brute force ด้วยคำสั่งที่ผมใช้จริงตอนลูกค้าเร่งคำตอบ

#mail-forensics#exim#mail#smtp
อ่าน 12 นาที·23 พ.ค.
ไล่ Dovecot IMAP/POP fail บน DirectAdmin แล้วเก็บ log ยาว 90 วัน
Security

ไล่ Dovecot IMAP/POP fail บน DirectAdmin แล้วเก็บ log ยาว 90 วัน

ภาคต่อของ Mail Forensics — ไล่ IMAP/POP fail จาก /var/log/mail.log บน DirectAdmin, แยก stuck client กับ attacker ด้วย ratio ข้าม protocol, แล้วแก้ logrotate ให้เก็บ log ครบ 90 วันแทน default ที่หายภายในไม่กี่วัน

#mail#dovecot#imap#pop3
อ่าน 11 นาที·23 พ.ค.