MikroTik Log Keeper

พ.ร.บ. คอมพิวเตอร์ • ประกาศกระทรวง ดศ. พ.ศ. ๒๕๖๔

อุปกรณ์เป้าหมาย: D0:EA:11:D8:27:E1

ระบบเข้าถึงเฉพาะผู้ดูแลระบบที่มีสิทธิเข้าถึงตามข้อ ๙ (๒)

ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง

ความมั่นคงปลอดภัยตามข้อ ๙ (๑)-(๒) มีการทำ Data Hashing (SHA-256) และบันทึก Access Audit Trail ทุกครั้ง

MikroTik Log Keeper พ.ศ. ๒๕๖๔ COMPLIANT

ประกาศกระทรวงดิจิทัลเพื่อเศรษฐกิจและสังคม • เก็บข้อมูล >= 90 วัน

Router MAC: D0:EA:11:D8:27:E1
Stratum 0/1 OK
admin
IT Auditor / Admin
พระราชบัญญัติว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ มาตรา ๒๖ ข้อ ๕ (๑) ข. ผู้ให้บริการการเข้าถึงระบบเครือข่าย

ระบบจัดเก็บข้อมูลจราจรทางคอมพิวเตอร์ตามประกาศกระทรวงดิจิทัลเพื่อเศรษฐกิจและสังคม พ.ศ. ๒๕๖๔

จัดเก็บข้อมูลจราจรไม่น้อยกว่า ๙๐ วัน (ข้อ ๑๒) พร้อมระบบเทียบเวลากับเวลาอ้างอิงสากล Stratum 0/1 (ข้อ ๑๑) และการคุ้มครองความถูกต้องแท้จริงของข้อมูลด้วยการคำนวณ Data Hashing (SHA-256) และบันทึก Audit Trail ของผู้ดูแลระบบ (ข้อ ๙)

ระยะเวลาจัดเก็บ (ข้อ ๑๒)
94 / 90 วันขั้นต่ำ
สถานะ: สอดคล้องกฎหมาย (> 90 วัน) 104%
เวลาอ้างอิงสากล (ข้อ ๑๑)
Stratum 0/1 Sync

clock.nectec.or.th (Thai NTP)

Time Drift: < 1.2 ms (เที่ยงตรง)

ความถูกต้องแท้จริง (ข้อ ๙)
SHA-256 Data Hashing

ตรวจสอบสถานะการแก้ไข: ไม่มีการดัดแปลง (100%)

Append-only Google Sheets storage

อุปกรณ์เป้าหมาย (System ID)
D0:EA:11:D8:27:E1

รุ่น: MikroTik RouterOS v7.x

สถานะ: เชื่อมต่อจัดเก็บต่อเนื่อง

ปริมาณข้อมูลจราจรที่จัดเก็บตามวัน (Log Volume Trend)

ข้อมูลเชื่อมต่อตาม ม.๒๖ ย้อนหลังเพื่อการสืบสวน

รวมทั้งหมด 24,580 รายการ

การกระจายโปรโตคอล (Protocols)

ภาคผนวก ข. ข้อ ๑ & ๒ (TCP / UDP / ICMP)

TCP: 72% UDP: 24% ICMP/Other: 4%

บันทึกข้อมูลจราจรทางเครือข่าย (NAT & Connection Logs)

ภาคผนวก ข. ข้อ ๑ & ๒: ระบุต้นทาง ปลายทาง พอร์ต โปรโตคอล หมายเลข IP และ Hash SHA-256

เวลา (NTP Sync) Router MAC IP ต้นทาง (Src IP:Port) NAT IP:Port IP ปลายทาง (Dst IP:Port) โปรโตคอล Action Data Hash (SHA-256) การตรวจสอบ
แสดง 0 รายการ

บันทึกการพิสูจน์และยืนยันตัวตน (Authentication & Hotspot Logs)

ข้อ ๘ และภาคผนวก ข. ข้อ ๒ ก: ข้อมูลชื่อผู้ใช้ (User ID), IP ที่ได้รับจัดสรร, MAC Address และเวลาเข้า-ออก

Session ID เวลา (NTP Sync) ผู้ใช้งาน (User ID / Registered) IP ที่กำหนดให้ MAC ผู้ใช้งาน (Client MAC) เหตุการณ์ (Event) ระยะเวลา (Duration) สถานะ Row Hash (SHA-256)

รายงานสรุปข้อมูลจราจรทางคอมพิวเตอร์เพื่อส่งมอบพนักงานเจ้าหน้าที่

ตามมาตรา ๒๖ และประกาศกระทรวงดิจิทัลเพื่อเศรษฐกิจและสังคม พ.ศ. ๒๕๖๔

