linux training in Thailand
| Home | Articles | Webboard | Download | FreeTips | Resources | Training | Blog | Web Link |
| Courses | Schedule | Price | Promotion | Map | Customer Ref. | Instructors | Certification | FAQ |
เชิญสมาชิกเข้าร่วม Meeting ในหัวข้อเรื่อง "การจัดเก็บ syslog ด้วย MySQL เพื่อทำรายงานผ่านเว็บ , การเขียนสคริปต์แจ้งเตือนผู้ใช้งานอินเตอร์เน็ตในองค์กร
การเซ็ตอัพ Nagios ให้ใช้งานร่วมกับ MS. Windows และ MS. Exchange, กลไกการ Alert และ Notify ของ Nagios" ...
วันอาทิตย์ที่ 28 กันยายน 9.30 น.-12.30 น. อ่านต่อ...

ปิดทำการวันที่ 26 กุมภาพันธ์ - 1 มีนาคม 2553 กรุณาติดต่อที่หมายเลข 089 890-5494

ถ้าพูดถึงเมล์สแกนเนอร์ในกลุ่มโอเพ่นซอร์สแล้วเราคงรู้จัก 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)
  • สามารถกำหนดยูสเซอร์ได้ 3 ระดับ คือ ระดับยูสเซอร์ ,ระดับโดเมน และระดับแอดมิน
  • สนับสนุน XML-RPC สามารถติดตั้ง MailScanner/MailWatch หลายตัวให้รวมเป็นหนึ่ง
  • คุณสมบัติของ MailWatchในบทความนี้จะทดลองติดตั้ง Postfix, MailScanner, SpamAssassin, ClamAV และ MailWatch โดยที่จะอธิบายในส่วนของการติดตั้ง MailWatch เพียงอย่างเดียว ผู้อ่านสามารถดาวน์โหลด MailWatch ได้ที่ http://mailwatch.sourceforge.net ขณะที่เขียนบทความอยู่นี้เป็นเวอร์ชัน 1.0.3 ซึ่งมีวิธีการติดตั้งดังต่อไปนี้ 1. แก้ไขไฟล์ /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
    2. #rpm -ivh /mnt/space1/centos42/files/CentOS/RPMS/php-gd-4.3.9-3.8.i386.rpm (สำหรับผู้ที่ใช้ RedHat 4 ขึ้นไป)
    3. #cp /mnt/space1/lab/ch12/mailwatch-1.0.3.tar.gz /source
    4. #cd /source
    5. #tar -xzvf mailwatch-1.0.3.tar.gz
    6. #cd mailwatch
    7. #mysql -u root -p < create.sql
    8. #mysql -u root -pท mysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY ‘yourpassword’;
    9. แก้ไขไฟล์ 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”);
    10. #cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions
    11. #mysql mailscanner -u mailwatch -pท mysql> INSERT INTO users VALUES (‘mailwatch’,md5(‘yourpassword ในข้อ8’),’FullName’,’A’,’0’,’0’,’0’,’0’,’0’);
    12. #mv mailscanner/ /var/www/html
    13. #cd /var/www/html/mailscanner
    14. #chown root.apache images
    15. #chmod ug+rwx images
    16. #chmod root.apache images/cache
    17. #chmod ug+rwx images/cache
    18. #cd /var/www/html/mailscanner
    19. #cp conf.php.example conf.php
    20. แก้ไขไฟล์ /var/www/html/mailscanner/conf.phpท define(DB_USER, ‘mailwatch’);
  • define(DB_PASS, ‘yourpassword ในข้อ 8’);
  • define(QUARANTINE_USE_FLAG,true);
    21. แก้ไขไฟล์ /var/www/html/mailscanner/mailq.php (กรณีใช้ Sendmail และ Exim)
    ค้นหา
    case default:
    เปลี่ยนเป็น
    default:


  • กรณีต้องการให้มีการล้างไดเรกทอรี quarantine
    1. #cd /etc/cron.daily
    2. #แก้ไขไฟล์ clean.quarantineท $disabled = 1;
    3. #cp /source/mailwatch/tools/quarantine_maint.php /usr/local/bin
    4. #echo “/usr/local/bin/quarantine_main.php --clean” > /etc/cron.daily/mailwatch_quarantine_maint.sh
    5. #chmod +x /etc/cron.daily/mailwatch_quarantine_maint.sh6. กรณีต้องการใช้ 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
    1. แก้ไขไฟล์ /etc/MailScanner/MailScanner.conf
    2. Quarantine User = root
    3. Quarantine Group = apache
    4. Quarantine Permissions = 0660
    5. Quarantine Whole Message = yes
    6. Quarantine Whole Message As Queue Files = no
    7. Detailed Spam Report = yes
    8. Include Scores In SpamAssassin Report = yes
    9. Always Looked Up Last = &MailWatchLogging


    10. ต้องการให้ MailWatch จัดการเรื่อง Backlist/Whitelist
      1. #cd /source/mailwatch
      2. แก้ไขไฟล์ SQLBackWhiteList.pm ดังนี้
      3. my($db_user) = ‘mailwatch’;
      4. my($db_pass) = ‘password ที่บันทึกลงในข้อ 8’
      5. #cp SQLBackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions
      6. แก้ไขไฟล์ /etc/MailScanner เพิ่มเติม
      7. Is Definitely Not Spam = &SQLWhitelist
      8. Is Definitely Spam = &SQLBlacklist


      9. ต้องการนำ Bayesian Database มาใช้ใน MailWatch
        1. แก้ไขไฟล์ /etc/MailScanner/spam.assassin.prefs.conf
        2. use_bayes 1
        3. bayes_path /etc/MailScanner/bayes/bayes
        4. bayes_file_mode 0770
        5. #mkdir /etc/MailScanner/bayes
        6. #chown root.apache /etc/MailScanner/bayes
        7. #chmod g+rws /etc/MailScanner/bayes
        8. กรณีมี bayes database อยู่เก่า เช่น อยู่ที่ root
        9. #cp /root/.spamassassin/bayes_* /etc/MailScanner/bayes
        10. #chown root.apache /etc/MailScanner/bayes/bayes_*
        11. #chmod g+rw /etc/MailScanner/bayes/bayes_*
        12. ทดสอบ 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

    MailWatch (MailScanner ของข้าใครอย่าแตะ)

    โดย มานะ ศฤงคารรัตนะ,RHCE,LPIC-2,CCNA,MCSA