หน้าแรก / บทความ & คู่มือ / ตั้ง Radius Server กับ MikroTik ทำ WiFi Hotspot เก็บ Log 90 วัน
MikroTik Tutorial

ตั้ง Radius Server กับ MikroTik ทำ WiFi Hotspot เก็บ Log 90 วัน

โดย: AI Auto Poster 15/9/2569 เข้าชม: 3 ครั้ง
ตั้ง Radius Server กับ MikroTik ทำ WiFi Hotspot เก็บ Log 90 วัน
เรียนรู้วิธีตั้งค่า Radius Server ร่วมกับ MikroTik ทำระบบ WiFi Hotspot แจกคูปองผู้ใช้ พร้อมส่ง Syslog เก็บ Log ย้อนหลัง 90 วันตาม พ.ร.บ. คอมพิวเตอร์

เจ้าของหอพักไซส์ 120 ห้องโทรหาผมตอนสี่โมงเย็นด้วยน้ำเสียงตื่นตระหนก เพราะมีเจ้าหน้าที่ขอตรวจสอบข้อมูลการใช้งานอินเทอร์เน็ตย้อนหลัง 3 เดือนจากคดีฉ้อโกงออนไลน์ ปัญหาใหญ่คือ พอผมรีโมทเข้าไปดู MikroTik RB750Gr3 ของเขา ปรากฏว่าไฟล์ Log ทั้งหมดหายวับไปกับตา เพราะตัว Router เพิ่ง Reboot ตัวเองไปเมื่อสองวันก่อนเนื่องจากหน่วยความจำ RAM เต็มจากการรัน User Manager ในตัว

เหตุการณ์วันนั้นทำให้ผมต้องรีบเข้าไปปรับสถาปัตยกรรมระบบใหม่ทั้งหมด โดยแยกการยืนยันตัวตนและการจัดเก็บข้อมูลออกจากตัว Router วันนี้ผมในฐานะวิศวกรเครือข่าย SIAM-LOGIN เลยอยากมาแชร์ขั้นตอนการตั้งค่า Radius Server ร่วมกับ MikroTik เพื่อทำระบบ WiFi Hotspot แจกคูปองอย่างมืออาชีพ พร้อมวิธีส่ง Log ไปเก็บภายนอกย้อนหลัง 90 วันตาม พ.ร.บ. คอมพิวเตอร์ ที่เสถียร ไม่ล่ม และรองรับโหลดหนักได้จริงครับ

ทำไม MikroTik ตัวเดียว ถึงไม่ควรทำหน้าที่เก็บ Log ย้อนหลัง 90 วัน?

หลายคนเข้าใจผิดว่าซื้อ RouterOS แรงๆ มาตัวเดียวแล้วจะจบ ทั้งเปิด Captive Portal ออกคูปอง และสั่งให้มันบันทึก Log ลงใน Flash memory ของ MikroTik แต่ในความเป็นจริง Flash Storage (NAND) ของ MikroTik รุ่นทั่วไปมีขนาดเล็กมากเพียง 16MB ถึง 128MB เท่านั้น

เมื่อมีผู้ใช้งานต่อเข้า WiFi Hotspot หลายสิบคนพร้อมกัน Log การเชื่อมต่อหรือ NAT Traffic Log จะเกิดขึ้นมหาศาลทุกวินาที ผลลัพธ์ที่ตามมาคือ:

  • NAND พังไว: การเขียนข้อมูลลง Flash Memory ตลอดเวลาทำให้ Storage เสื่อมสภาพอย่างรวดเร็ว
  • Router ค้างและ Reboot: RAM ถูกดึงไปสร้าง Buffer บันทึก Log จนหมด ทำให้ระบบรวน
  • Log หายหมดเมื่อไฟดับ: หากบันทึกไว้ใน Memory เมื่อเครื่องดับหรือ Reboot ข้อมูล Log ทั้งหมดจะสูญหายทันที ซึ่งผิดกฎหมายเต็มๆ

ดังนั้น โซลูชันมาตรฐานสากลที่เราใช้ในงานติดตั้งของ SIAM-LOGIN คือการแยกหน้าที่ โดยใช้ MikroTik ทำหน้าที่ Routing และเป็น NAS (Network Access Server) แล้วโยนภาระการยืนยันตัวตนให้ Radius Server (เช่น FreeRADIUS) รวมถึงโยนการเก็บไฟล์ Log ไปให้ Centralized Syslog Server จัดการครับ

โครงสร้างการทำงาน: MikroTik + Radius Server + Syslog

ก่อนลงมือตั้งค่า เรามาดูภาพรวมการไหลของข้อมูลในระบบกันก่อนครับ:

