Welcome to Sysnet Board คู่มือ การใช้งานอุปกรณ์ Network. Please log in or sign up.
สมาชิกทั้งหมด
17,949
กระทู้ทั้งหมด
9,945
หัวข้อทั้งหมด
4,633

  • เก็บ Log การใช้งาน Internet จาก Mikrotik Router
    เริ่มโดย yod
    Read 103,638 times
0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้
yod

เก็บ Log การใช้งาน Internet จาก Mikrotik Router




เคยทำไว้นานแล้วครับ และในหัวข้อนี้จะมีการเก็บเพิ่มเติมในส่วนหมายเลข IP Address และ Mac Address ที่ Login เข้ามาด้วย User อะไร ซึ่งจะช่วยให้ตรวจสอบได้ง่ายขึ้นครับ

ข้อเสียสำหรับการเก็บ log แบบนี้คือถ้า User เยอะ จะใช้เนื้อที่ในการจัดเก็บค่อนข้างเยอะ ไม่ควรใช้กับระบบที่ Users ใช้งานพร้อมๆกันเกิน 30-50 Users ครับ และจะเปลือง Traffice ในเครือข่ายค่อนข้างมาก เพราะจะต้องส่งข้อมูลไปยังเครื่อง Syslog Server ผ่านสาย Lan หรือ Wireless จะไม่เหมือนพวกโปรแกรม Internet Billing ที่ติดตั้งบนเครื่อง Computer โดยตรง เพราะข้อมูลจะบันทึกลง Harddisk ผ่านสาย SATA ซึ่งจะเร็วกว่าเยอะและไม่รบกวน Traffic บนเครือข่าย และที่สำคัญคือ จะไม่ตรงกับ พรบ. ในเรื่องของการเข้ารหัสของไฟล์ข้อมูล

แต่ก็อีกละครับ ดีกว่าไม่มี อย่างน้อยเวลามีเรื่องมีราวขึ้นมาก็ยังพอตรวจสอบกันได้ครับ  ;D ;D


เครื่อง NAS ที่มี Service Syslog Server เดี๋ยวนี้ผมไม่แน่ใจว่ามียี่ห้อหรือรุ่นไหนบ้างครับ เดี๋ยวหาข้อมูลจากผู้นำเข้าแต่ละรายให้อีกที ในตัวอย่างผมใช้ NAS ของ Synology รุ่น DS213+ ซึ่งถ้าเอามาเก็บ Log อย่างเดียว ไม่ค่อยคุ้มครับ แต่พอดีผมเอามาใช้ Backup งานและก็ไว้ Download Bittorrent ด้วย ถ้าประหยัดๆ ก็น่าจะเป็นพวก Zyxel หรือ DLink ก็ได้ครับ หรือจะใช้เครื่อง Atom มาลง Linux พวก Ubutu หรือ CentOS และลง Syslog-ng ก็ได้เช่นกัน

ผมเคยทำโปรแกรม Syslog Server เอาไว้จะลองใช้ดูก่อนก็ได้นะครับ https://www.sysnetcenter.com/software/exe.zip แต่ยังไม่มีเวลาพัฒนาต่อเลย


เครื่อง NAS ที่ทดสอบ หมายเลข IP Address จะเป็น 192.168.2.3 กำหนด NTP Time ในเครื่อง NAS กับ Mikrotik ให้เรียบร้อยด้วยนะครับ ให้เวลาตรงกัน


1. Login เข้า Winbox ทำการ Enable Proxy โดยเข้า Menu IP --> Web Proxy




หรือจะ Run Script ตามนี้

/ip proxy
set enabled=yes
set src-address=0.0.0.0
set port=8080
set parent-proxy=0.0.0.0
set parent-proxy-port=0
set cache-administrator="webmaster"
set max-cache-size=none
set cache-on-disk=no
set max-client-connections=600
set max-server-connections=600
set max-fresh-time=3d
set always-from-cache=no
set cache-hit-dscp=4
set serialize-connections=no