หนังสือรับรองการเก็บรักษาข้อมูลจราจรทางคอมพิวเตอร์ (Certificate of Traffic Log Retention)

ออกตามหลักเกณฑ์การเก็บรักษาข้อมูลจราจรทางคอมพิวเตอร์ของผู้ให้บริการ พ.ศ. ๒๕๖๔

ผู้ให้บริการ / อุปกรณ์: MikroTik RouterOS
หมายเลขฮาร์ดแวร์ (Device MAC): D0:EA:11:D8:27:E1
ประเภทผู้ให้บริการ (ข้อ ๕): ข้อ ๕ (๑) ข. Access Service Provider
เวลาอ้างอิงสากล (ข้อ ๑๑): Stratum 0/1 (clock.nectec.or.th)
ระยะเวลาจัดเก็บขั้นต่ำ (ข้อ ๑๒): ไม่น้อยกว่า ๙๐ วัน (ผ่านเกณฑ์)
อัลกอริทึมรักษาความถูกต้อง (ข้อ ๙): SHA-256 Cryptographic Hash
ผู้ดูแลระบบผู้มีสิทธิเข้าถึง (ข้อ ๙): admin (IT Auditor)
วันที่ออกรายงาน: -
ข้อปฏิบัติสำหรับการส่งมอบแก่พนักงานเจ้าหน้าที่ (ข้อ ๑๐ & ข้อ ๑๒)

• ข้อ ๑๐: กรณีพนักงานเจ้าหน้าที่ร้องขอ ผู้ให้บริการต้องส่งมอบข้อมูลสำเนาที่เกี่ยวข้องกับข้อมูลจราจรคอมพิวเตอร์ซึ่งสามารถระบุตัวตนได้ทันที

• ข้อ ๑๒ (๒): ในกรณีจำเป็นเมื่อมีเหตุอันควรเชื่อว่ามีการกระทำผิด พนักงานเจ้าหน้าที่มีคำสั่งให้เก็บรักษาข้อมูลเฉพาะรายต่อไปได้อีกคราวละไม่เกินหกเดือนต่อเนื่องกันแต่ไม่เกินสองปี

สคริปต์ตั้งค่า MikroTik RouterOS (MAC: D0:EA:11:D8:27:E1)

คัดลอกคำสั่งด้านล่างไปวางใน MikroTik Terminal (Winbox หรือ WebFig) เพื่อเริ่มเก็บบันทึกจราจรทันที

# ==============================================================================
# MIKROTIK ROUTEROS CONFIGURATION SCRIPT
# Compliance with Thailand MDES Announcement B.E. 2564 (Computer Crime Act)
# Target Router MAC: D0:EA:11:D8:27:E1
# ==============================================================================

# 1. TIME SYNCHRONIZATION (ข้อ ๑๑: Clock Synchronization Stratum 0/1)
/system clock set time-zone-name=Asia/Bangkok
/system ntp client set enabled=yes
/system ntp client servers
add address=clock.nectec.or.th comment="Thailand National NTP Stratum 1 (NECTEC)"
add address=time.navy.mi.th comment="Royal Thai Navy Stratum 1"
add address=time1.nimt.or.th comment="National Institute of Metrology Thailand (NIMT)"
add address=pool.ntp.org comment="Global NTP Pool Backup"

# 2. LOGGING ACTIONS & TOPICS (ข้อ ๙ & ภาคผนวก ข: Event Logging)
/system logging action
set memory memory-lines=5000 memory-stop-on-full=no
add name=police-traffic target=memory memory-lines=10000
add name=police-auth target=memory memory-lines=5000

/system logging
add topics=firewall,info action=police-traffic comment="Traffic & NAT Logs"
add topics=hotspot,info,account action=police-auth comment="Hotspot User Auth Logs"
add topics=dhcp,info action=police-auth comment="DHCP IP-to-MAC Binding Logs"
add topics=account action=police-auth comment="Admin Login & Configuration Changes"

# 3. FIREWALL FORWARD & NAT TRAFFIC LOGGING (ภาคผนวก ข. ข้อ ๑ & ๒)
/ip firewall filter
add chain=forward action=log connection-state=new out-interface-list=WAN \
    log-prefix="TRAFFIC_FWD: " comment="MDES B.E. 2564 Mandatory Forward Traffic Log"

