2008年12月26日 星期五

MailScanner 的好幫手 MailWatch

MailScanner 在處理垃圾郵件和病毒信件時 它的紀錄都是文字檔 , 紀錄詳細每封信件的處理過程 . 文字敘述的紀錄檔 當累積大量的資訊時就很難判讀

MailWatch 就是 MailScanner 的好搭檔 , 它把 MailScanner 的紀錄轉換成WEB 可以很清楚的辨別每一封來信的狀況 , 非常容易判讀 . 如下圖 :


(圖片來源 : 官方網站 http://mailwatch.sourceforge.net/)


它可以看每封信件的判斷狀況 , 讓您更加清楚知道判斷依據 如下圖 :


(圖片來源 : 官方網站 http://mailwatch.sourceforge.net/)


安裝步驟 :

1 : 先前須檢查是否有安裝 Apache , MySQL 及 PHP , PHP-gd , PHP-pear , PHP-mysql , PHP-devel 及相關元件

指令 : rpm -qa httpd , rpm -qa php* , rpm -qa mysql



結果如下圖 :


2 : 確認及設定 開機啟動 MySQL , httpd 服務

設定開機啟動服務 :

chkconfig http on
chkconfig mysqld on

查看是否有啟動服務 :


ps -ef grep mysql
ps -ef grep httpd

有啟動服務 , 如下圖 :



若無 則啟動服務

service mysql start
service httpd start


3 : 若第一次使用 mysql 記得用下列指令變更密碼

/usr/bin/mysqladmin -u root password 'XXXXXX'


4 : 設定 php.ini

vi /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


5 : 下載 及安裝 MailWatch

下載點 : 官網
下載點 : http://sourceforge.net/project/showfiles.php?group_id=87163

安裝 MailWatch

tar -zxvf mailwatch-x.x.x.tar.gz


6 : 建立 MailWatch 資料庫

以下指令必須使用 root 登入

cd mailwatch-x.x.x
mysql -p <>


7 : 修改 MailWatch.pm 檔案 , 並複製到別的目錄

vi MailWatch.pm

my($db_name) = 'mailscanner'; (資料庫名稱)
my($db_host) = 'localhost'; (資料庫位置)
my($db_user) = 'root'; (使用者帳號)
my($db_pass) = 'xxxxx...'; (使用者密碼)

cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/


8 : 新增 mailwatch 網頁的使用者

mysql mailscanner -u root -p
Enter password : xxxxxx

mysql > insert into user values ('root',md5('xxxxx'),'root','A','0','0','0','0','0');


9 : 安裝 和 設定 MailWatch

在之前解壓縮之後產生的目錄裡有一個子目錄 , 名稱為 mailscanner


mv mailscanner /var/www/html

修改目錄權限

cd /var/www/html/mailscanner
chown root:apache images
chmod ug+rwx images
chown root:apache images/cache
chmod ug+rwx images/cache


10 : 修改 conf.php 設定

cd /var/www/html/mailscanner
cp conf.php.example conf.php

vi conf.php

define(DB_TYPE , 'mysql');
define(DB_USER, 'root');
define(DB_PASS, 'XXXXX');
define(DB_HOST, 'localhost');
define(DB_NAME, 'mailscanner');


11 : 修改 MailScanner 設定

先暫停 MailScanner

service MailScanner stop

vi /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


11 : 整合 黑名單和白名單

在 MailWatch 也可以設定黑白名單
把之前解壓縮的目錄裡的檔案 SQLBlackWhiteList.pm 複製一份到 /usr/lib/MailScanner/MailScanner/CustomFunctions

vi SQLBlackWhiteList.pm

my($db_name) = 'mailscanner';
my($db_host) = 'localhost';
my($db_user) = 'root';
my($db_pass) = 'xxxxx';

vi /etc/MailScanner/MailScanner.conf

Is Definitely Not Spam = &SQLWhitelist
Is Definitely Spam = &SQLBlacklist


12 : 修改 MailScanner 目錄下的 spam.assassin.prefs.conf

vi /etc/MailScanner/spam.assassin.prefs.conf

加入下列兩行

bayes_path /etc/MailScanner/bayes/bayes
bayes_file_mode 0660


13 : 建立 bayes 新目錄 , 並把原有 spamassassin 資料庫複製過來

mkdir /etc/MailScanner/bayeschown root:apache /etc/Mailscanner/bayes
chmod g+rws /etc/MailScanner/bayes
cp /root/.spamassasin/bayes_* /etc/MailScanner/bayes
chown root:apache /etc/MailScanner/bayes/bayes_*
chmod g+rws /etc/MailScanner/bayes/bayes_*


14 : 測試 spam.assassin.prefs.conf

spamassassin -D -p /etc/MailScanner/spam.assassin.prefs.conf --lint


15 : 重新啟動 MailScanner

service MailScanner restart && tail -f /var/log/maillog

若看到如下圖的訊息
裡面有一行:

Config: calling custom init function MailWatchLogging

表示安裝成功




可以在瀏覽器網址打 http://xxx.xxxx.xxx/mailscanner

輸入帳號密碼即可看到漂亮的報表


最後 隨著時間的增加 記錄也會不斷的增加 , 可以用下列的 SQL 指令來刪除過期的資料

delete from maillog where date < 'xxxx(年)-xx(月)-xx(日)';










沒有留言: