แหล่งแลกเปลี่ยนความรู้-ประสบการณ์ FreeBSD สำหรับคนไทย
:: เพื่อแลกเปลี่ยนความรู้, ถาม-ตอบปัญหาคาใจ, แนะนำ, ประกาศ, หรือทุกสิ่งตามต้องการ ::
 
Home  กลับหน้าหลัก  สมัครสมาชิก  ตั้งคำถามใหม่  แก้ไขข้อมูลสมาชิก  ดูสมาชิกทั้งหมด  ลืมรหัสผ่าน

ขอเชิญร่วมตอบคำถามครับ



  ขั้นตอนการตั้งค่า syslog-ng ให้ส่ง log ไปเก็บไว้ที่ฐานข้อมูล mysql (ทดลองแล้วเนิกครับ)
 ครูมานิส
 Posted : 2009-01-25 00:50:20
ยกเครดิตให้ คุณยิมครับ ที่ช่วยผมทำจนสำเร็จ ดังนี้

ตั้งค่าให้ FreeBSD 7.0 ส่ง log files

log# cd /usr/ports/sysutils/syslog-ng
log# make & make install

แก้ไขไฟล์ /etc/rc.conf ดังนี้

log# pico /etc/rc.conf

แล้วพิมพ์คำสั่งดังนี้
syslogd_enable="NO"
syslog_ng_enable="YES"

log# kill ‘cat /var/run/syslog.pid’

คัดลอกไฟล์ syslog-ng.conf.sample เป็นไฟล์ syslog-ng.conf ดังนี้
log# cp /usr/local/etc/syslog-ng/syslog-ng.conf.sample /usr/local/etc/syslog-ng/syslogng.conf

สั่งให้ syslog-ng ทำงาน ด้วยคําสั่ง

log# /usr/local/etc/rc.d/syslog-ng start

สร้างฐานข้อมูลชื่อว่า syslog และนำเข้าตาราง log ดังนี้

log # mysql –u root -p’พิมพ์รหัส root mysql’
Mysql> create database syslog;
Mysql> use syslog;
Mysql> แล้วพิมพ์คำสั่งสร้างตารางต่อไปนี้
CREATE TABLE `log` (
`host` varchar(32) collate tis620_bin default NULL,
`facility` varchar(10) collate tis620_bin default NULL,
`priority` varchar(10) collate tis620_bin default NULL,
`level` varchar(10) collate tis620_bin default NULL,
`tag` varchar(10) collate tis620_bin default NULL,
`datetime` datetime default NULL,
`program` varchar(15) collate tis620_bin default NULL,
`msg` text collate tis620_bin,
`seq` bigint(20) unsigned NOT NULL auto_increment,
PRIMARY KEY (`seq`),
KEY `host` (`host`),
KEY `program` (`program`),
KEY `datetime` (`datetime`),
KEY `priority` (`priority`),
KEY `facility` (`facility`)
) ENGINE=InnoDB DEFAULT CHARSET=tis620 COLLATE=tis620_bin;


วิธีการทำให้ syslog-ng เก็บ log ลง mysql

ตามพระราชบัญญัติว่าด้วยการกระทำความผิดทางคอมพิวเตอร์ พ.ศ. 2550 ได้ให้ทุกองค์กร ทุกหน่วยงาน ทั้งภาครัฐและเอกชน ได้ จัดเก็บ log files การใช้งานต่าง ๆ ของผู้ใช้งานอินเตอร์เน็ตอย่างน้อย 90 วัน และจัดทำระบบแสดงตัวตนผู้ใช้งานอินเตอร์เน็ต
คุณธนกร (yim) ได้เขียนบทความนี้เผยแพร่ที่เว็บบร์ด ThaiBSD ว่าหลังจากติดตั้ง syslog-ng แล้ว ให้แก้ไขไฟล์ config ต่าง ๆ ของ syslog-ng ดังต่อไปนี้

log# pico /usr/local/etc/syslog-ng/syslog-ng.conf แล้วเพิ่มคำสั่งต่อไปนี้ เข้าไปนำไฟล์ /usr/local/etc/syslog-ng/syslog-ng.conf ตรงบรรทัด # sources

source src { unix-dgram("/var/run/log");
unix-dgram("/var/run/logpriv" perm(0600));
#udp();
internal();
file("/dev/klog"); };