2. สร้าง NAT Redirect Port ให้ข้อมูล HTTP (80) วิ่งเข้า Proxy (8080) ส่วน Port HTTPS (443) ยังไม่ได้ทดสอบนะครับ

เข้า Menu IP --> Firewall --> NAT

Tab General
Chain: dstnat
Protocol: TCP
DST Port: 80



Click [Apply]

Tab Action
Action: redirect
To Ports: 8080



Click [OK]


หรือจะ Run Script ตามนี้

/ip firewall nat add action=redirect chain=dstnat disabled=no dst-port=80 protocol=tcp to-ports=8080


ลากขึ้นมาไว้ด้านบนสุด




3. เข้า Menu System --> Logging

Tab Action

เพิ่ม Log Action
Name: syslog
Type: remote
Remote Address: 192.168.2.3 (เครื่อง NAS ที่มี Service Syslog Server)



Click [OK]

Tab Rules
เพิ่ม Log Rule
Topics: web-proxy
debug ให้มีเครื่องหมาย ! นำหน้าด้วยนะครับ หมายถึงเป็นการไม่เก็บข้อมูล Debug ไม่งั้นจะเยอะ
Action: syslog



Click [OK]


Tab Rules
เพิ่ม Log Rule
Topics: script
Topics: info
Action: syslog



Click [OK]

หรือจะ Run Script ตามนี้

/system logging action
add name=syslog remote=192.168.2.3 target=remote

/system logging
add action=syslog topics=web-proxy,!debug
add action=syslog topics=script,info





4. ทีนี้ก็สร้าง Event เวลาผู้ใช้งาน Login เพื่อเก็บค่า IP และ MAC Address

เข้า Menu --> IP --> Hotspot

Tab User Profiles เลือก property ของ default

ใส่ Scripts ตามรูปครับ



On Login:
:local whouser $user;
:local whoip $address;
:local macaddr [/ip hotspot active get [find user=$whouser] mac-address];

:log info ("User Login:".$whouser." IP :".$whoip." Mac:".macaddr);

On Logout:
:log info ("User Logout: ".$user);


หรือจะสั่ง Run Script

/ip hotspot user profile
set [ find default=yes ] idle-timeout=none keepalive-timeout=2m \
    mac-cookie-timeout=3d on-login=":local whouser \$user;\r\
    \n:local whoip \$address;\r\
    \n:local macaddr [/ip hotspot active get [find user=\$whouser] mac-address\
    ];\r\
    \n\r\
    \n:log info (\"User Login:\".\$whouser.\" IP :\".\$whoip.\" Mac:\".macaddr\
    );" on-logout=":log info (\"User Logout: \".\$user);"



การ Config บนอุปกรณ์ Mikrotik มีแค่นี้ครับ ส่วนการ Config Syslog Server บนอุปกรณ์ NAS ก็แค่ Enable Service เท่านั้นครับ




ทดสอบ

เมื่อมีการ Login เข้ามาในระบบ Hotspot ใน Log จะแจ้งหมายเลข IP, MAC Address และ UserName




เครื่องที่ Login เข้าระบบ Hotspot




เข้าใช้งาน Internet ในส่วน Proxy Log จะเก็บหมายเลข IP Address ว่าเข้า Web site อะไร เวลาไหน




เมื่อทำการ Logout หรือ ขาดการเชื่อมต่อ จะมีการเก็บเวลาที่ Logout ของ User




ตรวจสอบดูการใช้งาน ให้ใช้ function search ของ Service Syslog จากในตัวอย่าง จะเห็นว่าใช้งานในช่วง 21.35 - 21.38 ได้หมายเลข IP Address 192.168.2.181




ทีนี้ก็ตรวจสอบช่วงเวลาที่ใช้งานว่าเข้า Website อะไรบ้างครับ





เรียบร้อยครับ ลองทดลองใช้งานกันดูนะครับ  ;D ;D



เหมือน กันเลย คร๊าบ HTTPS ยังเก็บไม่ได้

yod

ผมจะทำการเก็บ พวกเว็บ youtube กับ facebook ทำไมผมทำตามแล้วเก็บไม่ได้อะครับ