多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 史上最詳細的centos下 postfix + extmail + dovecot + maildrop 安裝筆記2014更新

史上最詳細的centos下 postfix + extmail + dovecot + maildrop 安裝筆記2014更新

來源:程序員人生   發布時間:2014-11-03 08:45:05 閱讀次數:3725次

本文最初是2008年發表的,最近幾天照此筆記又安裝了1遍系統,這里更新1下記錄。
作者:wangdy

本文發表于  http://blog.csdn.net/aryang/article/details/40593283  轉載請注明!

1. 概述
安裝環境是CentOS6.5,拿到http://www.vxbq.cn/server/的時候只有根目錄的分區。郵件準備存儲到 /var/mailbox下,后面內容會出現屢次,如果要修改請注意不要有遺漏的地方。
/var/spool/postfix是postfix存儲隊列的地方, /var/vmail是用來存儲郵件的。
有條件的建議對 /var/spool/postfix和 /var/vmail進行了單獨分區。

CentOS提供了很方便的yum在線安裝,我的基本原則是非重要、對版本不敏感的模塊盡可能用yum安裝,郵件系統主要模塊則用源碼編譯安裝。
首先用yum安裝的模塊有:mysql mysql-server mysql-devel db4-devel openssl gcc libxml2 libxml2-develgcc-c++
幾個模塊都需要用到PCRE。

先說明1下幾個模塊的搭配。

MTA用的是postfix⑵.5.17。

web模塊是最早需要肯定的,由于它決定了郵箱系統最核心的數據結構,這里選用國產的extmail,其他所有模塊都依照extmail的結構進行配置修改。
webmail使用 extmail⑴.0.5,web管理模塊用extman-0.2.5。

extmail對maildrop的自動回復、轉發等提供了很好的支持,所以MDA采取最流行的maildrop(2.5.4)

這里面簡單說1下為何要用maildrop。

對虛擬用戶投遞的支持,postfix自帶了1個投遞代理(MDA):virtual
virtual投遞代理在 master.cf里描寫為:

virtual  unix -      n       n      -       -      virtual

如果我們在main.cf里設置virtual_transport = virtual,就表示對包括在 virtual_mailbox_domains域名里的郵件,都使用virtual進行投遞。
postfix自帶的virtual只提供了最基本的QUOTA功能,如果想使用更復雜的功能,如自動轉發,自動回復,郵件自定義過濾等,就需要換成更高級的MDA。
固然可選擇的MDA有很多種,比如procmail, maildrop等。我這里選用maildrop。

用戶信息存儲方式也有很多可選的,比如mysql,ldap等。這里選mysql,緣由是各個模塊,包括extmail等對這個支持最好最方便最簡單。

maildrop在投遞郵件的時候,需要肯定1些數據,比如收件用戶的Maildir的路徑,保存郵件用的uid,gid,郵箱容量等,這些數據需要 courier-authlib來提供。

全部系統模塊間的作用和關系是:

postfix作為MTA(Mail Transfer Agent), 負責創建smtp服務(smtpd)接收本域用戶或其他域名http://www.vxbq.cn/server/投遞來的郵件,負責向其他http://www.vxbq.cn/server/投遞(轉發)郵件,管理郵件隊列;
maildrop作為MDA(Mail Delivery Agent)負責把從postfix接收到郵件存入郵件夾,同時還支持自動轉發、自動回復,郵件過濾等功能;
courier-authlib 為 maildrop 提供與用戶相干的信息查詢;
dovecot提供系統的POP3和IMAP服務,同時給postfix提供SMTP的SASL認證服務。

2. 系統基礎配置

如果系統已安裝postfix請先卸載!

創建郵箱存儲目錄 /var/mailbox ,子目錄結構為 ./[domain]/[username]
創建負責郵件存取的用戶和組帳戶 vmail,注意要指定uid和gid,這兩個id在后面很多配置里要用到!
#groupadd -g 1001 vmail
#useradd -g vmail -u 1001 -s /sbin/nologin

#chown vmail:vmail /var/mailbox
#chmod 700 /var/mailbox

