InstallMailScannerMailWatchOnUbuntu1204

จาก Wiki Opensource

หนุ่ม

(อยู่ระหว่างการปรับปรุง หากพบข้อผิดพลาด หรือข้อสงสัยกรุณาแจ้งด้วยครับ)


ติดตั้งบน Ubuntu 12.04 Server

  1. กรณีต้องการใช้เครื่องเดียวกันนี้ ทำหน้าที่เป็น Mail Server ด้วย
    โดยใช้ Mail Box แบบ Maildir และใช้ Dovecot เป็น Pop/Imap Server
    ให้ทำตาม ขั้นตอนการติดตั้ง Mail Server
  2. ติดตั้งจาก
    wget -O - http://apt.baruwa.org/baruwa-apt-keys.gpg | sudo apt-key add -
    sudo vi /etc/apt/sources.list
    เพิ่มไว้ท้ายสุด
    deb http://apt.baruwa.org/ubuntu precise main
    แล้ว
    sudo apt-get update
    sudo apt-get install mailscanner

    version ทีได้ปัจจุบันคือ mailscanner_4.84.5-4

  3. แก้ไขไฟล์
    sudo vi /etc/default/mailscanner
    uncomment บรรทัดที่เขียนว่า
    run_mailscanner=1

  4. สร้างไฟล์
    sudo vi /etc/MailScanner/conf.d/psu.conf
    ใส่เนื้อหาตามนี้
    ####
    %org-name% = PSU
    %org-long-name% = Prince of Songkla University
    %web-site% = www.psu.ac.th
    Spam-Virus Header = X-%org-name%-MailScanner-SpamVirus-Report:
    Mail Header = X-%org-name%-MailScanner:
    Spam Header = X-%org-name%-MailScanner-SpamCheck:
    Spam Score Header = X-%org-name%-MailScanner-SpamScore:
    Envelope From Header = X-%org-name%-MailScanner-From:
    Envelope To Header = X-%org-name%-MailScanner-To:
    ID Header = X-%org-name%-MailScanner-ID:
    IP Protocol Version Header = # X-%org-name%-MailScanner-IP-Protocol:
    Hostname = the %org-name% ($HOSTNAME) MailScanner
    Attachment Warning Filename = %org-name%-Attachment-Warning.txt
    Watermark Secret = %org-name%-Secret
    Watermark Header = X-%org-name%-MailScanner-Watermark:
    MCP Header = X-%org-name%-MailScanner-MCPCheck:
    Run As User = postfix
    Run As Group = www-data
    Incoming Queue Dir = /var/spool/postfix/hold
    Outgoing Queue Dir = /var/spool/postfix/incoming
    MTA=postfix
    Virus Scanners = clamav
    Quarantine User = postfix
    Quarantine Group = www-data
    Quarantine Permissions = 0660
    Quarantine Whole Message = yes
    Quarantine Whole Messages As Queue Files = no
    Spam Actions = deliver header "X-Spam-Status: Yes" store
    High Scoring Spam Actions = deliver header "X-Spam-Status: Yes" store
    Non Spam Actions = deliver header "X-Spam-Status: No" store
    Always Looked Up Last = &MailWatchLogging
    ####


    แก้ /etc/MailScanner/MailScanner.conf นิดเดียว ตรงที่
    MTA=postfix
    (มิเช่นนั้น MailWatch จะไปทำงานกับ exim แทน)
  5. แก้ไข spamassassin ซึ่งทำหน้าที่เรียนรู้ลักษณะของ spam ให้ทำงานถูกต้อง
    โดยแก้ไขที่ /etc/MailScanner/spam.assassin.prefs.conf

    uncomment บรรทัดทึ่่เขียนว่า
    bayes_file_mode 0770

  6. sudo apt-get install mysql-server apache2 php5-mysql php5-gd php5-cli mysql-client libapache2-mod-php5
    ตั้งรหัสผ่านให้ mysql เป็น mysqldroot
  7. ติดตั้ง MailWatch
    wget http://downloads.sourceforge.net/project/mailwatch/mailwatch/1.2.0-beta-4/mailwatch-1.2.0-beta-4.tar.gz
    cd ~
    sudo tar -zxvf mailwatch-1.2.0-beta-4.tar.gz
    sudo ln -s mailwatch-1.2.0-beta-4 mailwatch
    cd mailwatch
    sudo sed -i 's/timestamp(14)/timestamp/g' create.sql
    sudo sed -i 's/TYPE=/ENGINE=/g' create.sql
    mysql -uroot -pmysqldroot < create.sql
    mysql -uroot -pmysqldroot -D mailscanner -e "GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'mailwatchpassword'; "
    sudo sed -i 's/my($db_user).*$/my($db_user) = \x27mailwatch\x27;/g' MailScanner_perl_scripts/MailWatch.pm
    sudo sed -i 's/my($db_pass).*$/my($db_pass) = \x27mailwatchpassword\x27;/g' MailScanner_perl_scripts/MailWatch.pm
    sudo cp MailScanner_perl_scripts/MailWatch.pm /usr/share/MailScanner/MailScanner/CustomFunctions
    mysql mailscanner -u mailwatch -pmailwatchpassword -e "INSERT INTO users VALUES ('mailwatchweb',md5('mailwatchwebpassword'),'MailWatch Web User','A','0','0','0','0','0');"
    sudo mv mailscanner /var/www
    cd /var/www/mailscanner
    sudo chown root.www-data images
    sudo chown root.www-data images/cache
    sudo chmod ug+rwx images
    sudo chmod ug+rwx images/cache
    sudo cp conf.php.example conf.php

    sudo sed -i 's/define(\x27DB_PASS\x27,.*$/define(\x27DB_PASS\x27, \x27mailwatchpassword\x27);/g' conf.php
    sudo sed -i 's/define(\x27DB_USER\x27,.*$/define(\x27DB_USER\x27, \x27mailwatch\x27);/g' conf.php
    sudo sed -i 's/define(\x27QUARANTINE_USE_FLAG\x27,.*$/define(\x27QUARANTINE_USE_FLAG\x27, true);/g' conf.php
    sudo sed -i 's|define(\x27MAILWATCH_HOME\x27,.*$|define(\x27MAILWATCH_HOME\x27, \x27/var/www/mailscanner\x27);|g' conf.php
    sudo sed -i 's|define(\x27TIME_ZONE\x27,.*$|define(\x27TIME_ZONE\x27, \x27Asia/Bangkok\x27);|g' conf.php

    แก้ไขไฟล์ /var/www/mailscanner/do_message_ops.php (ในกรณีที่ต้องการอ่าน queue file ใน quarantine)
    //if (preg_match('/^OPT-([-[a-zA-Z0-9]+)$/', $k, $Regs)) {
    //$id = $Regs[1];
    if (preg_match('/^OPT-([a-zA-Z0-9]+)_([a-zA-Z0-9]+)/', $k, $Regs)) {
    $id = "$Regs[1].$Regs[2]";

  8. ส่งให้ Postfix ส่งงานให้ MailScanner ทำงาน
    ติดตั้ง Postfix
    sudo postconf -e 'header_checks = regexp:/etc/postfix/header_check'
    sudo sh -c "echo '/^Received:/ HOLD' >> /etc/postfix/header_check"
    sudo postmap /etc/postfix/header_check
    sudo chown postfix.www-data /var/spool/postfix/hold
    sudo chown postfix.www-data /var/spool/postfix/incoming
    sudo chmod 750 /var/spool/postfix/hold
    sudo chmod 750 /var/spool/postfix/incoming
  9. เริ่มให้ทุกบริการทำงาน
    sudo /etc/init.d/postfix restart
    sudo /etc/init.d/mysql restart
    sudo /etc/init.d/apache2 restart
    sudo /etc/init.d/mailscanner restart
  10. ใช้งาน MailWatch ได้ที่
    http://youip.address/mailscanner
    Username: mailwatchweb
    Password: mailwatchwebpassword