Saturday, 24 February 2018

MikroTik ป้องกันการ Login ซ้อน

หลายท่านที่เป็น admin คงเคยเจออาการการ login ซ้อนกันมานะคัรบที่จะมีข้อความแจ้งเตือนว่า simultaneous session limit reached for user กันมาบ้างวันนี้ผมจะเอา script จาก MikroTik forum มาบอกเล่ากันคัรบ (https://forum.mikrotik.com/viewtopic.php?t=123434)


:local uname $user;
:local usercount 0;
:local usertime "00:00:00";
:local kickable;
:local maxuser 3;

:foreach i in=[/ip hotspot active find user=$uname] do= {
  :local curup [/ip hotspot active get $i uptime];
  :if ( $curup > $usertime ) do={
        :set usertime $curup;
        :set kickable $i;
   }
  :set usercount ($usercount+1);
}
:if ($usercount >= $maxuser) do={
  :log info "Login user: $uname ($usercount/$maxuser) - Oldest $usertime will be logout!";
  /ip hotspot active remove numbers=$kickable;
} else {
   :log info "Login user: $uname ($usercount/$maxuser)";
}

จากตัวอย่างใน script เราจะต้องเอาไปวางไว้ในส่วนของ winbox => ip => hotspot => user profile แล้วตั้ง maxuser ให้ตามจำนวนที่ต้องการเช่นในตัวอย่างตั้ง 3 เพราะต้องการให้ login ได้ใช้งานแค่ 2 คนเท่านั่น


จากนั่นก็ไปแก้ที่ Shared Users ให้เท่ากับจำนวน maxuser ที่ใน script


เพียงเท่านี้เวลามีการ login ซ้อนเกิดขึ้นมา user แกสุดก็จะโดนเตะออกละคัรบ

Tuesday, 6 June 2017

MikroTik เก็บ Log การใช้งานด้วย Syslog Server

บทความในวันนี้เราจะพูดถึงเรื่องการเก็บ Log ใน MikroTik ด้วย Syslog Server นะคัรบ เรามาเริ่มทำความรู้จักกับ Syslog กันก่อนครับ Syslog คือมาตราฐานกลางของการเก็บ Log โดยตัว Syslog Server นั่นสามารถเก็บ Log ได้จากหลายอุปกรณ์ แล้วเรายังสามารถนำ Log ที่ได้มามาเข้าโปรแกรมพวก Analyze เพื่อแสดงผลออกมาเป็นรายงานในรูปแบบต่างๆ ได้ด้วยคัรบ เรื่องบทความการเอา Syslog มาทำเป็นรายงานเดียวไว้บทความหน้านะคัรบ


ในวันนี้เราจะมาดูวิธีการทำกันคัรบ ขั้นแรกเลยเราต้องมีเครื่อง Server ที่เป็น Linux ก่อนนะครับในที่นี้ผมจะใช้ตัว Ubuntu Server 16.04.2 LTS ดาวโหลดได้ที่นี้ครับ ในบทความนี้จะไม่กล่าวเรื่องการติดตั้ง Ubuntu นะครับเราจะเริ่มตอนติดตั้ง Syslog-ng package เลยคัรบ

ขั้นตอนแรกให้ # apt-get update กับ # apt-get upgrade ก่อนเลยคัรบ เพื่อนให้ update repository กับ upgrade package ในเครื่องครับ

# sudo apt-get update
# sudo apt-get upgrade



จากนั่นให้ติดตั้ง Syslog-ng Package 
# sudo apt-get install syslog-ng


เมื่อติดตั้งเสร็จเรียบร้อยแล้วให้ไปแก้ Configuration file ที่ /etc/syslog-ng/syslog-ng.conf แล้วเพิ่ม code ตามที่ใส่ไว้ในรูป

# sudo nano -c /etc/syslog-ng/syslog-ng.conf

# MikroTik - Syslog
source s_mikrotik { udp(port(514)); };


# MikroTik - Syslog
destination d_mikrotik { file("/var/log/mikrotik.${YEAR}${MONTH}${DAY}.log"); };


# MikroTik - Syslog
filter f_mikrotik { host("192.168.88.1"); };


# MikroTik - Syslog
log { source(s_mikrotik); destination(d_mikrotik); filter(f_mikrotik); };


ทำการ Start Service และตรวจดู Status ของ Syslog Service
# sudo service syslog-ng restart
# sudo service syslog-ng status


ตรวจเชคดูว่า UDP Port 514 ทำงานแล้วหรือยัง
#  netstat -na | grep 514


ทดลองทำการส่ง Message เข้าไปยัง Syslog Server
# logger -n 192.168.6.136 -t TEST -P 514 Hello Syslog Server

แสดงข้อมูลใน Syslog File
# tail -f /var/log/mikrotik.20170606.log


จากนั่นทำการตั้งค่าใน MikroTik ให้ส่ง Log มาที่ Syslog Server ที่เมนู Winbox => System => Logging



จากนั่นเมื่อกลับมาดูที่ Syslog File ใน /var/log ก็จะเห็ฯมี Log โผล่เข้ามาแล้ว


สำหรับใครกล้วกรณี Log เต็มหรือเราต้องการเก็บแค่ 90 วันล่าสุดก็ทำเพิ่มในส่วนของ Log Rotate ด้วยครับดังนี้

# nano /etc/logrotate.d/syslog-ng

แล้วเพิ่ม Code ส่วนด้านล่างลงใน Config File คัรบ

/var/log/*.log {
 daily
 rotate 90
 missingok
 compress
 notifempty
 missingok
 sharedscripts
 /etc/init.d/syslog-ng restart
 endscript
# invoke-rc.d syslog-ng reload > /dev/null
}

เพียงเท่านี้เราก็มี Syslog Server ไว้ใช้งานละคัรบ วันนี้จบละคัรบ

=============================
ห้างหุ้นส่วนจำกัด อินดี้ ไอที โซลูชั่น
Line: indyitgroup หรือ @indyit
Tel: 089-6494533

Friday, 28 April 2017

Block Web และแสดงหน้า Policy ให้ผู้ใช้งาน

วันนี้เราจะทำการ Redirect Web กันนะครับ โดยใน MikroTik นั่นมี Feature หนึ่งใน Firewall NAT ที่เราสามารถทำการ Redirect Web Request ของ Client ในเครือข่ายไปยัง Server ที่เราต้องการได้ เช่น ถ้าเราต้องการ Block Web แล้วแสดงหน้า Policy ว่ามีการ ฺBlock เกิดขึ้น เรามาดูขั้นตอนวิธีการทำกันดีกว่าครับ


ขั้นตอนนแรกให้เราเข้าไปที่ Winbox => IP => DNS => Static เพื่อไปตั้ง IP ไปยัง Web Server ที่เรา Host หน้าเว็บแจ้งเตือน Policy เอาไว้


จากนั่นให้ไปสร้างหน้า HTML แจ้งเตือนแล้ววางไว้ใน Web Server จากนั่นให้เราลองทำการ Request Web www.mthai.com ดุก็จะพบว่าหน้า Policy ได้ถูกแสดงขึ้นมาแล้ว



Sunday, 23 April 2017

MikroTik ตรวจเชคสถานะของ Access Point Up หรือ Down ด้วย Netwatch

วันนี้เรามีเทคนิคในการตรวจเชค Access Point ของเราว่ายังทำงานได้ดีอยู่หรือเปล่ามาแนะนำคัรบ MikroTik มีเครื่องมือตัวหนึ่งที่เราสามารถสั่งให้เชคการ Ping ไปยังอุปกรณ์ต่างๆ เช่น Access Point เพื่อทำการเชคสถานะว่า Up หรือ Down อยู่นั่นเองครับ เครื่องมือตัวนี้ชื่อว่า Netwatch ครับวันนี้เรามาดูวิธีการทำกันครับ

ขึ้นแรกเลยให้เรารู้ IP ของ Access Point ก่อนครับจากนั่นก็เข้าไปที่ Winbox => Tool => Netwatch ครับ





จากนั่นให้กด + เพื่อเพิ่ม Monitor ครับเพิ่ม

Host คือ IP ของ Access Point
Interval คือช่วงเวลาที่จะเชคเช่น เชคทุกๆ 1 วินาทีก็ใส่ 1000 ms
Timeout คือ เวลาที่ Ping ไปแล้วนานเท่าไรถึงจะถือว่า Timeout


ส่วน Up และ Down Tab นั่นเราสามารถใส่ Script เพื่อให้เวลาที่ Access Point Up หรือ Down ใหแจ้งเตือนผ่านทาง Email หรือ Line ได้ครับ ส่วนตัวอย่างการตั้งค่าให้ส่งแจ้งเตือนผ่านทาง Line ดูได้ตามนี้เลยคัรบ



Friday, 21 April 2017

รักษาความปลอดภัยให้ MikroTik ด้วยการปิด ฺBoardcast Discovery

MikroTik จะมี Feature หนึ่งที่ทำให้เราสะดวกสบายมากตัวหนึ่งที่ขื่อว่า Discovery MikroTik มันจะทำการ Scan หา MikroTik ที่มีใน Network นั่นๆ เพื่อให้ง่ายต่อการเข้า Config ผ่านทาง Winbox ที่เราคุ้นเคยนั่นเองคัรบ ที่นี้ไอ้เจ้า Feature นี้เองที่อาจจะทำให้ Hacker รู้ได้ว่าในระบบเรา MikroTik IP เป็นอะไร Mac address เป็นอะไร แล้วมี MikroTik ในระบบตัวไหนบ้าง นั่นคือความเสี่ยงที่อาจจะเกิดขึ้นได้คัรบ วันนี้เราจะมารู้วิธการปิด Discovery ตรงนี้กันครับ


ขั้นแรกให้ไปที่ Winbox => IP => Neighbors ให้เราเลือกปิด Interface ที่เราไม่ต้องการให้มีการ Boardcast Discovery MikroTik ดังในรูปผมจะปิดที่ Interface ether8 และ ether9 ครับ


เพียงเท่านี้เวลา Scan ใน Winbox เราก็จะไม่เจอ MikroTik แล้วละครับ



Tuesday, 11 April 2017

ตั้งค่า MikroTik แจ้งเตือนระบบด้วย Line API

วันนี้เราจะมาเรียนรู้วิธีการทำระบบการแจ้งเตือนผ่าน Line API เรามาเริ่มรู้จัก Line API กันก่อนดีกว่าคัรบ Line API คือ Web Service ที่จะทำให้คุณสามารถส่งข้อความของคุณเข้าห้องแชตได้ โดยสามารถส่งเข้าเป็นรายบุคคลหรือเป็นกลุ่มก็ได้


Thursday, 6 April 2017

วิธีการเชค Port Forward ใน Router

วันนี้ผมจะมาแนะนำวิธีการตรวจสอบเวลาเราตั้งค่าแล้ว แต่ระบบยังทำงานตามที่เราต้องการยังไม่ได้วันนี้มีวิธีทดสอบครับ ในปัจจุบันมีเว็บที่เราสามารถใส่ IP เข้าไปและ Port เพื่อเราสามารถตรวจสอบได้ http://www.yougetsignal.com

หน้าตาเว็บก้จะเป็นประมาณนี้นะคัรบ ในเว็บนี้มีเครื่องมือมากมายให้เราสามารถลองเทสระบบได้คัรบในบทความนี้จะขอกล่าวถึงแค่ Port Forwarding นะคัรบ ให้เรากดที่ Port Forwarding Tester



Wednesday, 26 October 2016

ลำดับความสำคัญของการเลือกต่อสัญญานของ IOS IPHONE IPAD

เคยสงสัยกันบ้างมั้ยครับว่าตัวมือถือ IPHONE ของเราเลือกต่อสัญญาน WiFi ยังไงว่าจะเลือกตัวไหนและทำไมต้องต่อตัวนี้ก่อน วันนี้เรามีคำตอบมาให้คัรบ IOS จะแบ่งกลุ่มของสัญญานออกเป้น 2 กลุ่มดังนี้
  • กลุ่มเครือข่ายที่เป็น Hotspot หรือ Captive Portal ระบบที่มีหน้า Login ให้ใส่ Username Password นั่นเองครับ
  • กลุ่มเครือข่ายที่เป็น WiFi ส่วนตัว


โดยตัว IOS จะประเมิญการต่อ WiFi จากระดับที่มีความปลอดภัยสูงที่สุดก่อน หรือ WiFi ส่วนตัวก่อนจากนั่นจึงค่อยไปพิจารณาเครือข่าย Hotspot

โดยระดับความสำคัญของเครือข่ายส่วนตัวดูได้ตังนี้
  1. เครือข่ายส่วนตัว: EAP
  2. เครือข่ายส่วนตัว: WPA
  3. เครือข่ายส่วนตัว: WEP
  4. เครือข่ายส่วนตัว: ไม่ปลอดภัย/เปิด
  5. เครือข่ายฮอตสปอต: HS2.0/Passpoint
  6. เครือข่ายฮอตสปอต: EAP
  7. เครือข่ายฮอตสปอต: WPA
  8. เครือข่ายฮอตสปอต: WEP
  9. เครือข่ายฮอตสปอต: ไม่ปลอดภัย/เปิด
ที่นี้มาถึงว่าถ้ามีหลายเครือข่ายที่มีความสำคัญเท่ากันละจะทำไง IOS ก็จะเลือกจากความแรงของสัญญาน WIFI ครับ

ขอบคุณครับ


ปัญหาต่อสัญญาน WiFi ด้วย iOS iPhone iPad Mac ไม่ได้

พอดีแอดมินได้เจอปัญหาข้อนี้บน iOS 10 เป็นต้นมากับระบบของ MikroTik ที่เปิดหน้า Hotspot ปัญหาที่เจอก็คืออุปกรณณ์พวก iPhone, iPad, Mac ไม่สามารถต่อสัญญาน WiFi ได้คัรบ แต่มือถือ Android ไม่มีปัญหาข้อนี้ครับ



มาดูสาเหตุของปัญหากันก่อนดีกว่าคัรบ ผมข้อสรุปเป็นขั้นตอนตามนี้คัรบ

  • พอ iOS ต่อสัญญาน WiFi เสร็จตัว iOS เองนั่นจะมีการร้องขอหน้าเว็บ captive.apple.com จากเว็บของทาง apple เองแต่ว่าหน้านี้โดน MikroTik ฺฺBlock อยู่ (ก็คือติดหน้า Authen นั่นเองครับ)
  • เมื่อ iOS ไม่ได้รับการตอบกลับจากหน้า captive.apple.com iOS จะทำการตัดการเชื่อต่อสัญญาน WiFi ทันทีนี้บละครับคือสาเหตุที่ทำไม เราถึงต่อสัญญาน WiFi แล้วหลุดตลอด
  • เมื่อเราเข้า Chrome ด้วย captive.apple.com จะเห็นว่ามีเพียงข้อความว่า Success เท่านั่นนะคัรบ


อ้าวละครับมาดูวิธีการแก้กันดีกว่าครับ ผมข้อสรุปเป็นขั้นตอนตามนี้คัรบ 
  • เข้า winbox ไปที่ winbox => ip => hotspot => walled garden เพิ่ม bypass สำหรับเว็บตามนี้เลยนะครับ 
    • ^www.apple.com
    • ^www.airport.us
    • ^www.itools.info
    • ^www.appleiphonecell.com
    • ^captive.apple.com
    • ^www.thinkdifferent.us
    • ^www.ibook.info

  • จากนั่นก็ทำการ reboot MikroTik สักรอบก็เรียบร้อยครับ iOS ก็สามารถต่อสัญญาน WiFi ได้ละคัรบ
ปัญหาข้อนี้ผมติดอยู่ 2 วันเลยที่เดียวคัรบเลยอยากจะแชร์ให้เพื่อนๆ ได้แก้ไขกันได้คับ
ขอบคุณครับ

Sunday, 11 September 2016

MikroTik จำกัดการใช้งาน Hotspot ครั้งละ 2 ชั่วโมง

วันนี้ผมจะยกตัวอย่างเคสหนึ่งที่เคยเจอนะครับ คือทางโรงเรียนไม่ต้องการให้เด็กนักเรียนใช้งานเกินครั้งละ 2 ชั่วโมง (คือเล่นได้ 2 ชั่วโมงแล้วอินเตอร์เน็ตจะตัดจะต้องทำการ Login ใหม่) เราจะตั้งค่า MikroTik อย่างไรให้สามารถจำกัดการใช้งานได้วันนี้เราจะมีดูตัวอย่างกันครับ ด้วยตัว MikroTik เองนั่นมี Feature นี้ให้ใช้งานอยู่แล้วครับ ชื่อว่า Session Timeout ซึ่งตัวนี้จะเป็นตัวกำหนดว่าในการ Login แต่ละครั้งนั่นจะอนุญาติให้ผู้ใช้งานได้ครั้งละนานเท่าไรครับ

Winbox => IP => Hotspot => User Profile


แต่ต้องอย่าลืมนะครับว่าต้องเอา Mac cookie กับ Cookie ออกด้วยนะครับ Feature นี้ถึงทำงานได้ครับที่
Winbox => IP => Hotspot =>Server Profile


ยังไงลองใช้งานกันดูครับติดขัดประการใดสอบถามได้ครับ