1. ผู้ใช้เชื่อมต่อ Access Point และหน้า Captive Portal เด้งขึ้นมาให้กรอกรหัสคูปอง
2. MikroTik ส่งคำขอ Authentication ไปยัง Radius Server ผ่านพอร์ต UDP 1812
3. Radius Server ตรวจสอบ User/Password ในฐานข้อมูล (MySQL/MariaDB) และตอบกลับว่าให้อนุญาตหรือไม่ พร้อมส่งค่า Bandwidth Limit (Upload/Download)
4. เมื่อผู้ใช้เริ่มใช้งานอินเทอร์เน็ต MikroTik จะส่ง Accounting Log (เวลาเริ่ม-เลิก) ไปยัง Radius Server (พอร์ต 1813) และส่ง Traffic Syslog ไปยัง Log Server ย้อนหลัง 90 วัน (พอร์ต 514)

ขั้นตอนที่ 1: ตั้งค่า RADIUS Client บน MikroTik RouterOS

อันดับแรก ให้เข้าใช้งาน MikroTik ผ่าน Winbox จากนั้นไปที่เมนูเพื่อผูกเชื่อมต่อกับ Radius Server ดังนี้ครับ:

1. ไปที่เมนู RADIUS บน Winbox แล้วกดเครื่องหมาย + (Add)
2. ในช่อง Service ให้ติ๊กเลือก hotspot
3. ใส่ IP Address ของ Radius Server ในช่อง Address (เช่น 192.168.10.5)
4. กำหนดรหัสผ่านลับในช่อง Secret (ต้องตรงกันกับที่ตั้งไว้ในไฟล์ clients.conf ของ FreeRADIUS)
5. กำหนด Authentication Port เป็น 1812 และ Accounting Port เป็น 1813
6. กำหนด Timeout เป็น 3000ms (3 วินาที) เพื่อป้องกันการไทม์เอาท์หาก Network หนาแน่น แล้วกด Apply

ขั้นตอนที่ 2: ตั้งค่า Hotspot Server Profile ให้เรียกใช้ RADIUS

เมื่อสร้างข้อตกลง RADIUS Client เรียบร้อยแล้ว เราต้องสั่งให้ตัวระบบ WiFi Hotspot ของ MikroTik ดึงข้อมูลผู้ใช้จาก Radius Server แทน Local Database ครับ

1. ไปที่เมนู IP > Hotspot > แถบ Server Profiles
2. ดับเบิ้ลคลิกโปรไฟล์ Hotspot ที่ใช้งานอยู่ (เช่น hsprof1)
3. คลิกไปที่แถบ RADIUS
4. ติ๊กถูกที่ช่อง Use RADIUS
5. ติ๊กถูกที่ Accounting เพื่อส่งข้อมูลเวลาใช้งานกลับไปคิดเงินหรือตัดคูปอง
6. ในช่อง Interim Update ให้ตั้งค่าเป็น 00:05:00 (5 นาที) เพื่อให้ Router ส่งสัญญาณอัปเดตสถานะผู้ใช้งานไปยัง Radius Server ทุกๆ 5 นาที หากผู้ใช้ตัดสายหรือเน็ตหลุด ระบบคูปองจะได้เคลียร์ Session ออก ไม่กินเวลาคูปองฟรี

ขั้นตอนที่ 3: ตั้งค่าการส่ง Log ย้อนหลัง 90 วันไปยัง Syslog Server

การเก็บ Log ให้ถูกต้องตาม พ.ร.บ. คอมพิวเตอร์ ต้องมีข้อมูล Username, IP, MAC Address, วันเวลาเข้าออก และ NAT Session ที่ระบุ IP ปลายทาง เราจะส่งข้อมูลนี้ออกจาก MikroTik ไปยัง Log Server ภายนอกด้วยคำสั่งสคริปต์และการตั้งค่า Logging ครับ

1. ไปที่เมนู System > Logging > แถบ Actions
2. กด + (Add) ตั้งชื่อ Action ว่า Syslog-Server
3. ช่อง Type เลือกเป็น remote
4. ช่อง Remote Address ใส่ IP ของ Log Server (เช่น 192.168.10.6)
5. ช่อง Remote Port ใส่ 514 แล้วกด OK
6. สลับไปที่แถบ Rules กด + (Add) เพื่อกำหนดเหตุการณ์ที่ต้องการส่ง:
    - เลือก Topic hotspot,info ให้ Action เป็น Syslog-Server (สำหรับเก็บ Log การเข้าใช้งาน)
    - เลือก Topic firewall,info ให้ Action เป็น Syslog-Server (สำหรับเก็บ NAT Log ปลายทาง)

เพียงเท่านี้ Log ข้อมูลการใช้งาน WiFi Hotspot ทั้งหมดจะถูกส่งไปเก็บบันทึกบนเซิร์ฟเวอร์ภายนอกแบบ Real-time โดยไม่กินพื้นที่ NAND บน MikroTik แม้แต่น้อยครับ

เทคนิคจากประสบการณ์จริง: ป้องกัน Hotspot ค้างและระบบหลุด

จากประสบการณ์เซ็ตอัประบบ WiFi Hotspot ตามโรงแรมและหอพักมาหลายร้อยแห่ง ผมพบปัญหาบ่อยมากที่คนเซ็ตมักตกหลุมพราง นี่คือ 3 สิ่งที่ต้องทำเพิ่มเพื่อให้ระบบเสถียรที่สุดครับ:

