MailWatch (MailScanner ของข้าใครอย่าแตะ)
ถ้าพูดถึงเมล์สแกนเนอร์ในกลุ่มโอเพ่นซอร์สแล้วเราคงรู้จัก Amavis, Amavisd-new และ MailScanner กันมาบ้าง สำหรับตัวผู้เขียนเองชอบใช้ MailScanner เป็นหลัก เนื่องจากไฟล์คอนฟิกเกอเรชันที่อ่านง่ายและสามารถสร้าง ruleset เพื่อความยืดหยุ่นในการนำไปใช้งาน แต่หลังจากเรานำ MailScanner ไปใช้สักระยะหนึ่งแล้วเราจะพบว่าในล็อกไฟล์ที่ MailScanner สร้างขึ้นในไดเรกทอรี /var/log/maillog นั้นมีข้อมูลเกี่ยวกับอีเมล์ที่ผ่านเข้าออกในเมล์เซิร์ฟเวอร์ ไม่ว่าจะเป็นข้อมูลเกี่ยวกับอีเมล์ที่เป็นไวรัสหรือสแปม ซึ่งเราสามารถนำข้อมูลเหล่านั้นมาวิเคราะห์ได้ว่า ระบบเมล์เซิร์ฟเวอร์ที่เราใช้อยู่นั้นมีอีเมล์ที่พึงประสงค์และไม่พึงประสงค์ผ่านเข้าออกมากเพียงไร แต่ข้อมูลจากล็อกไฟล์จะเป็นข้อมูลแบบเท็กซ์ที่เรียงต่อกันไป การนำข้อมูลจากไฟล์ maillog จะต้องทำการเขียนโปรแกรมดึงข้อมูลเหล่านั้นมาทำการวิเคราะห์ ซึ่งเป็นการยากพอสมควร ทำให้ผู้ดูและระบบบางท่านอาจจะละเลยการดูข้อมูลของล็อกไฟล์ประกอบ เพื่อการปรับปรุงให้เมล์เซิร์ฟเวอร์มีความคงทนมากขึ้น
MailWatch เป็นเครื่องมือที่ใช้ดูล็อกไฟล์ที่เกิดจาก MailSanner ให้สะดวกมากขึ้น โดยที่ MailWatch จะทำหน้าที่ดึงล็อกไฟล์ที่เกิดจาก MailScanner เข้าสู่ฐานข้อมูล MySQL หลังจากนั้น MailWatch จะนำข้อมูลที่จับได้มาวิเคราะห์เป็นรายงานดังภาพตัวอย่างต่อไปนี้

ภาพที่ 1 หน้าหลักของ MailWatch

ภาพที่ 2 หน้ารายงาน

ภาพที่ 3 ตัวอย่างรายงานจำนวนเมล์ที่เข้าออกประจำวัน
คุณสมบัติของ MailWatch
- สามารถแสดงขนาดของเมล์คิว (สนับสนุนเฉพาะ Sendmail/Exim)
- สามารถดู Load Average , รายงานเมล์เข้าออกประจำวัน, สแปม, ไวรัส และการระบบการป้องกันเนื้อหาซึ่งแยกในแต่ละรายงานไว้ดังตัวอย่างภาพที่ 2
- ระบบการแยกสี เช่น สแปมเมล์จะเป็นสีชมพู และสแปมเมล์ที่เป็นสีชมพูเข้มหมายถึงสแปมเมล์ที่มีค่าสูง (ขึ้นอยู่ตอนที่กำหนดใน MailScanner)
- สามารถเข้าไปดูรายละเอียดได้ในแต่ะละเมล์
- มีระบบการจัดการการกักกัน (Quarantine management) ไม่ว่าจะเป็นการปล่อย ลบ
หรือการใช้ sa-learn
- ในรายงานแต่ละรายงานเราสามารถเสริมระบบกรองพร้อมไปกับรายงาน เช่น เราสามารถดูเมล์ที่เข้าออกประจำวัน โดยมีความรุนแรงสแปมตั้งแต่ 8 เป็นต้นไป
- มีระบบการดูสถานะของ Virus Scanner (สนับสนุนเฉพาะ sophos และ clamav)