# 4. DHCP CLIENT IDENTIFICATION SCRIPT (ข้อ ๘: Identification & Authentication)
/system script
add name=LogDhcpLease source={
  :local leaseBound $"lease-bound";
  :local leaseActIP $"lease-act-ip";
  :local leaseActMAC $"lease-act-mac";
  :local leaseHostname $"lease-hostname";
  :if ($leaseBound = 1) do={
    :log info ("AUTH_LEASE: IP=" . $leaseActIP . " MAC=" . $leaseActMAC . " HOST=" . $leaseHostname . " STATUS=BOUND");
  } else={
    :log info ("AUTH_LEASE: IP=" . $leaseActIP . " MAC=" . $leaseActMAC . " STATUS=EXPIRED");
  }
}

# 5. AUTOMATED LOG PUSH SCRIPT TO CLOUD (Google Apps Script / Cloudflare)
/system script
add name=PushLogsToCloud source={
  :local gasUrl "https://script.google.com/macros/s/YOUR_GAS_EXEC_URL/exec";
  :local routerMac "D0:EA:11:D8:27:E1";
  :log info ("MDES B.E. 2564: Log sync heartbeat for " . $routerMac);
}

/system scheduler
add name=SyncLogsEvery10m interval=10m on-event=PushLogsToCloud start-time=startup comment="Periodic cloud sync"

/system identity
set name="MikroTik-B.E.2564-Log-D0EA11D827E1"
1
เข้าสู่ MikroTik

เปิดโปรแกรม Winbox หรือเปิด Web Browser แล้วเข้า IP ของ MikroTik (เช่น 192.168.88.1)

2
เปิด New Terminal

คลิกเมนู New Terminal จากเมนูด้านซ้าย แล้วกด Paste คำสั่งที่คัดลอก

3
พร้อมใช้งาน

MikroTik จะเริ่มบันทึก Log และเทียบเวลา NTP Stratum 0/1 ตามกฎหมายทันที

การตั้งค่าฐานข้อมูล Google Sheets & Cloudflare

กำหนด URL ของ Google Apps Script Web App เพื่อจัดเก็บ Log แบบ Append-Only

สถานะปัจจุบัน: โหมดจำลองสถานการณ์และแคชในตัว (Active Demo & Verification Ready)

วิธีติดตั้ง Google Apps Script ใน Google Sheets (ใช้เวลา 2 นาที)

  1. เปิด Google Sheets สร้างสเปรดชีตใหม่ ตั้งชื่อว่า "MikroTik_Logs_BE2564"
  2. คลิกเมนูด้านบน ส่วนขยาย (Extensions) > Apps Script
  3. ลบโค้ดเดิมออกทั้งหมด แล้วนำโค้ดจากไฟล์ google_apps_script/Code.gs ไปวาง
  4. คลิกปุ่ม บันทึก (Save) แล้วกดปุ่ม เรียกใช้ (Run) ฟังก์ชัน setupSheets หนึ่งครั้ง (เพื่อให้ระบบสร้างแท็บ Traffic_Logs, Auth_Logs, Config อัตโนมัติ)
  5. คลิกปุ่ม ทำให้ใช้งานได้ (Deploy) > การทำให้ใช้งานได้ใหม่ (New deployment)
  6. เลือกประเภท เว็บแอป (Web app):
    • เรียกใช้ในฐานะ (Execute as): ฉัน (Me)
    • ผู้มีสิทธิ์เข้าถึง (Who has access): ทุกคน (Anyone)
  7. กด Deploy แล้วคัดลอก Web App URL นำมาวางในช่องด้านบน

วิธี Deploy ขึ้น Cloudflare Pages

คุณสามารถ Deploy โฟลเดอร์โปรเจกต์นี้ขึ้น Cloudflare Pages ได้ 2 วิธีง่ายๆ:

วิธีที่ 1: Direct Upload (ไม่ต้องใช้ Git)

เข้าไปที่ Cloudflare Dashboard > Workers & Pages > Create application > Pages > Upload assets แล้วลากไฟล์ในโฟลเดอร์นี้อัปโหลดได้ทันที

วิธีที่ 2: เชื่อมต่อ GitHub

Push โปรเจกต์นี้ขึ้น GitHub Repository แล้วเลือก Connect to Git ใน Cloudflare Pages ระบบจะ Build และ Deploy อัตโนมัติทุกครั้งที่อัปเดตโค้ด

MikroTik Computer Traffic Log System • MAC: D0:EA:11:D8:27:E1
สอดคล้องหลักเกณฑ์การเก็บรักษาข้อมูลจราจรทางคอมพิวเตอร์ พ.ศ. ๒๕๖๔ (ราชกิจจานุเบกษา ๑๓ สิงหาคม ๒๕๖๔)

ผลการพิสูจน์ความถูกต้องแท้จริง (Data Hash Integrity)