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.confmailspooldir /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 noopenwebmail_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 --initvi /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
}
安裝 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/updatedcccrontab -e
#於每個禮拜天凌晨一點三十二分執行一次
32 1 * * 0 /usr/local/bin/update_sa_plugins.shRef1: 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; donechmod +x /root/merge_outgoing.sh
crontab -e
* * * * * /root/merge_outgoing.sh
使用 outgoing 帳號即可查看所有外寄郵件