postfix安裝的是需要指定幾個專門的用戶和組
#groupadd -g 2001 postfix
#useradd -g postfix -u 1001 -s /sbin/nologin -M postfix
#groupadd-g 2002 postdrop
#useradd-g postdrop -u 2002 -s /bin/false -M postdrop

3. courier-authlib安裝

下載 courier-authlib-0.66.1

 ./configure --sysconfdir=/etc --without-authpam --without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql --with-redhat --with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc --with-mailuser=1001 --with-mailgroup=1001

注意此處已用到了vmail用戶的uid和gid!

#cp /etc/authdaemonrc.dist /etc/authdaemonrc

修改配置文件,啟用mysql用戶認證方式:

#authmodulelist="authuserdb authmysql authcustom authpipe"
authmodulelist="authmysql"

#authmodulelistorig="authuserdb authmysql authcustom authpipe"
authmodulelistorig="authmysql"

authmysql的配置文件:
#cp /etc/authmysqlrc.dist /etc/authmysqlrc

修改相干配置,其中

MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     crypt

MYSQL_SELECT_CLAUSE     SELECT username as id,password as crypt,"" as clear,
                        '1001' as uid,'1001' as gid,  
                        CONCAT('/var/mailbox/',homedir) as home,    
                        CONCAT('/var/mailbox/',maildir) as maildir,  
                        quota,                                      
                        name                                        
                        FROM mailbox                                
                        WHERE username = '$(local_part)@$(domain)'

其實就是配置了數據源是甚么(mysql),怎樣連接,履行甚么sql語句查詢用戶信息,數據的字段名是甚么等。

啟動auth服務 
# /usr/local/libexec/courier-authlib/authdaemond &

4. Dovecot安裝
 
 下載dovecot⑵.0.21.tar.gz
#./configure--prefix=/usr/local/dovecot --sysconfdir=/etc --with-sql --with-mysql
#make
#make install

需要ssl支持可以加上參數--with-ssl=openssl

拷貝 doc/example-config/下的 dovecot.conf 至 /etc/dovecot

配置dovecot.conf:
base_dir=/var/run/dovecot
#支持的用戶協議
protocols=imap imaps pop3 pop3s
listen=*
disable_plaintext_auth = no
#是不是啟用ssl
ssl_disable = yes
#郵件存儲位置,%d表示域名,%n表示用戶名
mail_location= maildir:/var/vmail/%d/%n/Maildir
pop3_uidl_format=%08Xu%08Xv
authdefault {
...
mechanisms= plain login digest-md5 cram-md5
        
#驗證密碼的配置文件
passdb sql { 
         args = /etc/dovecot/dovecot-sql.conf
}
...
#查詢用戶信息的配置文件
userdbsql {
         args = /etc/dovecot/dovecot-sql.conf
}
...
socketlisten {
   ...
   client {
     path = /var/spool/postfix/private/auth
     mode = 0660
     user = postfix
     group = postfix
   }
}
}
 
編輯/etc/dovecot/dovecot-sql.conf:

driver =mysql
connect =host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme=MD5-CRYPT
password_query= SELECT password, maildir as userdb_home FROM mailbox WHERE username = '%u'
user_query= select 1001 as uid ,1001 as gid from mailbox where username='%u' Andactive='1'

注意文件里的用戶名口令。
password_query是pop3 or imap登錄的時候履行的,傳用戶名查密碼,郵箱目錄
user_query是查詢用戶存取郵件用的uid和gid的,這里寫死了。。

創建符號鏈接
#ln -s/usr/local/dovecot/sbin/dovecot /usr/bin/dovecot

啟動dovecot服務
# dovecot

如果出錯,看看 /var/log/dovecot

5. 安裝 maildrop
下載 maildrop⑵.5.4.tar.gz

./configure--enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail'--enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1001--enable-maildrop-uid=1001 --with-trashquota --with-dirsync
 
make& make install
 
/etc/postfix/master.cf里增加
 
maildrop  unix -       n       n      -       -       pipe
  flags=DRhu user=vmailargv=/usr/local/bin/maildrop -d ${recipient}

6. 安裝 postfix

下載postfix⑵.5.17.tar.gz
 
