March 30,2007 22:59

(代貼)DBMail Installation Howto

這是幫朋友貼的DBMail在Fedora 6上安裝的步驟。

DBMail的網站上說它是 "fast and scalable sql based mail services",目前支援 MySQL,PostgreSQL 和 SQLite 。

英文簡介在這邊

有問題的話請留言,我會轉給作者。


本篇作者:boxun
DBMail(2.2.4-4) + MailScanner(4.58.9-1) + SpamAssassin(3.1.8-2) + ClamAV(0.88.7-2) on Fedora 6
註1:iptables 及 SELinux 均關閉停用,如要啟用請另行調整相關設定
註2:提示符號說明: os 表 linux console、vi 表 vi editor、mysql 表 MySQL monitor
註3:其他相關設定不另行說明,像是 MySQL root 設定帳號密碼、Postfix 其他安全性設定等

1.安裝Fedora 6
1.1.套件選擇
Apache + MySQL(含mysql-devel) + PHP + Cyrus-Sasl + Spamassassin + rpm-build (其他相依套件會自動安裝)
1.2.安裝 DBMail、Clamav 及其他必要套件
os yum install dbmail dbmail-mysql clamav clamav-updtae pyzor pcre-devel (其他相依套件會自動安裝)
1.3.製作支援 Mysql 的 Postfix 並安裝
1.3.1.下載安裝 postfix-2.3.3-2.src.rpm
os wget ftp://ftp.univie.ac.at/systems/linux/fedora/6/source/SRPMS/postfix-2.3.3-2.src.rpm
os rpm -ivh postfix-2.3.3-2.src.rpm
1.3.2.重新製作 Postfix support MySQL 並安裝
os vi /usr/src/redhat/SPECS/postfix.specs
vi %define MYSQL 0 修改為 %define MYSQL 1 (設定 Postfix 支援 MySQL)
os rpmbuild -bb /usr/src/redhat/SPECS/postfix.specs
os rpm -ivh /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.i386.rpm
1.4.安裝 MailScanner
os wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.58.9-1.rpm.tar.gz
os tar -zxvf MailScanner-4.58.9-1.rpm.tar.gz
os cd MailScanner-4.58.9-1
os ./install.sh
1.5.額外需求(取得設定 SpamAssassin 時需要的 sql 檔)
os wget http://ftp.ntu.edu.tw/Apache/spamassassin/Mail-SpamAssassin-3.1.8.tar.gz
os tar -zxvf Mail-SpamAssassin-3.1.8.tar.gz
1.6.更新所有套件(約 24x 個,純個人習慣為非必要步驟)
os yum update
2.設定 DBMail 與 SpamAssassin在 MySQL 中使用的帳號並 create tables
os vi /etc/my.cnf
vi default-character-set=utf8 (加到[mysqld]及[mysqld_safe]兩個設定區間,不確定是否必要,工程師表示 code 裡他還是都會指定)
os service mysqld start
os mysqladmin create dbmail -u root
os mysql
2.1.建立 DBMail 使用的 MySQL 帳號密碼及資料庫使用的編碼
mysql grant all on dbmail.* to dbmail@localhost identified by 'password';
mysql alter database dbmail charset=utf8;
2.2.建立 DBMail 必要的 tables
mysql use dbmail
mysql source /usr/share/doc/dbmail-mysql-2.2.4/create_tables.mysql
mysql use mysql
2.3.建立 SpamAssassin 帳號密碼及必要的 tables
mysql insert into user (Host, User, Password) values('localhost','spamassassin',password("SApassword"));
msyql insert into db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) values('localhost','spamassassin','spamassassin','Y','Y','Y','Y');
mysql create database spamassassin;
mysql use spamammassin
mysql source /root/Mail-SpamAssassin-3.1.8/sql/userpref_mysql.sql
mysql source /root/Mail-SpamAssassin-3.1.8/sql/awl_mysql.sql
mysql source /root/Mail-SpamAssassin-3.1.8/sql/bayes_mysql.sql
mysql flush privileges;
mysql quit

4.設定SpamAssassin
4.1.設定 SpamAssassin 使用 MySQL 相關設定
os vi /etc/mail/spamassassin/local.cf
vi user_scores_dsn DBI:mysql:spamassassin:localhost
vi user_scores_sql_username spamassassin
vi user_scores_sql_password SApassword
vi user_scores_sql_custom_query select preference, value from userpref where username = _USERNAME_ OR username = '@GLOBAL' OR username = '@~'||_DOMAIN_ ORDER BY username ASC
4.2.設定 Auto Whitelist 相關設定
vi auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList
vi user_awl_dsn DBI:mysql:spamassassin:localhost
vi user_awl_sql_username spamassassin
vi user_awl_sql_password SApassword
vi user_awl_sql_table awl
4.3.設定 Bayesian Filtering 相關設定
vi bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
vi bayes_sql_dsn DBI:mysql:spamassassin:localhost
vi bayes_sql_username spamassassin
vi bayes_sql_password SApassword

