MailScanner 郵件備份方案

內容:

  • 使用 MailScanner 的 Archive Mail 功能備份郵件
  • 設置第二套 OpenWebmail 檢視備份郵件
  • 修改 dovecot 設定, 讓 IMAP 通訊協定使用備份郵件
  • 安裝 SpamAssassin Plugins 增強垃圾郵件篩檢能力

環境:

  • CentOS 5
  • Dovecot, Apache HTTP Server + OpenWebmail
  • Sendmail + MailScanner + SpamAssassin + ClamAV

使用 MailScanner 的 Archive Mail 功能備份郵件

vi /etc/MailScanner/MailScanner.conf

#為備份郵件而設定的項目
Quarantine Infections = no 不於隔離區留存病毒郵件以及違反 file (name/type) rule 的檔案
Archive Mail = /var/spool/mail_backup/_TOUSER_ 指定備份郵件路徑
Missing Mail Archive Is = file 以收件人名稱作為備份郵件檔名 (搭配 _TOUSER_)
Spam Actions = delete 直接刪除 spam mail *註1
High Scoring Spam Actions = delete 直接刪除高 spam 分數的 spam mail

#視需求而定
Sign Clean Messages = no 不在郵件末端加上 inline.sig.txt 內容
Notify Senders = no 不通知發信者
Warning Is Attachment = no 警告訊息不以夾檔方式傳送
Send Notices = no
不通知管理者
SpamAssassin Auto Whitelist = no 不使用自動白名單 *註2
First Check = spam 首先進行 spam 檢查

*註1: MailScanner 會先備份郵件, 所以不隔離 (Quarantine) 檔案、直接刪掉 spam mail
*註2: 需搭配 spam.assassin.prefs.conf: use_auto_whitelist 0

建立備份郵件目錄, 並於該目錄產生 $UID:mail 的 mbox file

mkdir /var/spool/mail_backup

cd /var/spool/mail_backup

for i in /home/*; do \
MBOX=$(echo $i | cut -d '/' -f 3); \
touch $MBOX; \
chown $MBOX:mail $MBOX; \
chmod 660 $MBOX; done

設置第二套 OpenWebmail, 用以檢視備份郵件

cd /var/www/cgi-bin
cp -a openwebmail openwebmail_for_backup_mail
vi openwebmail_for_backup_mail/etc/openwebmail.conf

mailspooldir /var/spool/mail_backup
ow_cgidir /var/www/cgi-bin/openwebmail_for_backup_mail
ow_cgiurl /cgi-bin/openwebmail_for_backup_mail

#於最後加上
session_multilogin yes
session_checkcookie no
session_checksameip no

openwebmail_for_backup_mail/openwebmail-tool.pl --init

tail -n 3 openwebmail_for_backup_mail/etc/openwebmail.conf >> openwebmail/etc/openwebmail.conf
openwebmail/openwebmail-tool.pl --init

vi /etc/httpd/conf.d/openwebmail.conf

ScriptAlias /webmail /var/www/cgi-bin/openwebmail/openwebmail.pl
ScriptAlias /bakmail /var/www/cgi-bin/openwebmail_for_backup_mail/openwebmail.pl
Alias /data /var/www/data

使用方法

  • 檢視正式郵箱: http://www.your.site/webmail
  • 查看備份郵件: http://www.your.site/bakmail

ps. /var/spool/mail_backup 裡面的 mbox file 必須 chown mbox_owner_uid:mail 才能讓 OpenWebmail 正常存取

設定 IMAP 通訊協定指向備份郵件

POP3 收取正式郵件, IMAP 連結備份郵箱, 方便使用者於同一郵件軟體同時操作兩個郵箱

vi /etc/dovecot.conf

protocols = imap pop3

protocol imap {

mail_location = mbox:~/mail/imap:INBOX=/var/spool/mail_backup/%u

}

Ref: http://wiki.dovecot.org/FindMailLocation

安裝 SpamAssassin Plugins 增強垃圾郵件篩檢能力

安裝 Razor

yum install perl-Razor-Agent

or

Download tarball source from http://sourceforge.net/projects/razor/

tar jxf razor-agents*.bz2
cd razor-agents*
perl Makefile.PL
make && make install
razor-admin --register

確定 /etc/mail/spamassassin/*.pre 有以下內容 (無 *.pre 於該目錄的 SpamAssassin 版本則省略)

loadplugin Mail::SpamAssassin::Plugin::Razor2

安裝 Pyzor

Download tarball source from http://pyzor.sourceforge.net/

tar jxf pyzor-*.bz2
cd pyzor-*
python setup.py build
python setup.py install

確定 /etc/mail/spamassassin/*.pre 有以下內容 (無 *.pre 於該目錄的 SpamAssassin 版本則省略)

loadplugin Mail::SpamAssassin::Plugin::Pyzor

安裝 DCC

Download tarball source from http://www.rhyolite.com/dcc/

tar zxf dcc.tar.Z
cd dcc-*
./configure && make install

確定 /etc/mail/spamassassin/*.pre 有以下內容 (無 *.pre 於該目錄的 SpamAssassin 版本則省略)

loadplugin Mail::SpamAssassin::Plugin::DCC

SpamAssassin 環境設定

cd /etc/mail/spamassassin

mv local.cf local-old.cf

ln -s /etc/MailScanner/spam.assassin.prefs.conf local.cf

自動更新 SpamAssassin Plugins

vi /usr/local/bin/update_sa_plugins.sh

#!/bin/bash

/usr/bin/pyzor discover
/usr/bin/razor-admin -discover
/var/dcc/libexec/updatedcc

crontab -e

#於每個禮拜天凌晨一點三十二分執行一次
32 1 * * 0 /usr/local/bin/update_sa_plugins.sh

Ref1: http://wiki.mailscanner.info/doku.php?id=documentation:anti_spam:spamassassin:recommendations
Ref2: http://wiki.mailscanner.info/doku.php?id=maq:index#spam-fighting_tools

測試 SpamAssassin Plugins

wget http://kb.atmail.com/attach/spam-mail.txt
spamassassin -t -D < spam-mail.txt > log.txt 2>&1
less log.txt


補充: 合併外寄備份郵件

useradd -s /sbin/nologin outgoing && passwd outgoing

cd /var/spool/mail_backup

touch outgoing

chown outgoing:mail outgoing

chmod 660 outgoing

vi /root/merge_outgoing.sh

#!/bin/bash

cd /var/spool/mail_backup
for i in $(find ./ -type f -uid 0 | grep -v root); do cat $i >> outgoing && rm -f $i; done

chmod +x /root/merge_outgoing.sh

crontab -e

* * * * * /root/merge_outgoing.sh

使用 outgoing 帳號即可查看所有外寄郵件

arrow
arrow
    全站熱搜

    安德森 發表在 痞客邦 留言(0) 人氣()