編譯
# make CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE="dovecot"
-DHAS_PCRE-DHAS_MYSQL
-I/usr/include/-I/usr/local/include -I/usr/include/mysql/'
AUXLIBS='-L/usr/local/lib-L/usr/lib/mysql -lmysqlclient -lpcre'
# make
# make install

-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE="dovecot" 
表示啟用SASL身份認證,并默許使用dovecot。
mysql的幾個路徑可以根據實際情況做修改,我這里的目錄都是yum默許安裝的。
 
注意make參數里加上正確的mysql -I  (頭文件所在目錄) -L(動態庫所在目錄)
make install的發問全部回車默許。
(install的時候如果默許參數里沒有值,請根據毛病提示認真檢查)
 
導入extmail的mysql表結構和數據。
下載extman-0.2.5.tar.gz
解開落后入 docs目錄

建庫建表:
# mysql-u root -p < extmail.sql
注意extmail.sql里配置的http://www.vxbq.cn/db/,用戶名,口令都是extmail,可以編輯腳本修改。
extmail.sql里創建的http://www.vxbq.cn/db/用戶 webman 是用在web后臺管理的,extmail用在所有其他地方,包括postfix郵件收發,dovecot帳戶驗證、郵件收發,webmail里等。
 
導入初始數據:
#mysql-u root -p < init.sql
(可以先吧 init.sql文件里的extmail.org改成你自己的域名,或登錄web管理后再添加域名)
把目錄下 mysql_*.cf全部拷貝至/etc/postfix

# cpmysql_*.cf /etc/postfix/
修改cf文件里的用戶名口令

繼續配置 postfix
# mv/etc/aliases /etc/aliases.old
# ln -s/etc/postfix/aliases /etc/aliases
# /usr/bin/newaliases

編輯  /etc/postfix/main.cf
 
#郵件http://www.vxbq.cn/server/域名
myhostname= mail.abc.com
#郵箱域名
mydomain= abc.com
myorigin= localhost
mydestination= $myhostname localhost localhost.$mydomain
#可以信賴的網絡,后面的permit_mynetworks 說的就是這
mynetworks= 127.0.0.0/8
inet_interfaces= all
home_mailbox=  mbox
smtpd_banner= Welcome to ESMTP Server
#設置可以任意從本機轉發郵件的域名,黑莓甚么的可能用到
#relay_domains=
alias_maps=

sendmail_path= /usr/sbin/sendmail
newaliases_path= /usr/bin/newaliases
mailq_path= /usr/bin/mailq
setgid_group= postdrop
html_directory= no
manpage_directory= /usr/local/man
sample_directory= /etc/postfix

unknown_local_recipient_reject_code= 450
non_fqdn_reject_code= 450
unknown_virtual_alias_reject_code= 450
unknown_virtual_mailbox_reject_code= 450
maps_rbl_reject_code= 450

maximal_queue_lifetime= 1
bounce_queue_lifetime= 0
 
#=====================VritualMailbox settings=========================
#查詢域名的配置
virtual_mailbox_domains= mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains=
virtual_alias_maps= mysql:/etc/postfix/mysql_virtual_alias_maps.cf
#用maildrop投遞郵件!后面會安裝
virtual_transport= maildrop

maildrop_destination_recipient_limit=1

#====================QUOTA========================
#設置郵件大小限制和郵箱最大容量
message_size_limit= 500001000 
mailbox_size_limit= 500001000
virtual_mailbox_limit= 209715200
 
#====================SASLESMTP Authenticat=================
#注: smtpd說的是接收郵件客戶端發送郵件的服務, smtp說的是給別的郵件http://www.vxbq.cn/server/投遞用的服務
#這個得加yes,不然你就為http://www.vxbq.cn/Internet/貢獻1個垃圾郵件http://www.vxbq.cn/server/
smtpd_sasl_auth_enable= yes
#這里用到了dovecot ^_^
smtpd_sasl_type= dovecot
smtpd_sasl_path= private/auth
broken_sasl_auth_clients= yes
smtpd_sasl_local_domain=
smtpd_sasl_security_options= noanonymous
 