#
# destinations
#
##################################################
destination ipfw { file("/var/log/ipfw/ipfw.log"); };
filter f_ipfw { program("ipfw"); };
log { source(src); destination(d_mysql); };
destination d_mysql {
pipe("/var/log/mysql.pipe"
template("INSERT INTO log
(host, facility, priority, level, tag, datetime, program, msg,seq)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY',
'$LEVEL', '$TAG','$YEAR-$MONTH-$DAY
$HOUR:$MIN:$SEC','$PROGRAM', '$MSG',null );\n\n") template-escape(yes));
};
###############################################################


log# pico /etc/syslog.conf พิมพ์คำสั่งต่อไปนี้ เพิ่มเข้าไปท้ายไฟล์

!ipfw
*.* /var/log/ipfw/ipfw.log

log# pico /usr/local/etc/syslog-ng/syslog2mysql.sh แล้วพิมพ์คำสั่งต่อไปนี้

#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
if [ ! -e /var/log/mysql.pipe ]
then
mkfifo /var/log/mysql.pipe
fi
while [ -e /var/log/mysql.pipe ]
do
/usr/local/bin/mysql -uroot -pพิมพ์รหัส rootmysql syslog < /var/log/mysql.pipe > /var/log/sql.log
done

log# pico /etc/rc.local พิมพ์คำสั่งเพิ่มเข้าไป ดังนี้

/usr/local/sbin/chilli &
ipfw add 65200 allow log all from any to any // พิมพ์คำสั่งเพิ่มบรรทัดนี้
/bin/sh /usr/local/etc/syslog-ng/syslog2mysql.sh & // พิมพ์คำสั่งเพิ่มบรรทัดนี้
ipfw add pass tcp from any to any 3990 via setup
/usr/local/sbin/RunCache &
ipfw add 1700 fwd 10.0.0.1 tcp from any to 10.0.0.0/24 80
ipfw add 1800 fwd 10.0.0.1,8080 tcp from 10.0.0.0/24 to any 80

ขั้นต่อไปดาวโหลดโปรแกรมแสดง syslog ที่เว็บไซต์ http://www.kroonis.org/log.rar
หลังจากดาวโหลดไฟล์โปรแกรมแสดง log ได้แล้ว ให้แตกไฟล์จะได้โพลเดอร์ syslog ให้อับโหลดโพลเดอร์ syslog ไปไว้ที่ห้อง /usr/local/www/apache22/data/ จากนั้นแก้ไขการติดต่อกับฐานข้อมูล ดังนี้

log# pico /usr/local/www/apache22/data/syslog/Connections/dbconnect.php
แล้วแก้ไขการเชื่อมต่อกับฐานข้อมูล syslog ดังนี้

$hostname_syslog = "127.0.0.1";
$database_syslog = "syslog";
$username_syslog = "root";
$password_syslog= "พิมพ์รหัส rootmysql"; // แก้ไขรหัสของ rootmysql

log# shutdown -r now สั่ง reboot server เพื่อให้โปรแกรม syslog-ng ทำงาน

ตรวจสอบ syslong-ng ส่ง log files ไปเก็บไว้ที่ฐานข้อมูล syslog ได้หรือยัง ให้เรียกโปรแกรม phpMyAdmin ขึ้นมาใช้งาน

เปิดดู log files ผ่านเว็บ Admin โดยพิมพ์ที่ช่อง Address ว่า

10.0.0.1/syslog แล้วกดปุ่ม Enter ก็จะพบรายการ log ที่ syslog-ng ส่งไปเก็บไว้ที่ mysql


พ.ร.บ. ว่าด้วยการกระทำความผิดทางคอมพิวเตอร์ พ.ศ. ระบุว่าให้จัดเก็บ Log File ให้ครบ 90 วัน และบอกให้ได้ว่า ใคร ทำอะไร ที่ไหน อย่างไร ใช้ port ไหน
ถ้าทำได้ตามนี้ ก็รองรับ พ.ร.บ. แล้วครับ

-------------------------------------------------------------

ถ้าท่านใด ทำได้แล้ว นำมาแบ่งปันด้วยนะครับ .... อยากให้ syslog-ng เก็บข้อมูลจาก squid ไปยัง mysql ด้วยครับ ถ้าทำได้แล้ว บอกต่อด้วยนะครั ขอบคุณมากครับ

----------------------------------------------------------------

 
  IP : (202.149.25.197)
แสดงความคิดเห็น

   yim
 Posted : 2009-01-25 00:58:34   IP : (10.0.0.3)

  ยอดฝีมือ
 

 Sex :
 Post : 1411
 สมาชิกลำดับที่ : 259
เสริมครับ
ต้องคอมพาย kernel
โดยใส่
options IPFIREWALL_VERBOSE_LIMIT=120
ด้วยครับ
บางท่านกำหนดเป็น
options IPFIREWALL_VERBOSE_LIMIT=0
ipfw จะไม่สร้าง log ออกมา

 

http://demo.thaigqsoft.com ระบบ Log System สำหรับคุณ
 Comment : 1
ชื่อสมาชิก yim Mail to yim เบอร์ msn admin@thaigqsoft.com http://www.thaigqsoft.com
กลับขึ้นด้านบน

 มือใหม่
 Posted : 2009-01-25 05:54:33   IP : (114.128.43.140)
เอ๋...หากเราทำทุกอย่างเสร็จหมดแล้ว เพียงแต่ ปรับ option ipfirewall_verbose_limit=0 เป็น 120 และ compile kernel ใหม่นะครับมีผลต่อการ config ต่าง ๆ
ที่เราทำไว้หรือเปล่าครับ..เช่น chilli apache php mysql หรือต้อง
ลงพวกนี้ใหม่หมดนะครับท่าน yim


 
 Comment : 2
กลับขึ้นด้านบน

 มือใหม่
 Posted : 2009-01-25 06:17:50   IP : (114.128.43.140)
อีกอย่างนะครับ..คือที่ทำงานตั้ง centralize log แล้วพยายามส่ง log
ไปยัง centralize log ไปได้แต่ access.log ของ squid นะครับ..ตัว
freeradius ยังไม่ยอมไป..(หัวใจสำคัญเลยตัวนี้) ตัว authen เป็น
freebsd 6.2 บวก chilli บวก freeradius บวก ม.บูรพา นะครับ..
พยายามทำตามที่แนะนำในบอร์ดนี้หลายครั้งก็ยังไม่ไปฝากครูมานิส
ช่วยอีกแรงนะครับ...หากผมส่งไปได้จะแจ้งให้ทราบ...
มีเวบที่น่าสนใจอีกที่นะครับที่ส่ง log เข้า centralize log ได้แต่เป็น
บน ubuntu นะครับ
http://www.itwizard.info/technology/linux/ubuntu/chillihospot/install_chillhotspot_ubutu_8_10.html

 
 Comment : 3
กลับขึ้นด้านบน

 ครูมานิส
 Posted : 2009-01-25 06:23:08   IP : (202.149.24.161)
ไม่มีผลครับ จะ compile Kernel กี่ครั้งก็ได้ครับ ตามนี้

# cd /usr/src/sys/i386/conf/

# pico WIFI

แล้วแก้ไข options
IPFIREWALL_VERBOSE_LIMIT=0 แก้ไขเป็น

options IPFIREWALL_VERBOSE_LIMIT=120

บันทึกไฟล์ และออกจากการแก้ไข

# config WIFI

# cd ../compile/WIFI

# make cleandepend;make depend;make;make install

รอจนกว่าระบบจะทำการ Compile Kernel เสร็จครับ

แล้วสั่ง

# reboot หรือ shutdown -r now

ขอบพระคุณคุณยิมมากนะครับ ที่แนะนำเทคนิคดี ๆ และให้ความช่วยเหลือครูมานิส มาโดยตลอด


 
 Comment : 4
กลับขึ้นด้านบน

 Ch@rt
 Posted : 2009-01-25 10:19:58   IP : (124.120.232.115)
ขอบคุณมาก สำหรับอาวุธชิ้นนี้

 
 Comment : 5
กลับขึ้นด้านบน

   yim
 Posted : 2009-01-25 11:50:36   IP : (10.0.0.2)

  ยอดฝีมือ
 

 Sex :
 Post : 1411
 สมาชิกลำดับที่ : 259
การส่ง log จาก squid
แค่ เพิ่มบรรทัด ที่ squid.conf ว่า
access_log syslog
ก็พอครับ

 

http://demo.thaigqsoft.com ระบบ Log System สำหรับคุณ
 Comment : 6
ชื่อสมาชิก yim Mail to yim เบอร์ msn admin@thaigqsoft.com http://www.thaigqsoft.com
กลับขึ้นด้านบน

 ครูมานิส
 Posted : 2009-01-25 12:59:54   IP : (118.175.242.160)
ขอบพระคุณมากครับ คุณยิม แล้วจะเพิ่มตรงบรรทัดไหนครับ

บรรทัดแรกได้ไหมครับ แล้วถ้าจะส่ง log www , ssh , ftp ต้องเพิ่มคำสั่งอย่างไรครับ

 
 Comment : 7
กลับขึ้นด้านบน

 ครูมานิส
 Posted : 2009-01-25 13:08:27   IP : (118.175.242.160)
ลืมครับ อีกคำถามครับ จะส่งข้อมูล การใช้เน็ตด้วยครับ ไฟล์ /var/log/radius.log จะส่งยังไงครับ ขอบพระคุณมากครับ

ท่านใด นำไปใช้แล้วติดปัญหา ส่ง syslog-ng -mysql บ่ได้ รับปรึกษาปัญหา หัวใจ .... อ้าวพิมพ์ผิดครับ .... ยินดีช่วยเหลือครับ บริการฟรี ทุกโปรโมชั่นเลยจ้า ....

 
 Comment : 8
กลับขึ้นด้านบน

   yim
 Posted : 2009-01-25 15:09:05   IP : (10.0.0.2)

  ยอดฝีมือ
 

 Sex :
 Post : 1411
 สมาชิกลำดับที่ : 259
ลง บรรทัดใหน ก็ได้ครับ

ส่วน radius โดยปกติ ต้องไปเปิด บรรทัด

ที่มีคำว่า sql ออกครับ
โดยแก้ใน
radius.sql
หา บรรทัดที่มีคำว่า
#sql เอา # ออกให้หมดครับ

 

http://demo.thaigqsoft.com ระบบ Log System สำหรับคุณ
 Comment : 9
ชื่อสมาชิก yim Mail to yim เบอร์ msn admin@thaigqsoft.com http://www.thaigqsoft.com
กลับขึ้นด้านบน

 ครูมานิส
 Posted : 2009-01-25 15:58:46   IP : (10.0.0.5)
ขอบคุณครับคุณยิม

ในห้อง /usr/local/etc/raddb ไม่มีไฟล์ radius.sql นะครับ มีแต่ไฟล์ sql.conf ครับ

ไฟล์ radius.sql หาได้จากไหนครับคุณยิม ?????

 
 Comment : 10
กลับขึ้นด้านบน

1 2


 แสดงความเห็นต่อคำถามนี้
ชื่อ/Username
รหัสผ่าน
( เฉพาะสมาชิก )
อีเมลล์
( ถ้าเป็นสมาชิกไม่ต้องใส่ )
รูปแบบพิเศษ   ย่อหน้า ตัวหนา ตัวยก ตัวห้อย ตัวหนังสือเรืองแสง ตัวหนังสือมีเงา ตัวเอียง เส้นใต้ สีแดง สีเขียว สีน้ำเงิน สีส้ม สีชมพู สีเทา
Emotions  
แทรกภาพ  
ขนาดภาพ ห้ามเกิน 50 kb  และ ไฟล์ Flash ขนาดห้ามเกิน 500 kb
แสดงความเห็น

ความปลอดภัย กรุณากรอกข้อความที่ท่านเห็นด้านล่าง
   
   
   
[ สมัครสมาชิก | ปิดหน้าต่างนี้ ]


ข้อความที่ท่านได้อ่าน เกิดจากการเขียนโดยสาธารณชน และส่งขึ้นมาแบบอัตโนมัติ เจ้าของเว็บบอร์ดไม่รับผิดชอบต่อข้อความใดๆทั้งสิ้น เพราะไม่สามารถ
ระบุได้ว่าเป็นความจริงหรือชื่อผู้เขียนที่ได้เห็นคือชื่อจริง ผู้อ่านจึงควรใช้วิจารณญาณในการกลั่นกรอง และถ้าท่านพบเห็นข้อความใด ที่ขัดต่อกฎหมายและ
ศีลธรรม หรือเป็นการกลั่นแกล้งเพื่อให้เกิดความเสียหาย ต่อบุคคล หรือหน่วยงานใด กรุณาส่ง email มาที่ admin@thaibsd.com เพื่อให้ผู้ควบคุม
ระบบทราบและทำการลบข้อความนั้น ออกจากระบบต่อไป


 © Copyright 2001 thaibsd.com All Right Reserved. Contact >> admin@thaibsd.com