ตอนที่ 1: วิธีตั้งค่า Radius Server ร่วมกับ MikroTik ทำ Hotspot และเก็บ Log
กว่า 85% ของอพาร์ตเมนต์ โรงแรม และองค์กรขนาดกลางที่ผมเคยเข้าไปแก้ระบบเครือข่ายให้ มักจะเจอฝันร้ายเรื่อง MikroTik แฮงค์บ่อย นั่งไล่เช็กเน็ตหลุดไม่เว้นแต่ละวัน สาเหตุหลักไม่ได้มาจากตัวอุปกรณ์ MikroTik สเปกไม่ดีครับ แต่เกิดจากการขนทุกงาน ทั้ง Routing, การพิสูจน์ตัวตน Hotspot และการเก็บบันทึกข้อมูลจราจรทางคอมพิวเตอร์ไปยัดไว้ใน Router ตัวเดียว พอนักท่องเที่ยวหรือลูกบ้านใช้งานพร้อมกันหลักร้อยเครื่อง CPU ของ Router ก็แตะ 100% จนทำงานไม่ไหว
จากประสบการณ์ตรงของผมในฐานะวิศวกรเครือข่ายและผู้ให้บริการ SIAM-LOGIN Solution ทางออกที่เสถียรที่สุดคือการแยกหน้าที่อย่างชัดเจนครับ โดยให้ MikroTik ทำหน้าที่ Routing และจัดการ Traffic ส่วนภาระการตรวจสอบตัวตน (Authentication) และการจัดเก็บ Log ข้อมูลจราจรทางคอมพิวเตอร์ตาม พ.ร.บ. คอมพิวเตอร์ ให้เป็นหน้าที่ของ RADIUS Server ภายนอกโดยเฉพาะ บทความนี้ผมจะพามาดูวิธีตั้งค่า Radius Server ร่วมกับ MikroTik Router แบบทีละขั้นตอนที่คุณสามารถนำไปปรับใช้ได้จริงครับ
ทำไมต้องแยก RADIUS Server ออกจาก Router MikroTik?
ก่อนที่เราจะไปดูขั้นตอนการตั้งค่า ผมอยากให้เห็นภาพสถาปัตยกรรมเครือข่ายที่ถูกต้องก่อนครับ หลายคนสงสัยว่าในเมื่อ RouterOS มีฟีเจอร์ User Manager หรือ Hotspot Local DB อยู่แล้ว ทำไมเรายังต้องตั้ง RADIUS Server แยกออกมาต่างหาก?
- ลดภาระ CPU และ RAM บน MikroTik: การค้นหาข้อมูลผู้ใช้ (Username/Password) และการบันทึก Session การใช้งาน (Accounting) มีการเขียนอ่านข้อมูลตลอดเวลา หากทำบน Flash หรือ RAM ของ Router จะทำให้เครื่องช้าและอุปกรณ์เสื่อมสภาพเร็ว
- ความปลอดภัยและ พ.ร.บ. คอมพิวเตอร์: กฎหมายกำหนดให้มีการเก็บบันทึกข้อมูลจราจรทางคอมพิวเตอร์อย่างน้อย 90 วัน การส่ง Log ไปเก็บไว้ที่ Server ภายนอกช่วยป้องกันข้อมูลถูกแก้ไขหรือหายเมื่อ Router ถูกรีบูต
- รองรับการขยายระบบ (Scalability): หากคุณมี Router หลายสาขา คุณสามารถใช้ Radius Server เครื่องเดียวกันเป็นศูนย์กลางบริหารจัดการบัญชีผู้ใช้งานได้ทั้งหมด โดยไม่ต้องไปสร้างผู้ใช้ซ้ำบน MikroTik แต่ละตัว
สิ่งที่ต้องเตรียมก่อนเริ่มตั้งค่า Radius Server ร่วมกับ MikroTik Router
เพื่อให้การเชื่อมต่อเป็นไปอย่างราบรื่น คุณควรเตรียมข้อมูลและระบบตามรายการนี้ให้พร้อมก่อนครับ:
- MikroTik RouterOS: ตั้งค่าระบบเครือข่ายพื้นฐาน และสร้างบริการ WiFi Hotspot เรียบร้อยแล้ว
- RADIUS Server: อาจเป็น Linux Server ที่ติดตั้ง FreeRADIUS, ซอฟต์แวร์สำเร็จรูป หรือระบบ SIAM-LOGIN ที่ทำงานเป็น AAA Server (Authentication, Authorization, Accounting)
- IP Address & Shared Secret: หมายเลข IP ของ RADIUS Server และรหัสลับผ่าน (Shared Secret) ที่ใช้ยืนยันตัวตนระหว่าง MikroTik กับ RADIUS
ขั้นตอนตั้งค่า Radius Server ร่วมกับ MikroTik Router
ขั้นตอนที่ 1: เพิ่มการตั้งค่า RADIUS Client บน MikroTik
ขั้นตอนแรกเราต้องบอกให้ MikroTik รู้ว่า RADIUS Server อยู่ที่ไหน โดยการตั้งค่า RADIUS Client ผ่าน WinBox หรือ Command Line:
เปิดโปรแกรม WinBox แล้วไปที่เมนู RADIUS จากนั้นกดปุ่ม + (Add) เพื่อเพิ่มเซิร์ฟเวอร์ใหม่:
- Service: ติ๊กเลือก
hotspot(เพื่อใช้ยืนยันตัวตน Hotspot) และdhcpหรือwirelessตามลักษณะการใช้งาน - Address: ใส่ IP Address ของ RADIUS Server ของคุณ (เช่น 192.168.1.200 หรือ Public IP กรณีอยู่บน Cloud)
- Secret: ใส่รหัสผ่านลับ (Shared Secret) ที่ตรงกันกับฝั่ง RADIUS Server
- Authentication Port: ปกติคือ
1812 - Accounting Port: ปกติคือ
1813 - Timeout: ปรับเป็น
3000 ms(3 วินาที) เพื่อป้องกันเน็ตหลุดกรณี Network Latency สูง
ขั้นตอนที่ 2: เปิดใช้งาน RADIUS ใน Hotspot Server Profile
หลังจากเพิ่ม RADIUS Client แล้ว เราต้องสั่งให้ระบบ WiFi Hotspot บน MikroTik เปลี่ยนมาสอบถามข้อมูลจาก RADIUS Server แทนการตรวจสอบในตัวเครื่อง:
- ไปที่เมนู IP > Hotspot > แท็บ Server Profiles
- ดับเบิลคลิกที่ Profile ของ Hotspot ที่คุณใช้งานอยู่ (เช่น
hsprof1) - ไปที่แท็บ RADIUS
- ติ๊กเช็กบ็อกซ์ Use RADIUS
- ติ๊กเช็กบ็อกซ์ MAC Authentication หากต้องการใช้วิธีผูก MAC Address
- ในช่อง Default Domain หรือ Accounting ให้แน่ใจว่าได้เปิดใช้งานเพื่อส่งข้อมูล Session ไปยัง Server
ขั้นตอนที่ 3: ตั้งค่าการเก็บบันทึกข้อมูลจราจรทางคอมพิวเตอร์ (Log Management)
เพื่อให้ระบบเป็นไปตาม พ.ร.บ. คอมพิวเตอร์ การเก็บเพียงแค่ Accounting Session ของ Hotspot อาจยังไม่เพียงพอต่อการตรวจสอบกรณีเกิดเหตุการณ์ไม่พึงประสงค์ ผมแนะนำให้ตั้งค่า MikroTik ส่ง Syslog ข้อมูลการเชื่อมต่อ IP และ Port ไปยัง Centralized Log Server ร่วมด้วย:
- ไปที่เมนู System > Logging > แท็บ Actions แล้วเพิ่ม Remote Log Server โดยระบุ IP ของ Server
- ในแท็บ Rules เพิ่ม Rule ใหม่ เลือก Topics เป็น
hotspot, infoหรือfirewallแล้วเปลี่ยน Action เป็น Server ที่สร้างไว้ - เปิดใช้งาน Interim Update ใน RADIUS Client (เช่น กำหนดทุก 5 นาที) เพื่อให้ RADIUS Server อัปเดตปริมาณการรับส่งข้อมูลของผู้ใช้จริงตลอดเวลา
เทคนิคแก้ปัญหาที่พบบ่อย (Troubleshooting)
จากประสบการณ์ที่ผมเจอบ่อยในการติดตั้งงานจริง หาก MikroTik ไม่ยอมคุยกับ RADIUS Server ให้ตรวจสอบ 3 จุดนี้ครับ:
- Shared Secret ไม่ตรงกัน: ตัวอักษร พิมพ์เล็ก พิมพ์ใหญ่ หรือเว้นวรรคแม้แต่ตัวเดียวจะทำให้แพ็กเกจ RADIUS ถูกปฏิเสธ (Access-Reject) ทันที
- Firewall บล็อก Port 1812/1813: ตรวจสอบทั้ง IP Firewall บน MikroTik และ UFW/Iptables บน Linux Server ว่าเปิด UDP Port 1812 (Auth) และ 1813 (Acct) แล้วหรือยัง
- IP NAS Address ไม่ตรง: บน RADIUS Server ต้องระบุ IP ของ MikroTik (NAS IP) ให้ถูกต้อง หาก MikroTik ส่ง Request ไปด้วย IP อื่น RADIUS จะมองว่าเป็น Unknown Client
การบริหารจัดการระบบ WiFi Hotspot ขนาดใหญ่ไม่ควรมองข้ามเรื่องเสถียรภาพและกฎหมายครับ การเปลี่ยนมาใช้การ ตั้งค่า Radius Server ร่วมกับ MikroTik Router จะช่วยลดความเสี่ยงที่ Router แฮงค์จากภาระงานหนัก และทำให้การ เก็บบันทึกข้อมูลจราจรทางคอมพิวเตอร์ เป็นไปอย่างถูกต้องแม่นยำ พร้อมรองรับผู้ใช้งานจำนวนมากได้อย่างมืออาชีพครับ
คำถามที่พบบ่อยเกี่ยวกับบทความนี้ (FAQ)
Q: RADIUS Server จำเป็นต้องอยู่ในวง LAN เดียวกับ MikroTik หรือไม่?
ไม่จำเป็นครับ RADIUS Server สามารถตั้งอยู่บน Cloud หรือ Data Center ภายนอกได้ เพียงแค่ MikroTik Router สามารถสื่อสารผ่าน UDP Port 1812 และ 1813 ไปยัง IP ของ RADIUS Server ได้ และมีการระบุ Shared Secret ที่ถูกต้อง
Q: ทำไมใช้ User Manager บน MikroTik RouterOS แล้วเครื่องยังแฮงค์บ่อย?
เพราะ User Manager ใน RouterOS ยังคงใช้ CPU และ Flash Memory ของตัว Router ในการอ่านเขียน Database หากมีผู้ใช้งานจำนวนมาก หรือมีการเก็บบันทึกข้อมูลจราจรทางคอมพิวเตอร์ปริมาณสูง จะส่งผลให้ Router ทำงานหนัก การแยกไปใช้ External RADIUS Server จึงเป็นทางเลือกที่เสถียรกว่าครับ
Q: การเก็บ Log ผ่าน RADIUS Accounting เพียงพอต่อ พ.ร.บ. คอมพิวเตอร์ หรือไม่?
RADIUS Accounting เก็บเพียงข้อมูลการเข้า-ออกระบบ ปริมาณการใช้งาน และ IP ที่ได้รับ แต่หากต้องการให้ครอบคลุมตาม พ.ร.บ. คอมพิวเตอร์ ควรตั้งค่าส่ง Syslog ข้อมูล Connection Tracking (NAT Log) ไปยัง Log Server ภายนอกร่วมด้วยครับ
ต้องการความช่วยเหลือหรือจ้างวางระบบ Network?
ทีมวิศวกร SIAM-LOGIN ยินดีให้คำปรึกษา ออกแบบระบบ และจัดส่งทีมเข้าติดตั้งหน้างาน