- Rsyslog สามารถส่ง syslog แบบ tcp บน stunnel ส่งแบบ TCP มีความน่าเชื่อถือกว่า UDP
- Stunnel สร้างการเชื่อมต่อแบบ ssl โดยมีการเข้ารหัสและถอดรหัสระหว่างต้นทางและปลายทาง เพื่อกันคนมาทำมิดีมิร้าย
เริ่มติดตั้ง rsyslog ที่เครื่อง Authen-gateway
#apt-get install rsyslog |
ปรับแต่งค่าconfig
# nano/etc/rsyslog.conf |
*.*;auth,authpriv.none -/var/log/syslog แก้ไขให้เป็นตามนี้
*.*;auth,authpriv.none -/var/log/messages
ปิดการทำงานของ syslogd เพราะ rsyslog กับ syslog ทำงานที่ portเดียวกันต้องเลือกเอาว่าจะใช้อันไหน
#cd /etc/rc2.d #mv S10sysklogd _s10sysklogd |
แก้ไขไฟล์ /etc/logrotate.d/rsyslog เพื่อ บีบอัดไพล์ log ให้มีขนาดเล็ก และแยกไพล์ log แยกเป็นวัน
#nano /etc/logrotate.d/rsyslog |
/var/log/messages // log file ที่ต้องการ rotate
{
compress // บีบอัด log ที่ rotate
rotate 90 // rotate log ไว้ 90 วัน
daily // rotate log แยกเป็นรายวัน
missingok
notifempty
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}
สั่งให้ Squid และ Freeradius ส่ง ส่ง Log มาที่ rsyslog โดยสร้างไพล์ชื่อ rc.capture
#nano /etc/init.d/rc.capture |
โดยข้างในใส่ command ตามนี้
#!/bin/bash
tail -F /var/log/squid/access.log logger -t squid -p local3.info &
tail -F /var/log/freeradius/radacct/127.0.0.1/details logger -t radiusd -p local3.info &
ถ้าใช้ freeradius 2.0 ต้องไปแก้ไขไพล์นี้
#nano /etc/freeradius/modules/detail |
#detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d แก้ไขให้เป็นแบบบรรทัดล่าง detailfile = ${radacctdir}/%{Client-IP-Address}/details
สั่งให้รันทุกครั้งเมื่อเปิดเครื่อง
#chmod a+x /etc/init.d/rc.capture #ln -s /etc/init.d/rc.capture /etc/rcS.d/S88rccapture |
แก้ไขไพล์ config เพื่อส่งข้อมูลไปที่ Centralize-log Server
# nano/etc/rsyslog.conf |
เพิ่มเข้าไปบรรทัดสุดท้าย เพื่อส่งข้อไปที่ centralize-log Server แบบTCP port 1468
*.* @@192.168.0.2:1648 สมมุติว่าเป็น ip 192.168.0.2
เพิ่มกฏเข้าไปใน iptables เพื่อส่งข้อมูลมาที่ rsyslog โดยที่ผมเข้าไปเพิ่มที่ /etc/chilli/up.sh แล้วเพิ่มต่อบรรทัดสุดท้าย
$IPTABLES -t nat -I POSTROUTING -o $EXTIF -j LOG
การนำ Stunnel มาใช้ร่วมกับ rsyslog
- Stunnel สร้างการเชื่อมต่อแบบ ssl โดยมีการเข้ารหัสและถอดรหัสระหว่างต้นทางและปลายทาง
- ฝั่ง client rsyslog จะทำการ forward message ไปยัง stunnel local port 61514
- local stunnel ก็จะทำการ forward data ไปยัง port 60514 ไปยังเครื่อง remote
- ฝั่ง server จะมี Stunnel ที่รอรับ port 60514 ที่ client จะ connect เข้ามา
- จากนั้นก็จะทำการ forward ต่อไปยัง local rsyslog ที่รอรับอยู่ที่ port 61514
วิธีการติดตั้ง แบ่งออกเป็น 2 ส่วนคือ
1. ติดตั้งที่เครื่อง Centralize-log Server
2. ติดตั้งที่เครื่อง Client หรือ เครื่องที่ forward log ไปให้ Centralize-log Server
เริ่มจากเครื่อง Client ก่อน
#apt-get install openssl stunnel |
สร้างคอนฟิกไฟล์สำหรับ stunnel
#nano /etc/stunnel/syslog-client.conf |
พิมพ์ตามนี้เลย
debug = 7
client = yes
[rsyslogd]
accept = 127.0.0.1:61514
connect = [ip ของ centralize log server]:60514
แก้ไขไฟล์ /etc/default/stunnel4
#nano /etc/default/stunnel4 |
แก้ไข
ENABLED=1
FILES="/etc/stunnel/syslog-client.conf"
เริ่มโพรเซส stunnel
#/etc/init.d/stunnel4 start |
ทดสอบ
#netstat -an grep 61514 |
แก้ไขไฟล์ /etc/rsyslog.conf
#nano /etc/rsyslog.conf |
เพิ่มบรรทัด
*.* @@127.0.0.1:61514
สั่ง restart service rsyslog
#/etc/init.d/rsyslog restart |
ติดตั้งที่ Centralize-Log server
ติดตั้ง openssl และ stunnel
#apt-get install openssl stunnel |
• สร้าง certificat
#cd /etc/stunnel |
• สร้างคอนฟิกไฟล์สำหรับ stunnel
#nano /etc/stunnel/syslog-server.conf |
พิมพ์
cert = /etc/stunnel/stunnel.pem
debug = 7
[rsyslogd]
accept = 60514
connect = 61514
แก้ไฟล์ /etc/default/stunnel4
แก้ไข
ENABLED=1
FILES="/etc/stunnel/syslog-server.conf"
• เริ่มโพรเซส stunnel
#/etc/init.d/stunnel4 start |
• เริ่ม rsyslog
#/etc/init.d/rsyslog restart |
•ทดสอบ
#netstat -an grep 514 |
tcp 0 0 0.0.0.0:60514 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:61514 0.0.0.0:* LISTEN
$IPTABLES -A INPUT -p tcp -m tcp --dport 60514 -j ACCEPT
ที่มา: http://log.cm.edu/workshop.pdf
http://www.thaicert.org/paper/encryption/stunnel.php
http://www.rsyslog.com/doc-install.html
ไม่มีความคิดเห็น:
แสดงความคิดเห็น