安裝 MailWatch 方式
MailWatch 可以統計 MailScanner 的運作狀況, 並將之存到 MySQL 協助管理的工具
- 下載 MailWatch
su - root cd /var/www/html wget http://sourceforge.net/projects/mailwatch/files/mailwatch/1.0.5/mailwatch-1.0.5.tar.gz/download tar -zxvf mailwatch-1.0.5.tar.gz mv mailwatch-1.0.5 mailwatch cd mailwatch
- 編輯 php.ini
vi /etc/php.ini
: magic_quotes_gpc = On :
- 透過 phpMyAdmin 在 MySQL 建立 MailWatch 所需要的資料表
- 建立 mailscanner 資料庫
- 將 create.sql 內容貼入執行, 建立資料表
- 建立 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
- 建立 conf.php
cp conf.php.example conf.php vi conf.php
: define('DB_TYPE', 'mysql'); define('DB_USER', 'mailwatch'); define('DB_PASS', 'xxxx'); define('DB_HOST', '192.168.11.xx'); define('DB_NAME', 'mailscanner'); define('DB_DSN', DB_TYPE.'://'.DB_USER.":".DB_PASS."@".DB_HOST."/".DB_NAME); :
- 編輯 MailWatch.pm 與複製到 MailScanner 自訂函數目錄
vi MailWatch.pm
: # Modify this as necessary for your configuration my($db_name) = 'mailscanner'; my($db_host) = '192.168.11.xx'; my($db_user) = 'mailwatch'; my($db_pass) = 'xxxx'; :
cp MailWatch.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/
- 調整 MailScanner 設定
service MailScanner stop vi /etc/MailScanner/MailScanner.conf
: # If you want to use it, read CustomConfig.pm. Always Looked Up Last = &MailWatchLogging : # Do you want the full spam report, or just a simple "spam / not spam" report? Detailed Spam Report = yes : # This can also be the filename of a ruleset. Quarantine Whole Message = Yes : # as human-readable files (header then body in 1 file)? Quarantine Whole Messages As Queue Files = no : # report, or just list the names of the scores Include Scores In SpamAssassin Report = yes : # and "Quarantine Group". Quarantine User = root Quarantine Group = apache # If you want processes running under the same *group* as MailScanner to # be able to read the quarantined files (and list what is in the # directories, of course), set to 0640. If you want *all* other users to # be able to read them, set to 0644. For a detailed description, if # you're not already familiar with it, refer to `man 2 chmod`. # Typical use: let the webserver have access to the files so users can # download them if they really want to. # Use with care, you may well open security holes. Quarantine Permissions = 0660 : Spam Actions = store deliver header "X-Spam-Status: Yes" : High Scoring Spam Actions = store :
- 設定整合編輯 Blacklist/Whitelist
vi SQLBlackWhiteList.pm
: sub CreateList { my($type, $BlackWhite) = @_; my($dbh, $sth, $sql, $to_address, $from_address, $count); my($db_name) = 'mailscanner'; my($db_host) = '192.168.11.xx'; my($db_user) = 'mailwatch'; my($db_pass) = 'xxxx'; :
cp SQLBlackWhiteList.pm /usr/lib/MailScanner/MailScanner/CustomFunctions/ vi /etc/MailScanner/MailScanner.conf
: Is Definitely Not Spam = &SQLWhitelist : Is Definitely Spam = &SQLBlacklist :
- 編輯 Bayesian Databases 啟動權限
vi /etc/MailScanner/spam.assassin.prefs.conf
: # Thanks to Matt Kettler for pointing this out. bayes_path /etc/MailScanner/bayes/bayes # This is actually used as a mask, not a raw chmod setting. # Thanks for Matt Kettler for spotting this one. # Commented out: this if for MailWatch and Exim/Postfix users only. bayes_file_mode 0660 :
mkdir /etc/MailScanner/bayes chown root:apache /etc/MailScanner/bayes chmod g+rws /etc/MailScanner/bayes cp /root/.spamassassin/bayes_* /etc/MailScanner/bayes chown root:apache /etc/MailScanner/bayes/bayes_* chmod g+rw /etc/MailScanner/bayes/bayes_*
- 重新啟動 MailScanner
service MailScanner start && tail -f /var/log/maillog
- 如果 MySQL 安裝在其他主機, 要更改 /var/www/html/mailscanner/geoip_update.php
: dbquery("LOAD DATA LOCAL INFILE '".$base.'/'.$file2."' INTO TABLE geoip_country FIELDS TERMINATED BY ',' ENCLOSED BY '\"'"); :
這樣才可順利匯入, 否則會出現類似以下的錯誤訊息
Downloading file, please wait.... Error executing query: Access denied for user 'mailwatch'@'192.168.11.xx' (using password: YES)