วิธีตั้งค่า Radius Server ร่วมกับ MikroTik สำหรับ WiFi Hotspot
ตี 2 คืนวันศุกร์ โทรศัพท์ผมดังขึ้นปลายสายเป็นเจ้าของอพาร์ตเมนต์ 5 อาคารในโซนนิคมอุตสาหกรรม น้ำเสียงเขาลนลานมากเพราะผู้เช่ากว่า 300 ห้องเข้าใช้งานอินเทอร์เน็ตไม่ได้เลย เหตุเกิดจากตัว Routerboard ของ MikroTik ที่เขาใช้รันระบบ User Manager ในตัว เกิดปัญหา Flash Memory เต็มและ CPU วิ่ง 100% จนระบบล่มทั้งแผง เหตุการณ์คืนนั้นทำให้ผมต้องวิ่งไปแก้ปัญหาหน้างานด่วน และเป็นจุดเริ่มต้นที่ทำให้ผมต้องผลักดันให้ลูกค้าทุกรายที่ดูแลผู้ใช้งานเกิน 100 คน เปลี่ยนมาใช้ระบบ Centralized Authentication ผ่าน Radius Server แยกต่างหากทันทีครับ
ในการทำระบบ WiFi Hotspot สำหรับหอพัก โรงแรม หรือองค์กรขนาดใหญ่ หากเราพึ่งพาแค่หน่วยความจำอันน้อยนิดของ MikroTik ในการเก็บข้อมูลผู้ใช้งานและ Log วันหนึ่งเมื่อปริมาณ User สูงขึ้น Router จะเริ่มหน่วงและค้างในที่สุด บทความนี้ผมจะพามาดูขั้นตอนการ ตั้งค่า Radius Server MikroTik เพื่อแบ่งเบาภาระของ Router และทำให้ระบบยืนยันตัวตนเสถียรขึ้นครับ
ทำไมต้องแยก Radius Server ออกจาก MikroTik?
หลายคนมักถามผมว่า ทำไมไม่ใช้ User Manager ที่ติดมากับ RouterOS คำตอบจากประสบการณ์จริงของผมมี 3 ข้อหลักๆ ครับ:
- ลดภาระการทำงานของ CPU และ Memory: MikroTik ถูกออกแบบมาให้ทำหน้าที่ Routing และ Packet Forwarding เป็นหลัก การโยนภาระฐานข้อมูลไปไว้ที่ FreeRADIUS หรือ Radius Server ภายนอก จะช่วยให้ MikroTik ทำงานได้ลื่นไหล ไม่ค้าง
- รองรับการขยายระบบหลายสาขา: หากคุณมี Router MikroTik 10 สาขา คุณไม่จำเป็นต้องสร้าง User แยก 10 เครื่อง แต่สามารถให้ MikroTik ทุกตัววิ่งมาตรวจสอบสิทธิ์ที่ Radius Server ศูนย์กลางเพียงเครื่องเดียว
- ความปลอดภัยและการจัดเก็บข้อมูล: การจัดเก็บข้อมูลผู้ใช้งานและสถิติการใช้งานบนฐานข้อมูล เช่น MySQL/MariaDB ช่วยให้การสำรองข้อมูล (Backup) และการปฏิบัติตาม พ.ร.บ.คอมพิวเตอร์ ทำได้สะดวกและปลอดภัยกว่ามาก
เตรียมความพร้อมก่อนเริ่มตั้งค่า Network Topology
ก่อนที่เราจะเริ่มกดคำสั่งใน Winbox ผมอยากให้ตระหนักเรื่องข้อมูลสถาปัตยกรรมเครือข่ายเสียก่อน สมมติโครงสร้างเครือข่ายของเราเป็นดังนี้ครับ:
- Radius Server IP: 192.168.88.10 (พอร์ตใช้งาน standard: Authentication 1812, Accounting 1813)
- MikroTik IP (NAS Address): 192.168.88.1
- Radius Secret Key: SiamLoginSecret2026 (รหัสผ่านเชื่อมต่อระหว่าง MikroTik กับ Radius)
ขั้นตอนที่ 1: การตั้งค่า Radius Client บน MikroTik
การทำให้ MikroTik ส่งคำขอยืนยันตัวตนไปยัง Radius Server สามารถทำได้ผ่าน Winbox ดังนี้ครับ:
1.1 เพิ่ม Radius Server ใน MikroTik
ไปที่เมนู Radius บน Winbox แล้วกดปุ่ม + (Add) เพื่อเพิ่มรายการใหม่
- ในช่อง Service ให้ติ๊กเลือก
hotspot(หรือติ๊กdhcp,wirelessเพิ่มเติมตามการใช้งาน) - ในช่อง Address ใส่ IP ของ Radius Server เช่น
192.168.88.10 - ในช่อง Secret ใส่รหัสผ่านความปลอดภัยที่ตรงกับฝั่ง Server เช่น
SiamLoginSecret2026 - ในช่อง Authentication Port ตั้งเป็น
1812และ Accounting Port ตั้งเป็น1813 - ปรับค่า Timeout เพิ่มเป็น
3000ms(3 วินาที) เพื่อป้องกันปัญหา Network Latency ชั่วคราวแล้วเชื่อมต่อไม่ผ่าน
1.2 เปิดใช้งาน Radius Incoming (CoA)
หากต้องการให้ Radius Server สามารถสั่งตัดการเชื่อมต่อของผู้ใช้ (Disconnect/Kick User) หรือเปลี่ยน Speed Package แบบ Real-time ได้ ให้กดปุ่ม Incoming ในหน้าต่าง Radius จากนั้นติ๊ก Accept และระบุ Port เป็น 3799
ขั้นตอนที่ 2: ตั้งค่า Hotspot Server Profile ให้เรียกใช้ Radius
หลังจากเพิ่ม Radius Client เรียบร้อยแล้ว เราต้องสั่งให้ระบบ Captive Portal ของ Hotspot วิ่งไปถาม Radius Server เมื่อมีผู้ใช้งานล็อกอิน
2.1 ปรับแต่ง Server Profile
ไปที่เมนู IP > Hotspot > แท็บ Server Profiles แล้วดับเบิลคลิก Profile ที่ใช้งานอยู่ (เช่น hsprof1)
- คลิกที่แท็บ RADIUS
- ติ๊กเลือก Use RADIUS
- ในหัวข้อ Accounting ให้ติ๊กเลือก Accounting เพื่อส่งข้อมูลการใช้งานเวลาและปริมาณรับส่งข้อมูลกลับไปยัง Server
- ในแท็บ Login แนะนำให้เลือกสไตล์การล็อกอิน เช่น
HTTP CHAPหรือHTTP PAPให้ตรงตามที่ Radius Server ของคุณรองรับ
3 จุดตกหลุมพรางที่ทำให้ Radius กับ MikroTik เชื่อมต่อไม่ผ่าน
จากประสบการณ์ที่ทีมงาน SIAM-LOGIN เข้าไปแก้ไขหน้างานให้ลูกค้า มักเจอปัญหาหลักๆ 3 ประการที่ทำให้ระบบไม่ทำงาน ดังนี้ครับ:
1. Radius Secret ไม่ตรงกัน
รหัสผ่าน Secret Key บน MikroTik กับในไฟล์คลังข้อมูลของ Radius Server (เช่น clients.conf ใน FreeRADIUS) ต้องตรงกันทุกตัวอักษร ทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ปัญหานี้พบบ่อยที่สุดถึง 60%
2. Firewall Filter บล็อกพอร์ต UDP
อย่าลืมตรวจสอบ IP Filter Rules บน MikroTik และ Firewall ฝั่ง Radius Server ว่าเปิดอนุญาตพอร์ต UDP 1812, 1813 และ 3799 แล้วหรือยัง หากมี Firewall กั้นอยู่ แพ็กเกจยืนยันตัวตนจะถูก Drop ทันที
3. ค่า NAS Identifier หรือ NAS IP ไม่ถูกต้อง
Radius Server บางแห่งบังคับตรวจสอบ NAS IP Address หรือ Client Identifier หาก MikroTik ส่ง IP ฝั่ง WAN ไป แต่ใน Server ลงทะเบียน IP ฝั่ง LAN ไว้ Radius จะปฏิเสธการเชื่อมต่อทันที
สรุปแนวทางจากประสบการณ์จริง
การแยกระบบยืนยันตัวตนด้วยการ ตั้งค่า Radius Server MikroTik คือหัวใจสำคัญของการทำระบบ WiFi Hotspot ระดับมืออาชีพครับ นอกจากจะช่วยเพิ่มความเสถียร ลดภาระตัวอุปกรณ์ Router แล้ว ยังเปิดโอกาสให้เราเชื่อมต่อกับระบบชำระเงินออนไลน์ ระบบคูปอง หรือระบบสมาชิกลูกค้าได้อย่างไร้ขีดจำกัด หากคุณกำลังเจอปัญหาระบบ WiFi ล่มบ่อยเพราะ User เต็ม ลองปรับเปลี่ยนสถาปัตยกรรมระบบตามคู่มือนี้ดูครับ
คำถามที่พบบ่อยเกี่ยวกับบทความนี้ (FAQ)
Q: หาก Radius Server ล่ม ผู้ใช้งานจะยังสามารถใช้อินเทอร์เน็ตได้หรือไม่?
ตามปกติหาก Radius Server ไม่ตอบสนอง MikroTik จะไม่สามารถตรวจสอบสิทธิ์ผู้ใช้ใหม่ได้ อย่างไรก็ดี หากตั้งค่า Bypass หรือมี Secondary Radius Server สำรองไว้ ระบบจะสลับไปใช้งาน Server สำรองทันที
Q: พอร์ตมาตรฐานที่ต้องเปิดสำหรับ Radius Server มีพอร์ตอะไรบ้าง?
พอร์ตหลักคือ UDP 1812 สำหรับ Authentication, UDP 1813 สำหรับ Accounting และ UDP 3799 สำหรับ Radius Incoming (CoA/Disconnect Messages)
ต้องการความช่วยเหลือหรือจ้างวางระบบ Network?
ทีมวิศวกร SIAM-LOGIN ยินดีให้คำปรึกษา ออกแบบระบบ และจัดส่งทีมเข้าติดตั้งหน้างาน