M 系列的有版權,linux postfix sendmail 管理信件部份不方便~
dbmail + postfix + mysql 的搭配 是一個不錯給個人使用的mail server
os: Centos 4 or 5 以上
mysql: 5.x 以上,支援innodb 即可
Mysql Install : 方便使用Binary 的版本 ~方便
# groupadd
mysql
# useradd -g mysql mysql
# useradd -g mysql mysql
# Cd
/usr/local/mysql
# scripts/mysql_install_db
--user=mysql
# cp support-files/my-innodb-heavy-4G .cnf
/etc/my.cnf
#
bin/mysqld_safe --user=mysql &
#
./bin/mysqladmin -u root password ‘XXXXXX’ (設定mysql 帳號root 密碼)
# ./bin/mysqladmin
-u root -h ‘$hostname’ password 'XXXXXX'
#
quit
安裝 DBmail (2.0.11) 官網 (目前版本至3.x)
(a)安裝dbmail mysql schema
# cd dbmail-2.0.11
# /usr/local/mysql/bin/mysqladmin
create dbmail -u root –p
# mysql
-u root –p
# GRANT
ALL ON *.* to dbmail@localhost
identified by 'XXXXXX';
#
quit
# /usr/local/mysql/bin/mysql -u dbmail
dbmail -p <
sql/mysql/create_tables_innoDB.mysql
(b)安裝dbmail
# cd dbmail-2.0.11
# mkdir
/usr/local/dbmail
# PATH=$PATH:/usr/local/mysql/bin ./configure --prefix=/usr/local/dbmail/ --with-mysql=/usr/local/mysql
# make
# make
install
# cp
dbmail.conf /etc/
# vi
/etc/dbmail.conf
輪入host、user、pass、db
# vi dbmail.conf /etc/測試dbmail 是否正常 (以新增user為例)
測試dbmail 是否正常 (以新增user為例)
(c)設定postfix for dbmail
# vi
/etc/postfix/main.cf
# vi /etc/postfix/master.cf
# vi /etc/postfix/transport (第一欄請填上所要接收的domain name)
. # postmap /etc/postfix/transport (重新產生/etc/postfix/transport.db)
(d)測試postfix 與 dbmail 是否正常運作
1.啟動dbmail-deam
#
/usr/local/dbmail/sbin/dbmail-lmtpd
#
/usr/local/dbmail/sbin/dbmail-imapd
#
/usr/local/dbmail/sbin/dbmail-pop3d
2.發測試信
安裝 MailScanner
目的只是為了安全囉
解壓縮後
# tar –zxvf MailScanner-4.71.10-1.rpm.tar.gz
# cd MailScanner-4.71.10-1
# ./install.sh
# mkdir /var/spool/postfix/hold
# mkdir /var/spool/MailScanner/spamassassin
# chown postfix /var/spool/MailScanner/incoming
# chown postfix /var/spool/MailScanner/quarantine
# chown postfix /var/spool/MailScanner/spamassassin
# chown postfix /var/spool/postfix/hold
設定MailScanner
# vi /etc/MailScanner/MailScanner.conf
修改
%org-name% = xxx
%org-long-name% = xxx
%web-site% = www.xxxcom.tw
Max Children (最多處理程序) = 10
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 Scanning = no
Dangerous Content Scanning = no
Spam Score Character = *
Always Include SpamAssassin Report = yes
Hostname = spamassin
Notify Senders = no
Notify Senders Of Blocked Filenames Or Filetypes = no
Spam Subject Text = ***Spam From xxxAdmin***
High Scoring Spam Subject Text = ***Spam From xxxAdmin***
Attachment Encoding Charset = big5
High Scoring Spam Actions = deliver header "X-Spam-Status: Yes"
SpamAssassin User State Dir =/var/spool/MailScanner/spamassassin
MCP Checks = yes
# vi /etc/MailScanner/ruel/spam.whitelist.rules (設定白名單)
# vi /etc/MailScanner/spam.assassin.prefs.conf
ok_locales zh en
use_bayes 1
bayes_path
/var/spool/MailScanner/spamassassin/
bayes_file_mode 0644
bayes_auto_learn 1
use_pyzor 1
ifplugin Mail::SpamAssassin::Plugin::Pyzor
pyzor_path /usr/bin/pyzor
endif
安裝 Pyzor
# cd
spam_source
# cd pyzor-0.4.0
# python setup.py
build
#python setup.py install
#chmod -R a+rX /usr/share/doc/pyzor
/usr/lib/python2.3/site-packages/pyzor /usr/bin/pyzor
/usr/bin/pyzord
設定spamassassin 與 rule
# cd
/etc/mail/spamassassin
# mv local.cf
local.cf.bak
# ln -s
/etc/MailScanner/spam.assassin.prefs.conf local.cf
# cp spam_rule/*.cf /etc/mail/spamassassin/
設定postfix for mailscan
# vi
/etc/postfix/main.cf
加上 header_checks =
regexp:/etc/postfix/header_checks
# vi /etc/postfix/header_checks
加上 /^Received:/ HOLD
啟動MailScanner
#chkconfig --levels 2345
sendmail off
# chkconfig
--levels 2345 MailScanner on
# chkconfig
--levels 2345 spamassassin on
# /etc/init.d/spamassassin
start
# /etc/init.d/MailScanner
restart
啟動mailscanner
會順帶起postfix
服務
測試
Postfix收到信件後會先hold 在
/var/spool/postfix/hold 並呼叫Mailscanner 來處理
依照MailScanner 只做spam動作而不做掃毒,完成後在丟回給postfix ,最後postfix pipe
給dbmail-lmtp 存取至DB
前端呈線頁可以自己寫去接lmtp 或是使用 squirrelmail
可以帮忙解决dbmail的问题吗,有偿的
回覆刪除