1. เปิดใช้งาน RADIUS Incoming (CoA):
ไปที่เมนู RADIUS > กดปุ่ม Incoming > ติ๊ก Accept พอร์ต 3799 การเปิด CoA (Change of Authorization) จะทำให้ Radius Server สามารถส่งคำสั่ง Kick หรือเตะผู้ใช้ที่คูปองหมดอายุออกจาก MikroTik ได้ทันทีโดยไม่ต้องรอผู้ใช้ Log out เอง

2. ตั้งค่า Walled Garden ให้ถูกต้อง:
หากใช้ Captive Portal ที่มีระบบชำระเงินออนไลน์หรือสแกน QR Code อย่าลืมใส่โดเมนของธนาคารและ Gateway ชำระเงินไว้ใน IP Hotspot Walled Garden ไม่เช่นนั้นผู้ใช้จะไม่สามารถโหลดหน้าชำระเงินเพื่อซื้อคูปองได้ครับ

3. ทำ NTP Sync ให้เวลาตรงกันเสมอ:
ไปที่ System > NTP Client แล้วเปิดใช้งาน โดยชี้ไปยัง Time Server (เช่น pool.ntp.org) เพราะหากเวลาบน MikroTik ไม่ตรงกับ Radius Server และ Syslog Server ข้อมูล Log ที่บันทึกไว้จะใช้เป็นหลักฐานทางกฎหมายไม่ได้ทันทีครับ

สรุป

การแยกโซลูชัน Radius Server ร่วมกับ MikroTik ไม่เพียงแต่จะช่วยให้ระบบ WiFi Hotspot ออกคูปองทำงานได้อย่างลื่นไหลและรองรับผู้ใช้จำนวนมากได้พร้อมกัน แต่ยังเป็นหัวใจสำคัญในการทำตามกฎหมายเก็บ Log ย้อนหลัง 90 วันอย่างถูกต้อง ปลอดภัย และไม่สร้างภาระให้ Router ล่มกลางคัน

หากคุณเป็นเจ้าของธุรกิจ อพาร์ตเมนต์ หรือโรงแรม ที่กำลังเจอปัญหาระบบ Hotspot ล่มบ่อย Log หาย หรือต้องการวางระบบ Radius และ Captive Portal ที่ได้มาตรฐาน สามารถปรึกษาผมและทีมงาน SIAM-LOGIN ได้ตลอดเวลาครับ

Tags: ตั้งค่า Radius Server MikroTik WiFi Hotspot เก็บ Log ย้อนหลัง 90 วัน FreeRADIUS Syslog Server Captive Portal พ.ร.บ. คอมพิวเตอร์ RouterOS

คำถามที่พบบ่อยเกี่ยวกับบทความนี้ (FAQ)

Q: ทำไมต้องแยก Radius Server ออกมาจาก MikroTik ไม่ใช้ User Manager ในตัว?

เพราะ User Manager กินทรัพยากร CPU และ RAM ของ MikroTik สูงมาก หากมีผู้ใช้งาน Hotspot พร้อมกันจำนวนมากจะทำให้ Router แฮงค์ และพื้นที่เก็บข้อมูล Flash ในตัว MikroTik ไม่เพียงพอสำหรับเก็บบันทึก Log ย้อนหลัง 90 วันตามกฎหมาย

Q: หาก Radius Server ดับ ผู้ใช้งาน WiFi Hotspot จะยังใช้งานได้ไหม?

ผู้ใช้ที่ล็อกอินค้างอยู่เดิมอาจยังใช้เน็ตได้จนกว่าจะหมด Lease Time แต่ผู้ใช้ใหม่จะไม่สามารถยืนยันตัวตนผ่าน Captive Portal ได้ ดังนั้นในระบบใหญ่จึงนิยมทำ Radius Server แบบ Primary/Secondary (Redundancy) เพื่อรองรับ Failover ครับ

Q: การเก็บ Log ย้อนหลัง 90 วัน ต้องเก็บบันทึกข้อมูลอะไรบ้าง?

ตาม พ.ร.บ. คอมพิวเตอร์ ต้องเก็บบันทึก Username, IP Address ที่ได้รับ, MAC Address, วันเวลาเข้าและออกจากระบบ (Session Log) รวมทั้ง NAT Log ที่ระบุ IP และ Port ปลายทางเพื่อยืนยันตัวบุคคลได้อย่างถูกต้อง

Q: ซอฟต์แวร์ Radius Server ตัวไหนที่นิยมนำมาใช้คู่กับ MikroTik มากที่สุด?

นิยมใช้ FreeRADIUS ร่วมกับ daloRADIUS หรือพัฒนาระบบ Management ขึ้นเองบน Linux (Ubuntu/Debian) โดยใช้ MySQL/MariaDB เป็นฐานข้อมูลผู้ใช้ และใช้ rsyslog หรือ Graylog สำหรับเก็บ Syslog ภายนอก

ต้องการความช่วยเหลือหรือจ้างวางระบบ Network?

ทีมวิศวกร SIAM-LOGIN ยินดีให้คำปรึกษา ออกแบบระบบ และจัดส่งทีมเข้าติดตั้งหน้างาน