5.設定 Postfix
5.1.設定 Postfix master process 使用 dbmail-smtp 相關設定
os vi /etc/postfix/master.cf
vi dbmail-smtp unix - n n - - pipe
vi flags= user=postfix:postdrop
vi argv=/usr/local/sbin/dbmail-smtp -d ${recipient} -r ${sender}
5.2.設定 Postfix 基本設定及使用 transport、sasl 的相關設定
os vi /etc/postfix/main.cf
vi myhostname = host.domain.tld
vi inet_interfaces = all
vi mailbox_transport = dbmail-smtp:
vi local_transport = dbmail-smtp:
vi local_recipient_maps = mysql:/etc/postfix/sql-recipients.cf
vi header_checks = regexp:/etc/postfix/header_checks
vi broken_sasl_auth_clients = yes
vi smtpd_sasl_auth_enable = yes
vi smtpd_sasl_security_options = noanonymous
vi smtpd_recipient_restrictions =
vi permit_mynetworks,
vi reject_invalid_hostname,
vi reject_non_fqdn_sender,
vi reject_non_fqdn_recipient,
vi reject_unknown_recipient_domain,
vi reject_unauth_pipelining,
vi reject_unknown_sender_domain,
vi permit_sasl_authenticated,
vi reject_unauth_destination
5.3.設定先將信件置入 hold Queue 中由 MailScanner 做處理後再交由 Postfix 處理
os vi /etc/posfix/header_checks
vi /^Received:/ hold
5.4.設定使用 DBMail 中的 alias 所需要的相關設定
os vi /etc/postfix/sql-recipients.cf
vi user = dbmail
vi password = password
vi hosts = localhost
vi dbname = dbmail
vi table = dbmail_aliases
vi select_field = alias
vi where_field = alias

6.設定 MailScanner
os vi /etc/MailScanner/MailScanner.conf
vi Run As User = postfix
vi Run As Group = postdrop
vi Incoming Queue Dir = /var/spool/postfix/hold
vi Outgoing Queue Dir = /var/spool/postfix/incoming
vi Virus Scanning = yes
vi Virus Scanners = clamav

7.設定 DBMail
os vi /etc/dbmail.conf
vi driver = mysql
vi authdriver = sql
vi host = localhost
vi sqlport = 3306
vi sqlsocket = /var/lib/mysql/mysql.sock
vi user = dbmail
vi pass = password
vi EFFECTIVE_USER = nobody
vi EFFECTIVE_GROUP = nobody

8.設定 saslauthd
os vi /etc/sysconfig/saslauthd
vi SOCKETDIR=/var/run/saslauthd
vi MECH=pam
vi FLAGS=-r

9.設定 pam (系統預設使用的是 /etc/pam.d/smtp,smtp 則是 link 到 /etc/pam.d/smtp.sendmail,故直接編輯 smtp.sendmail)
os vi /etc/pam.d/smtp.sendmail
vi auth sufficient pam_mysql.so user=dbmail passwd=password host=localhost db=dbmail table=dbmail_users usercolumn=userid passwdcolumn=passwd crypt=1
vi account required pam_mysql.so user=dbmail passwd=password host=localhost db=dbmail table=dbmail_users usercolumn=userid passwdcolumn=passwd crypt=1

10.設定目錄權限 (就安全性來說,應該不是最佳設定,但能正常運作)
os chown root.postdrop /var/spool/MailScanner
os chown root.postdrop /var/spool/postfix
os chown postfix.postdrop /var/spool/MailScanner/*
os chown postfix.postdrop /var/spool/postfix/*
os chmod g+w /var/spool/MailScanner
os chmod g+w /var/spool/postfix

11.設定相關服務開機啟動
os chkconfig sendmail off
os chkconfig saslauthd on
os chkconfig mysqld on
os chkconfig spamassassin on
os chkconfig MailScanner on
os chkconfig dbmail-imapd on (imap服務與pop3可同時使用或擇一)
os chkconfig dbmail-pop3d on (pop3服務與imap可同時使用或擇一)

12.手動啟動相關服務
os service sendmail stop
os service mysqld restart
os service saslauthd start
os service spamassassin start
os service dbmail-imapd start
os service dbmail-pop3d start
os service MailScanner start

13.以 dbmail-users -a useraccount -p passwordtype(加密方式) -w password 來建立帳號,相關參數使用可看其 manpage

  • ystuan 發表於樂多回應(0)引用(0)自由軟體-網路管理編輯本文
    樂多分類:網路/3C │昨日人次:0 │累計人次:327
    Ads by Roodo! 

    引用URL

    http://cgi.blog.roodo.com/trackback/2932689