linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

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

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

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


    ภาพที่ 4 รายงานสถานะของ ClamAV


  8. สามารถกำหนดยูสเซอร์ได้ 3 ระดับ คือ ระดับยูสเซอร์ ,ระดับโดเมน และระดับแอดมิน
  9. สนับสนุน 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.sh
  6. กรณีต้องการใช้ 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. service MailScanner restart 3. tail -f /var/log/maillog
  11. tail -f /var/log/maillog


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


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