ภาพที่ 4 รายงานสถานะของ ClamAV
- สามารถกำหนดยูสเซอร์ได้ 3 ระดับ คือ ระดับยูสเซอร์ ,ระดับโดเมน และระดับแอดมิน
- สนับสนุน XML-RPC สามารถติดตั้ง MailScanner/MailWatch หลายตัวให้รวมเป็นหนึ่ง
การติดตั้ง MailWatch
ในบทความนี้จะทดลองติดตั้ง Postfix, MailScanner, SpamAssassin, ClamAV และ MailWatch โดยที่จะอธิบายในส่วนของการติดตั้ง MailWatch เพียงอย่างเดียว ผู้อ่านสามารถดาวน์โหลด MailWatch ได้ที่ http://mailwatch.sourceforge.net ขณะที่เขียนบทความอยู่นี้เป็นเวอร์ชัน 1.0.3 ซึ่งมีวิธีการติดตั้งดังต่อไปนี้
- แก้ไขไฟล์ /etc/php.ini ดังต่อไปนี้
short_open_tag = On
safe_mode = Off
register_globals = Off
magic_quotes_gpc = On
magic_quotes_runtime = Off
session.auto_start = 0
- #rpm -ivh /mnt/space1/centos42/files/CentOS/RPMS/php-gd-4.3.9-3.8.i386.rpm (สำหรับผู้ที่ใช้ RedHat 4 ขึ้นไป)
- #cp /mnt/space1/lab/ch12/mailwatch-1.0.3.tar.gz /source
- #cd /source
- #tar -xzvf mailwatch-1.0.3.tar.gz
- #cd mailwatch
- #mysql -u root -p < create.sql
- #mysql -u root -pท mysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY yourpassword;
- แก้ไขไฟล์ MailWatch.pm ดังนี้
- my($db_user) = mailwatch;
- my($db_pass) = yourpassword ที่บันทึกลงในข้อ 8
กรณีต้องการลด log mail ขาออก
ค้นหา
MailScanner::Log::InfoLog($$message(id): Logged to MailWatch SQL)
เปลี่ยนเป็น
MailScanner::Log::DebugLog($$message(id): Logged to MailWatch SQL)
ค้นหา
MailScanner::Log::InfoLog(Logging message $message $msg(id) to SQL);
เปลี่ยนเป็น
MailScanner::Log::DebugLog(Logging message $message $msg(id) to SQL);
#cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions
#mysql mailscanner -u mailwatch -pท mysql> INSERT INTO users VALUES (mailwatch,md5(yourpassword ในข้อ8),FullName,A,0,0,0,0,0);
#mv mailscanner/ /var/www/html
#cd /var/www/html/mailscanner
#chown root.apache images
#chmod ug+rwx images
#chmod root.apache images/cache
#chmod ug+rwx images/cache
#cd /var/www/html/mailscanner
#cp conf.php.example conf.php
แก้ไขไฟล์ /var/www/html/mailscanner/conf.phpท
- define(DB_USER, mailwatch);
- define(DB_PASS, yourpassword ในข้อ 8);
- define(QUARANTINE_USE_FLAG,true);
แก้ไขไฟล์ /var/www/html/mailscanner/mailq.php (กรณีใช้ Sendmail และ Exim)
ค้นหา
case default:
เปลี่ยนเป็น
default:
กรณีต้องการให้มีการล้างไดเรกทอรี quarantine
- #cd /etc/cron.daily
- #แก้ไขไฟล์ clean.quarantineท $disabled = 1;
- #cp /source/mailwatch/tools/quarantine_maint.php /usr/local/bin
- #echo /usr/local/bin/quarantine_main.php - -clean >
/etc/cron.daily/mailwatch_quarantine_maint.sh
- #chmod +x /etc/cron.daily/mailwatch_quarantine_maint.sh
- กรณีต้องการใช้ db_clean.php
ค้นหา
#!/user/bin/php qn
เป็น
#!/usr/bin/php q
ค้น
dequery(DELETE LOW_PRIORITY FROM maillog WHERE timestamp < (now() - INTERVAL 60 DAY));
เป็น
dequery(DELETE LOW_PRIORITY FROM maillog WHERE date < (now() - INTERVAL 60 DAY));
ปรับคอนฟิก /etc/MailScanner/MailScanner.conf
- แก้ไขไฟล์ /etc/MailScanner/MailScanner.conf
- Quarantine User = root
- Quarantine Group = apache
- Quarantine Permissions = 0660
- Quarantine Whole Message = yes
- Quarantine Whole Message As Queue Files = no
- Detailed Spam Report = yes
- Include Scores In SpamAssassin Report = yes
- Always Looked Up Last = &MailWatchLogging
- service MailScanner restart 3. tail -f /var/log/maillog
- tail -f /var/log/maillog
ต้องการให้ MailWatch จัดการเรื่อง Backlist/Whitelist
- #cd /source/mailwatch
- แก้ไขไฟล์ SQLBackWhiteList.pm ดังนี้
- my($db_user) = mailwatch;
- my($db_pass) = password ที่บันทึกลงในข้อ 8
#cp SQLBackWhiteList.pm
/usr/lib/MailScanner/MailScanner/CustomFunctions
แก้ไขไฟล์ /etc/MailScanner เพิ่มเติม
- Is Definitely Not Spam = &SQLWhitelist
- Is Definitely Spam = &SQLBlacklist
ต้องการนำ Bayesian Database มาใช้ใน MailWatch
- แก้ไขไฟล์ /etc/MailScanner/spam.assassin.prefs.conf
- use_bayes 1
- bayes_path /etc/MailScanner/bayes/bayes
- bayes_file_mode 0770
#mkdir /etc/MailScanner/bayes
#chown root.apache /etc/MailScanner/bayes
#chmod g+rws /etc/MailScanner/bayes
กรณีมี bayes database อยู่เก่า เช่น อยู่ที่ root
- #cp /root/.spamassassin/bayes_* /etc/MailScanner/bayes
- #chown root.apache /etc/MailScanner/bayes/bayes_*
- #chmod g+rw /etc/MailScanner/bayes/bayes_*
ทดสอบ Bayes ด้วย SpamAssassin
#spamassassin -D -p
/etc/MailScanner/spam.assassin.prefs.conf - -lint
หลังจากติดตั้งและดูข้อมูลผ่าน MailWatch ทำให้การมองภาพรวมเกี่ยวกับเมล์เซิร์ฟเวอร์ดูง่ายขึ้น เช่น ไวรัสที่ปัจจุบันกำลังแพร่หลายอยู่เป็นไวรัสอะไร สแปมที่ถูกจับโดยส่วนใหญ่อยู่ที่ระดับเท่าใด ซึ่งอาจทำให้เราสามารถวิเคราะห์การกำหนด Score ของสแปมให้เหมาะสมกับองค์กรของเรามากยิ่งขึ้น สามารถดู Load Average ของเครื่องเมล์เซิร์ฟเวอร์ของเราต้องมีการปรับปรุงหรือไม่ แถมท้ายด้วยหน้าเมนู Tools/Links ซึ่งสามารถดูสถานะข้อมูลของ ClamAV, F-Prot, MySQL, MailScanner Configuration ,PHP Information , SpamAssassin Lint (Test)และอีกหลายๆตัว เพียงแค่นี้ก็ทำให้ผู้ดูและระบบตรวจสอบระบบสุขภาพเมล์เซิร์ฟเวอร์ของท่านได้ทุกที่ทั่วโลกในหลากหลายรายงานด้วยเครื่องมือที่ชื่อว่า MailWatch
แหล่งที่มา http://mailwatch.sourceforge.net
|