การเก็บ log ต้องแบ่งเป็น 2 ส่วน
1. traffic log
2. data log
traffic log จะเป็น log จาก internal ไปยัง external หมายความว่า user ในหน่วยงานเราไปทำอะไรที่ไหนเราต้องมีการจัดเก็บ log ครับ
data log จะเป็น log ของเครื่อง server ภายในหน่วยงานเราที่เราเปิด public ให้คนภายนอกเข้าถึงได้ เช่น mail server , ftp server , web server เพราะเครื่องพวกนี้มีโอกาสที่จะเกิดการกระทำความผิด เช่น มีคนมา post รูปภาพไม่เหมาะสม , ส่ง mail หมิ่นประมาท , อีกหลายกรณี
การจัดเก็บ
data log แค่เอาตัวโปรแกรม agent ที่ใช้ในการยิง log ไฟล์ ไป install ที่เครื่อง server ต่างๆแล้วทำการ point destination ในการจัดเก็บ log file ไปยังเครื่อง centralized log server เป็นอันใช้ได้ครับ ดังนั้น software ที่ต้องติดตั้งที่เครื่อง server ของเราก็ คือ syslog หรือ syslog-ng(syslog new generation) แต่ถ้าเป็น syslog จะมีมาให้กับ ubuntu หรือ linux ค่ายอื่นๆอยู่แล้วนะครับไม่ต้องติดตั้งเพิ่ม แต่ผมแนะนำให้ใช้เป็น syslog-ng มากกว่านะครับ เพราะ syslog-ng สามารถ filter log ได้ว่าต้องการจะจัดเก็บ log อะไรบ้าง , เก็บแค่ไหน , กรองเอาเฉพาะ log ที่ alert เรื่องใด แถมยังสามารถจัดเก็บได้ทั้งแบบ tcp และ udp ซึ่งจะต่างกับ syslog ที่เก็บได้แต่ udp พอร์ต 514 นะครับ
traffic log กรณีเป็นปัญหาหน่อยนะครับ เพราะต้อง implement เยอะมาก(ต้องทำระบบ login)
1. proxy ของโปรโตคอลต่างๆ เช่น squid (web proxy) , frox(ftp proxy) , imspector(im proxy)
* แต่ถ้าจะ implement ตัว imspector ต้องระวังปัญหาเรื่องละเมิดสิทธิส่วนบุคคลนะครับ เพราะมันจัดเก็บข้อความของ user ที่กำลัง chat กันลงไปใน log ด้วยครับ ไม่ได้เก็บแต่ข้อมูลการ connect ถ้าไม่อยากมีปัญหาให้ใช้ iptables ในการ monitor ตัว IM เอง วิธีไปหาเอาจาก net ละกันครับ คงไม่สอน ณ ที่นี้อาจจะยาวไปหน่อย
ประโยชน์: จัดเก็บข้อมูลได้ว่า ใคร ไปทำอะไร ที่ไหน เมื่อไหร่ (แต่ใครใน log ของ proxy ดันระบุเป็น ip address ที่ปลอมได้ง่ายมากถึงมากที่สุด)
2. สืบเนื่องจากข้อ 1 นะครับ ในเมื่อ ip address ไม่มีความน่าเชื่อถือในการระบุตัวตนผู้กระทำความผิด ดังนั้น เราต้องทำระบบ authentication แบบ hotspot ให้ user ในระบบ log in ก่อนเข้าใช้งาน internet ครับ ด้วยเหตุนี้เองทาง admin ต้อง implement ระบบ authentication นะครับ โดย log ของระบบ authentication มันจะเก็บในรูปแบบ
ip address username ที่ login เวลาที่ใช้งาน
ดัง นั้นเมื่อเราเอา log จากข้อ 2 ไป map กับ log จากข้อ 1 เราก็จะทราบผู้กระทำความผิดครับ(จริงๆไปอ่าน พรบ. ให้ละเอียดจะเห็นว่า พรบ.ระบุว่าเราต้องระบุตัวตนผู้ใช้งานได้นะครับ แต่คนมักคิดว่า proxy อย่างเดียวก็พอ )
3. ต่อมา เรื่องที่สำคัญมากจนไม่อาจข้ามไปได้ คือ time server ครับ เพราะนึกเล่นๆนะครับ พนักงานเจ้าหน้าที่มาขอ log เราโดยแจ้งมาว่า ip address ของหน่วยงานเรากระทำความผิดเมื่อวันที่ 25 สิงหาคม ช่วงเช้าๆ แต่เวลาในเครื่อง log เราดันเป็นวันที่ 11 มกราคม 2499 ยังงี้ท่านอาจซวยได้นะครับ เพราะไม่ยอม sync เวลาให้ตรงกับเครื่อง time server ดังนั้นเราต้องติดตั้งโปรแกรม ntp ที่เครื่องจัดเก็บ log และเครื่อง server ต่างๆนะครับ
ถาม: ต้อง sync เวลาเครื่อง server ของเราทุกเครื่องไปยังเครื่อง time server ที่เป็น stratum0 บน internet เลยหรือเปล่าครับ
ตอบ: ไม่ครับ ทำงั้นเดี๋ยวเวลามันจะ delay เกิน 10 ms เพราะต้อง วิ่งไป sync กับเครื่อง time server บน net หมดยังงี้ไม่ไหว ให้แก้ไขโดยตั้งเครื่อง server ในหน่วยงานมา 1 เครื่องเอาไป sync เวลาไปยัง time server ที่เป็น stratum 0 (หรืออาจจะ sync ไปยังเครื่องของ กรมอุทกศาสตร์ , สถาบันมาตรวิทยา ที่เป็น stratum1 ก็ได้ครับ ถือว่าหยวนๆ) แล้วเราค่อยให้เครื่อง server เครื่องอื่นๆ sync time กับเครื่อง internal time server อีกทีนึงเวลาจะได้ ไม่ delay
Centralized log เครื่องนี้ควรจะต้องมี harddisk ใหญ่หน่อยนะครับเอาไว้จัดเก็บ log
software:
1. syslog-ng ---> เอาไว้รับ log จากเครื่อง server (ตาม พรบ. ถือว่าเป็น data archive)
2. openssl ---> เอาไว้ encrypt log ไม่ให้ใครเข้ามาแก้ไข (ตาม พรบ. คือป้องกันการแก้ไข)
3. md5 ---> เอาไว้ hashing ตาม พรบ.
สรุป: ต้องใช้ software ดังนี้
1. squid(web proxy)
2. frox(ftp proxy)
3. iptables(ตั้งค่าให้เก็บ log IM ซึ่งหารายละเอียดเองนะครับว่าทำไง)
4. radius server(เก็บ user account ในระบบ)
5. ระบบ authentication (มีเพียบเลย ซึ่ง 1 ในหลายๆตัวและเป็นที่นิยมใช้งาน คือ chillispot)
6. syslog-ng (เอาไว้ทำ centralized log server และเอาไว้ติดตั้งที่เครื่องลูกเพื่อยิง log)
*เอ้อ! ลืมไป ถ้าเป็นเครื่อง windows ใช้ snare หรือ kiwi syslog ในการทำ syslog server และ syslog agent ได้นะครับ
7. ntp เอาไว้ sync เวลา
เอาแค่นี้ก่อนนะครับ ลง detail มากกว่านี้จะเยอะไป ลองไปศึกษาดูก่อนค่อยว่ากันอีกที
โชคดีครับ
คลังบทความของบล็อก
-
▼
2008
(65)
-
▼
สิงหาคม
(57)
- โปรแกรม portsentry
- all-in-one 2 (portsentry+iptables+apt-proxy+squid3)
- ทำเองได้ Centralized log แถมวิวได้ด้วย PHP SYSLOGV...
- เวอร์ชั่นเต็ม: การติดตั้ง Centralized log ตาม พรบ....
- debian: iptables
- สคริปท์ บล็อค keyword โดยใช้ Squid คับ เห็นมีคน ถาม
- compile ipp2p บน debian etch ไม่ผ่าน ช่วยทีครับ
- compile debian lenny support l7
- http://www.opentle.org/th/node/7854
- ลองติดตั้ง dns แบบเปลี่ยนค่าได้
- http://download.grisoft.cz/softw/70/update/
- การติดตั้ง Samba Server
- My sources.list for Debian Lenny/Sid
- NTPDate: เวลานั้นสำคัญไฉน .
- บทความ debian เยอะมากๆ
- set php บน debian
- การเก็บ log
- โครงการเก็บข้อมูลจราจร (Traffic Data) ด้วยซอฟต์แวร...
- Squid + Radius authentication
- ntop โปรแกรม monitor network
- ติดตั้ง Shorewall บน Ubuntu
- ผมจะทำ Server สำหรับให้บาง user สามารถเข้าอินเตอร์...
- คำสั่งเฝ้ามองระบบ Linux
- สงสัยเรื่อง ไฟล์วอล
- IPTABLES เป็น Firewall พื้นฐานของ Linux เกือบทุก D...
- ดูข้อมูลของ CPU
- Ubuntu : iptables rule
- Iptables : SSH Brute force attack
- My Firewall Config:
- debian: iptables
- ICMP iptables
- วิธี set iptables บน linux แบบง่ายๆ
- ปัญหาเรื่อง function บน MySQL 5.x
- NTPDate: เวลานั้นสำคัญไฉน ....
- ตั้งเวลาด้วย at
- การ dump ข้อมูลใน MySQL ให้ถูกต้องตาม Character-set
- การติดตั้ง shoutcast เป็น video streaming
- ทำเองได้ centralized log แถมวิวได้ด้วย php syslogv...
- backup mysql database ด้วย mysqldump
- Comodo Firewall
- ป้องกันการโจมตีด้วย SSH
- Debian:Install eBox package on Debian
- การเปิดปิด Service ตอนที่บูทเครื่องขึ้นมา
- ทดลองติดตั้ง apache2 mysql5 phpmyadmin
- เดเบียน ๑๐๑
- Intro to Debian Process (ตอนจบ)
- Intro to Debian Process (3)
- Intro to Debian Process (2)
- Intro to Debian Process (1)
- เอกสารเกี่ยวกับ Linux
- เกี่ยวกับ rc.statd จำเป็นไหม จะ disable ได้ไหม
- CoovaChilli Documentation
- shorewall on Debian
- คำสั่ง Firewall
- Firewall บน Debian
- เพิ่มความปลอดภัยให้กับ Linux
- Debian+ Inno DB Myisam
-
▼
สิงหาคม
(57)