การติดตั้ง Syslog-ng เพื่อการเก็บข้อมูลจราจรคอมพิวเตอร์ (logfile)

ติดตั้ง syslog-ng สำหรับรับ log message จาก Mikrotik Router

1. เตรียมเครื่อง Server ด้วย Debian 10 และ update/upgrade ให้เรียบร้อย

root@livingsoft:~#apt update
root@livingsoft:~#apt upgrade

2. ติดตั้งโปรแกรม Syslog-ng สำหรับรับ log message จาก Mikrotik

root@livingsoft:~#apt install syslog-ng

3. ทำการเพิ่ม config ใน /etc/syslog-ng/conf.d โดยตั้งชื่อไฟล์เป็น mikrotik.conf (ต้องลงท้ายด้วย .conf)

root@livingsoft:~#vim /etc/syslog-ng/conf.d/mikrotik.conf
source s_mikrotik { 
        udp(port(514)); 
//กำหนดให้มีการส่งข้อมูลมาแบบ udp ที่ port 514
};

destination d_mikrotik_firewall { 
//กำหนดปลายทางของ Firewall log
        file("/var/log/mikrotik/${HOST}/${YEAR}/${MONTH}/${DAY}/$HOUR-firewall.log" create_dirs(yes)); 
        //ให้มีปลายทางไปที่ /var/log/mikrotik/{IP ของเครื่อง Mikrotik}/{ปี}/{เดือน}/{วัน}/{ชั่วโมงที่}-firewall.log
};

filter f_mikrotik_firewall { 
//กำหนดให้เลือกเฉพาะ Log ที่ส่งมาจาก IP 10.0.0.1 และ เป็น firewall log
        host("10.0.0.1") and match("firewall");
};

log {
//กำหนดให้มีการบันทึก log โดยมีเงื่อนไข ตามนี้ ต้นทาง -> คัดเลือกโดย Filter -> บันทึกลงปลายทาง
        source(s_mikrotik); filter(f_mikrotik_firewall); destination(d_mikrotik_firewall);
};

destination d_mikrotik_dns {
//กำหนดปลายทางของ DNS log
        file("/var/log/mikrotik/${HOST}/${YEAR}/${MONTH}/${DAY}/$HOUR-dns.log" create_dirs(yes));
};

filter f_mikrotik_dns {
//กำหนดให้เลือกเฉพาะ Log ที่ส่งมาจาก IP 10.0.0.1 และ เป็น DNS log
        host("10.0.0.1") and match("dns");
};

log {
//กำหนดให้มีการบันทึก log โดยมีเงื่อนไข ตามนี้ ต้นทาง -> คัดเลือกโดย Filter -> บันทึกลงปลายทาง
        source(s_mikrotik); filter(f_mikrotik_dns); destination(d_mikrotik_dns);
};

destination d_mikrotik_dhcp {
//กำหนดปลายทางของ DHCP log
        file("/var/log/mikrotik/${HOST}/${YEAR}/${MONTH}/${DAY}/$HOUR-dhcp.log" create_dirs(yes));
};

filter f_mikrotik_dhcp {
//กำหนดให้เลือกเฉพาะ Log ที่ส่งมาจาก IP 10.0.0.1 และ เป็น DHCP log
        host("10.0.0.1") and match("dhcp");
};

log {
//กำหนดให้มีการบันทึก log โดยมีเงื่อนไข ตามนี้ ต้นทาง -> คัดเลือกโดย Filter -> บันทึกลงปลายทาง
        source(s_mikrotik); filter(f_mikrotik_dhcp); destination(d_mikrotik_dhcp);
};

4. หลังจากที่กำหนด Config ของ syslog-ng เรียบร้อยแล้ว ให้ทำการ restert service syslog-ng ใหม่

root@livingsoft:~#systemctl restart syslog-ng

เตรียมเครื่อง Mikrotik Router ให้ทำการส่ง log ไปยัง syslog-ng

1. สร้าง กฏ Firewall ให้เก็บข้อมูลจากขา LAN ที่ส่องออกไปยังขา WAN (pppoe-out1)

/ip firewall mangle add chain=forward in-interface=ether1 out-interface=pppoe-out1 action=log

2. สร้างเส้นทาง log ให้ส่งไปหา syslog-ng โดย ip 10.0.0.218 คือ ip ของเครื่อง syslog-ng

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

3. กำหนดให้ทำการส่ง log จาก firewall ,dns ,dhcp ไปยัง suslog-ng

/system logging add action=syslog topics=firewall
/system logging add action=syslog topics=dns
/system logging add action=syslog topics=dhcp

หลังจากเสร็จเรียบร้อยแล้ว ให้กลับไปตรวจสอบที่ syslog-ng server ว่ามีการสร้างไฟล์ log ขึ้นมาให้หรือไม่

root@livingsoft:~#ls -al /var/log/mikrotik/10.0.0.1/2019/10/26

หากมีไฟล์ขึ้นตามภาพแล้ว แสดงว่า เราสามารถส่ง log message กลับมาเก็บที่ syslog-ng ได้แล้ว

Firewall log
dhcp log
DNS log

เสร็จเรียบร้อยแล้ว สำหรับการจัดเก็บ log การจราจรบนเครื่อข่ายเบื้องต้น

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