郵件系統服務器搭建記錄(五)(Postfix+Cyrus-sasl+Courier-authlib+Dovecot+ExtMail+MySQL)

13.  配置dovecot訪問mysql進行驗證

dovecot本身是支持mysql認證方式的,其在/etc/dovecot/conf.d/下提供了名爲auth-sql.conf.ext的配置文件:

[root@mail ~]# cd /etc/dovecot/conf.d/
[root@mail conf.d]# ls auth-master.conf.ext 
auth-master.conf.ext

但dovecot默認使用的收件認證方式是系統賬號口令驗證,因此auth-sql.conf.ext默認不被加載,所以要編輯/etc/dovecot/conf/10-auth.conf加載該文件:

[root@mail conf.d]# vi 10-auth.conf 
#!include auth-system.conf.ext    #註釋該行
!include auth-sql.conf.ext    #啓用該行

上述修改表示將不再加載系統賬號口令驗證的配置文件,而加載mysql認證的配置文件。

配置auth-sql.conf.ext文件:

[root@mail conf.d]# vi auth-sql.conf.ext
passdb {  
    driver = sql    #sql驅動  
    # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext  
    args = /etc/dovecot/dovecot-sql.conf    #詳細配置文件
}

userdb {  
    driver = sql    #sql驅動  
    args = /etc/dovecot/dovecot-sql.conf    #詳細配置文件 
}

在/etc/dovecot下創建dovecot-sql.conf文件,並添加如下內容:

[root@mail dovecot]# vi dovecot-sql.conf
driver = mysql    #驅動
connect = host=localhost dbname=extmail user=extmail password=extmail    #連接數據庫配置
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir,uidnumber AS uid,gidnumber AS gid FROM mailbox WHERE username = '%u'

注:auth-sql.conf.ext文件的passdb和userdb的driver配置的內容不同於dovecot-sql.conf的driver,一個爲sql,一個爲mysql(我也不知道爲什麼,是否爲固定格式?)

如果重啓dovecot後,在/var/log/maillog中發現如下錯誤提示:Unknown passdb driver 'mysql',請安裝dovecot-mysql包。


14. 配置ExtMail和ExtMan

ExtMail提供了名爲webmail.cf的配置文件,可以對其程序內容和訪問mysql方式進行修改,編輯/var/www/extsuite/extmail/webmail.cf:

[root@mail ~]# cd /var/www/extsuite/extmail/
[root@mail extmail]# cp webmail.cf webmail.cf.default
[root@mail extmail]# vi webmail.cf
SYS_USER_LANG = zh_CN    #修改默認語言
SYS_MAILDIR_BASE = /mailbox    #修改maildir路徑
SYS_MYSQL_USER = extmail    #訪問mysql的用戶,同extmail庫一致
SYS_MYSQL_PASS = extmail

 ExtMan提供的配置文件名稱爲webman.cf,編輯/var/www/extsuite/extman/webman.cf:

[root@mail extmail]# cd ..
[root@mail extsuite]# cd extman/
[root@mail extman]# cp webman.cf webman.cf.default
[root@mail extman]# vi webman.cf
SYS_MAILDIR_BASE = /mailbox
SYS_CAPTCHA_ON = 0    #不使用驗證碼驗證登錄
SYS_DEFAULT_UID = 2525    #運行該程序的用戶UID,應爲postfix的UID
SYS_DEFAULT_GID = 2525    #運行該程序的用戶GID,應爲postfix的GID
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail

創建/tmp/extman目錄,並修改屬主屬組爲postfix:

[root@mail ~]# mkdir /tmp/extman
[root@mail ~]# chown postfix.postfix /tmp/extman


15. 部署ExtMail和ExtMan

到現在爲止,postfix已經配置支持虛擬用戶,courier-authlib和cryus-sasl也配置支持訪問mysql進行虛擬用戶的發件驗證,dovecot也可以訪問mysql進行虛擬用戶的收件驗證了,webmail也完成了配置,那麼現在只要將ExtMail和ExtMan部署,並通過ExtMan提供的Web管理接口創建虛擬用戶和虛擬域,就可以對整個郵件系統進行測試了!


由於收發郵件的服務都是由postfix用戶運行的,所以要將ExtMail和ExtMan的Web應用程序文件(見第9節)父目錄/var/www/extsuite的屬主和屬組修改爲postfix:

[root@mail ~]# chown -R postfix.postfix /var/www/extsuite/

修改apache服務器配置文件/etc/httpd/conf/httpd.conf:

[root@mail ~]# vi /etc/httpd/conf/httpd.conf 
<VirtualHost *:80>    #開啓虛擬主機
    DocumentRoot /var/www/extsuite/extmail/html/
    ServerName mail.ahltnew.com    #與系統主機名一致
    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
    Alias /extmail /var/www/extsuite/extmail/html
    ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
    Alias /extman /var/www/extsuite/extman/html
    SuexecUserGroup postfix postfix    #表示切換成postfix用戶和postfix組來運行該Web程序
</VirtualHost>


16. 重啓所有相關服務

至此,所有的配置都已完成,重啓如下服務:

[root@mail ~]# service postfix restart    #postfix
[root@mail ~]# service saslauthd restart    #cyrus-sasl
[root@mail ~]# service courier-authlib restart   #courier-authlib
[root@mail ~]# service dovecot restart    #dovecot
[root@mail ~]# service httpd restart    #apache server

至此,郵箱系統搭建基本結束。


注:postfix,courier-authlib,cyrus-sasl,dovecot運行過程中的日誌可以通過/var/log/maillog進行查看,apache server的日誌則通過/var/log/httpd/error_log進行查看。


訪問http://主機IP/extmail來登錄extmail,如果頁面提示Unix::Syslog not found,請安裝perl-Unix-Syslog軟件包:

[root@mail ~]# yum install perl-Unix-Syslog


可以只將select的權限賦予mysql的extmail用戶,新建一個mysql用戶用於修改extmail庫記錄內容,同時修改webman.cf的SYS_MYSQL_USER和SYS_MYSQL_PASS配置項內容爲該用戶名和口令,即可以實現WebMail的訪問和管理的權限分離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章