#注意第2行起有空格
#這個說的是郵件客戶端(包括本域用戶客戶端和別的http://www.vxbq.cn/server/投遞進來的)提交收件人的時候做的檢查
# permit_sasl_authenticated 表示 smtp 鑒權通過的permit,其他幾種情況全拒!
smtpd_recipient_restrictions=
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_invalid_hostname,
 reject_non_fqdn_hostname,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unknown_sender_domain,
 reject_unknown_recipient_domain,
 reject_unauth_pipelining,
 reject_unauth_destination
#check_recipient_http://www.vxbq.cn/access/ pcre:/etc/postfix/spamd_filter_http://www.vxbq.cn/access/

#reject_rbl_client sbl.spamhaus.org,
#reject_rbl_client cblless.anti-spam.org.cn,

#檢查發信人
smtpd_sender_restrictions=
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_non_fqdn_sender,
 reject_unknown_sender_domain,
 reject_sender_login_mismatch,
 reject_authenticated_sender_login_mismatch,
 reject_unauthenticated_sender_login_mismatch

smtpd_helo_required= yes
smtpd_helo_restrictions=
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_invalid_hostname

smtpd_sender_login_maps=
 mysql:/etc/postfix/mysql_virtual_sender_maps.cf,
 mysql:/etc/postfix/mysql_virtual_alias_maps.cf

disable_vrfy_command= yes

smtpd_client_restrictions=
 permit_mynetworks,
 check_client_http://www.vxbq.cn/access/ hash:/etc/postfix/http://www.vxbq.cn/access/

#=====================TLS=========================
#smtp的tls支持,此處不詳述
smtpd_use_tls= yes
smtpd_tls_security_level= may
smtpd_tls_key_file= /etc/postfix/certs/mail.key
smtpd_tls_cert_file= /etc/postfix/certs/mail.crt
smtpd_tls_loglevel= 1
smtpd_tls_session_cache_timeout= 3600s
smtpd_tls_session_cache_database= btree:/var/spool/postfix/smtpd_tls_cache
tls_random_source= dev:/dev/urandom

readme_directory= no
command_directory= /usr/sbin
daemon_directory= /usr/libexec/postfix
queue_directory= /var/spool/postfix
mail_owner= postfix
data_directory= /var/lib/postfix

啟動postfix

#postfix

啟動后注意視察 /etc/log/maillog 里是不是有毛病信息
 
7. 安裝extmail和extman!

extman是郵箱的后臺管理web,注意webman.cf里的配置:

郵箱的根目錄:
SYS_MAILDIR_BASE= /var/mailbox 

SYS_DEFAULT_UID= 1001
SYS_DEFAULT_GID= 1001

SYS_MYSQL_USER= webman
SYS_MYSQL_PASS= webman 
 
extmail里的 webmail.cf
 
SYS_MAILDIR_BASE= /var/mailbox
 
祝您成功!

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产热视频 | 亚洲伊人成综合网 | 欧美性高清video | 国产免费一区二区三区 | 久久久久爽亚洲精品 | 欧美午夜理伦三级理论三级 | 婷婷色一二三区波多野衣 | 中文字幕人成不卡一区 | 中文字幕视频在线免费观看 | 亚洲一区二区三区首页 | 免费观看片 | 欧美日本道免费一区二区三区 | 国内交换一区二区三区 | 美国亚洲成年毛片 | 国产高清看片日韩欧美久久 | 欧美区一区二区三 | 亚洲免费二区 | 337p粉嫩日本大胆艺术 | 亚州成人 | 自拍 另类 综合 欧美小说 | 成人久久免费视频 | 亚洲欧美精品在线 | 欧美videos黑人巨大 | 日本无卡码一区二区三区 | 亚洲一区二区视频 | 手机在线看片国产 | 波多野结衣中出在线 | 国产免费福利视频一区二区 | 中文字幕亚洲精品日韩精品 | 最近的中文字幕手机在线看免费 | 成人精品国产亚洲欧洲 | 亚洲tv成人天堂在线播放 | 亚洲视频在线免费 | free性日韩高清videos | 国产欧美另类 | 美日韩一区二区 | 又黄又爽又色的性视频 | 最新福利网站 | 国产一区二区高清视频 | 一区二区三区观看 | 青青青青爽极品在线视频 |