12 ก.พ. 2553

ติดตั้ง Rsyslog + Stunnel บน Ubuntu 9.10


  • 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
#openssl req -new -x509 -days 3650 -nodes -out stunnel.pem -keyout stunnel.pem


• สร้างคอนฟิกไฟล์สำหรับ 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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น