วิธีการนี้ ทดสอบการใช้งานกับ Ubuntu 8.04 (วิธีการเลือกแผ่น Ubuntu, การปรับแต่งหลังติดตั้ง Ubuntu และ การใช้งาน apt-get ภายใน ม.สงขลานครินทร์)
และเพื่อความสะดวก ขอให้ sudo su (เพื่อใช้สิทธิ์ Super User) ในการแก้ไขระบบ
MailScanner
ติดตั้ง Postfix (อ่านข้อมูลเพิ่มเติมที่นี่)
sudo apt-get install postfix
ติดตั้ง package mailscanner เพื่อตรวจคัดกรองจดหมาย และ clamav เพื่อหาหนอนและไวรัสคอมพิวเตอร์ใน e-mail
sudo apt-get install mailscanner clamav
!!! สำหรับ Ubuntu 10.04, mailscanner ที่มากับ Ubuntu ไม่สามารถใช้การได้ ให้ทำดังนี้แทน !!!
sudo apt-get install libconvert-tnef-perl libdbd-sqlite3-perl libfilesys-df-perl libmailtools-perl libmime-tools-perl libmime-perl libnet-cidr-perl libsys-syslog-perl libio-stringy-perl libfile-temp-perl libsys-hostname-long-perl
wget http://debian.intergenia.de/debian/pool/main/m/mailscanner/mailscanner_4.79.11-2.2_all.deb
sudo dpkg --force-all -i mailscanner_4.79.11-2.2_all.deb
แก้ไขไฟล์ /etc/MailScanner/MailScanner.conf
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA=postfix
Virus Scanners = clamav
แก้ไขไฟล์ /etc/MailScanner/spam.assassin.prefs.conf
razor_config /var/lib/MailScanner
ติดตั้ง package เครื่องมือช่วยวิเคราะห์ Spam
sudo apt-get install pyzor razor
sudo apt-get -f install
แก้ไข /etc/default/mailscanner
run_mailscanner=1
แก้ไขสิทธิ์ ให้เป็นของ postfix ในไฟล์ต่อไปนี้
sudo chown -R postfix.postfix /var/spool/MailScanner/
sudo chown -R postfix.postfix /var/lib/MailScanner/
sudo chown -R postfix.postfix /var/run/MailScanner/
sudo chown -R postfix.postfix /var/lock/subsys/MailScanner/
หลังการเปลี่ยนแปลง ก็ restart mailscanner
sudo /etc/init.d/mailscanner restart
MailWatch
ติดตั้ง package เกี่ยวกับ mysql และ php ต่างๆ
sudo apt-get install mysql-server php5-mysql php5-gd php5-cli
ระบบจะให้ตั้ง password ของ mysql ให้กำหนดลงไป (ตั้งรหัสไว้อย่างไรจำให้ได้ด้วย)
restart apache
sudo /etc/init.d/apache2 restart
restart mysql
sudo /etc/init.d/mysql start
download mailwatch มา (ในกรณีนี้ ดึงจาก ftp ของมหาวิทยาลัยสงขลานครินทร์)
sudo wget ftp://ftp.psu.ac.th/pub/mailwatch/mailwatch-1.0.4.tar.gz
แตกไฟล์ออกมาเป็น directory
sudo tar -zxvf mailwatch-1.0.4.tar.gz
sudo ln -s mailwatch-1.0.4 mailwatch
เข้าไปใน directory mailwatch เพื่อดำเนินการติดตั้ง mailwatch
cd mailwatch
เรียกใช้ sql script เพื่อสร้าง Database สำหรับ MailWatch
mysql -uroot -p < create.sql
Login เข้าไปใน mysql เพื่อสร้างผู้ใช้สำหรับ MailWatch
mysql -u root -p
mysql> GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY 'mailwatchpassword';
mysql> quit
แก้ไขไฟล์ MailWatch.pm
my($db_user) = 'mailwatch';
my($db_pass) = 'mailwatchpassword';
นำไฟล์ MailWatch.pm ไปผูกกับ MailScanner
sudo cp MailWatch.pm /usr/share/MailScanner/MailScanner/CustomFunctions
Login เข้า mysql ด้วยสิทธิ์ user ของ MailWatch และสร้าง user สำหรับเข้าใช้งานทาง Web
mysql mailscanner -u mailwatch -p
mysql> INSERT INTO users VALUES ('mailwatchweb',md5('mailwatchwebpassword'),'MailWatch Web User','A','0','0','0','0','0');
ย้าย directory mailwatch ไปไว้ใน Document Root ของ apache เพื่อให้สามารถเรียกใช้ทาง web ได้
sudo mv mailscanner /var/www
เข้าไปใน directory /var/www/mailscanner เพื่อกำหนดสิทธิ์การเข้าถึง directory ส่วนต่างๆ
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
copy ต้นแบบ configuration ของเดิม มาใช้งาน
sudo cp conf.php.example conf.php
แก้ไขไฟล์ conf.php เพื่อทำให้ MailWatch เข้าใช้ mysql ได้
define(DB_USER, 'mailwatch');
define(DB_PASS, 'mailwatchpassword');
define(QUARANTINE_USE_FLAG, true);
//define(MAILWATCH_HOME, '/var/www/html/mailscanner');
define(MAILWATCH_HOME, '/var/www/mailscanner');
แก้ไขไฟล์ /path/to/mailwatch/tools/quarantine_maint.php (/path/to/mailwatch/ คือ path ที่เราแตกไฟล์ mailwatch-1.0.4.tar.gz ออกมาในข้างต้น ต้องแก้ไขให้ตรงกับความเป็นจริงด้วย)
//require('/var/www/html/mailscanner/functions.php');
require('/var/www/mailscanner/functions.php');
สร้างไฟล์ cron สำหรับลบ Quarantine ของ MailWatch ทุกวัน และเปลี่ยนสิทธ์ให้สามารถ execute ได้
sudo echo "/path/to/mailwatch/tools/quarantine_maint.php --clean" > /etc/cron.daily/mailwatch_quarantine_maint.sh
sudo chmod +x /etc/cron.daily/mailwatch_quarantine_maint.sh
แก้ไขไฟล์ /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]";
หยุดการทำงานของ mailscanner ชั่วคราวเพื่อแก้ไขระบบ
sudo /etc/init.d/mailscanner stop
แก้ไขไฟล์ /etc/MailScanner/MailScanner.conf
Run As Group = www-data
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/spam.assassin.prefs.conf ค่าต่อไปนี้
bayes_path /etc/MailScanner/bayes/bayes
bayes_file_mode 0660
แล้วสร้าง bayes directory และให้สิทธิ group เดียวกับ Web User (www-data)
sudo mkdir /etc/MailScanner/bayes
sudo chown root:www-data /etc/MailScanner/bayes
sudo chmod g+rws /etc/MailScanner/bayes
จากนั้น ย้ายของเดิม (ถ้ามี) ไปเก็บ และเปลี่ยน Permission ให้ถูกต้อง
sudo cp /home/mama/.spamassassin/bayes_* /etc/MailScanner/bayes
sudo chown root:www-data /etc/MailScanner/bayes/bayes_*
sudo chmod g+rw /etc/MailScanner/bayes/bayes_*
แก้ไขไฟล์ /etc/postfix/main.cf (เพื่อเปิดให้ postfix ไปตรวจสอบ Header ของแต่ละ e-mail โดยดูแบบตัวอย่างจากไฟล์ header_checks)
header_checks = regexp:/etc/postfix/header_checks
แก้ไขไฟล์ /etc/postfix/header_checks (บังคับให้ e-mail ไหลเข้า HOLD queue ของ Postfix เพื่อให้ MailScanner ตรวจสอบก่อนจะส่งเข้า incoming queue เพื่อส่งต่อไป)
/^Received:/ HOLD
ทำการ Restart postfix
sudo /etc/init.d/postfix restart
จากนั้น ให้ restart mailscanner อีกครั้งจึงเสร็จสมบูรณ์
sudo /etc/init.d/mailscanner start
วิธีการเข้าใช้งาน MailWatch
เปิด Web Browser ไปที่
http://your.web.site/mailscanner
ระบบจะถาม username/password สำหรับเข้า web interface ของ MailWatch ที่กำหนดไว้<span style="text-decoration: underline;"></span>