Monday, December 16, 2013
ขั้นตอนการ Backup ไฟล์ Configuration ของ Juniper Firewall (ISG Series) และ Fortigate Firewall รวมถึงการทำ Compare Configuration. Part2/2
หลังจากที่เราทำการทดสอบ Script ทั้งสองเรียบร้อยแล้ว ก็ให้เรานำ Script ทั้ง 2 ไปวางไว้ที่ /root
และเขียน Script เพื่อทำการเก็บ Config ของไฟร์วอลล์ทั้งสองนั้นในรูปแบบของไฟล์ที่มีการบีบอัดข้อมูล
compress.sh
/root/fortigate.sh
/root/juniper.sh
gunzip /tftpboot/*.gz
chmod 644 /tftpboot/*
chown root:root /tftpboot/*
BASELOG="/tftp/log"
BASEDIR=${BASELOG}/`date +%d-%b-%y`
[ ! -d ${BASEDIR} ] && mkdir -p ${BASEDIR}
mv /srv/tftp/ru* ${BASEDIR}
หลัง จากนั้น ให้เราเขียน Script เพื่อทำการตรวจสอบว่า File config ของเมื่อวาน และของปัจจุบันที่เราเพิ่งได้ backup ไปนั้น มีความแตกต่างกันอย่างไร มีการเพิ่มอะไรใหม่ ๆ หรือมีการลบอะไรออกไปบ้าง และให้ทำการส่งเมล์ออกไปยัง Admin
checkdiff.sh
#!/bin/bash
BASELOG="/tftp/log/"
BASEDIR=${BASELOG}/`date +%d-%b-%y`
[ ! -d ${BASEDIR} ] && mkdir -p ${BASEDIR}
mv /tftpboot/* ${BASEDIR}
TODAY=`date +%d-%b-%y`
YESTERDAY=${BASELOG}/`date --date='1 day ago' +%d-%b-%y`
FILENAME="
juniper
fortigate
“
echo "Date - " ${TODAY} >> /tftp/report.log
echo "------------------------------------------------------------------------" >> /tftp/report.log
ls -l ${BASEDIR} >> /tftp/report.log
echo "*************************************************" >> /tftp/report.log
for filename in ${FILENAME}
do
FILENAME=`echo ${filename}
cut -f 1`
SUBDIR=${BASEDIR}
YSUBDIR=${YESTERDAY}
echo "File" ${filename} " " >> /tftp/report.log
echo "-----------------------------------------------------------------" >> /tftp/report.log
echo "Check Differential configuration" >> /tftp/report.log
diff ${SUBDIR}/${FILENAME} ${YSUBDIR}/${FILENAME} >> /tftp/diff.log
echo "............... New configuration added ............." >> /tftp/report.log
echo "-----------------------------------------------------------------" >> /tftp/report.log
cat /tftp/diff.log
grep "<" >> /tftp/report.log
echo "-----------------------------------------------------------------" >> /tftp/report.log
echo ".............. Old configuration Remove ............." >> /tftp/report.log
echo "-----------------------------------------------------------------" >> /tftp/report.log
cat /tftp/diff.log
grep ">" >> /tftp/report.log
echo "-----------------------------------------------------------------" >> /tftp/report.log
echo "End of file" ${filename} " " >> /tftp/report.log
echo "-----------------------------------------------------------------" >> /tftp/report.log
echo "******************************************" >> /tftp/report.log
rm -f /tftp/diff.log
touch /tftp/diff.log
done
SUBJECT="Firewall differential configuration"
EMAIL= “taveesak@gmail.com"
EMAILMESSAGE="/tftp/report.log"
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
rm -f /tftp/report.log
สุดท้าย
ตั้ง Crontab ให้รัน script compress.sh และ checkdiff.sh ทุกๆ วัน ในเวลาที่เราต้องการ
เท่านั้น
เหมือนเดิม หากว่าเราจะทดสอบว่า Script ที่เขียนนั้น ใช้งานได้จริงหรือไม่ ก็แค่ รัน Script นั้นขึ้นมา
หากใช้งานได้ เราก็จะเห็นเมล์ส่งเข้ามายัง Inbox ของเราครับ
--------------------------------------------------------------------------------------------------
PS. Part2 นี้ รีบไปหน่อย หากมีข้อสงสัย ก็ส่งเมล์มาถามนะครับ