一、引言
在上一文中介紹了在Ubuntu 16.04佈置postfix、dovecot郵件服務器的方法,本文緊接着上一文,主要介紹修改postfix認證方式和dovecot的認證方式。
二、修改postfix認證方式爲sasl-auth
2.1 安裝sasl2-bin
想要修改postfix的認證方式爲sasl-auth,需要先安裝sasl2-bin,安裝的方法如下:
apt-get install sasl2-bin
2.2修改postfix相關配置
我們在上一文的配置基礎之上進行修改,只需要將/etc/postfix/main.cf文件中做如下修改:
2.2.1註釋掉下面的配置:
#smtpd_sasl_type = dovecot
#queue_directory = /var/spool/postfix
2.2.2配置下面的語句:
smtpd_sasl_path = smtpd
smtpd_sasl_authenticated_header = yes
2.2.3在/etc/postfix/sasl/目錄下創建文件smtpd.conf
內容爲:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
2.2.4使用saslpasswd2創建用戶:
saslpasswd2 -c -u test.com test
sudo cp -a /etc/sasldb2 /var/spool/postfix/etc/
必須把數據庫文件複製到postfix的運行目錄下,否則會出現postfix用戶無法訪問該文件的權限問題,而且每次增加或者刪除用戶都要複製一次
2.2.5將postfix添加到sasl組:
gpasswd -a postfix sasl
2.2.6 修改sasldb權限
chmod 640 /var/spool/postfix/etc/sasldb2
2.2.7 列舉sasldb2中的用戶
sasldblistusers2 -f /var/spool/postfix/etc/sasldb2
經過了上述幾個步驟,就已經完成了postfix認證用戶的修改,配置完後重啓postfix,使用sasl-auth認證比dovecot-auth認證,效率要高很多。
三、修改dovecot的認證方式爲文件認證
dovecot默認的認證方式爲系統認證,也就是說它是把每一個ubuntu系統的用戶當成了email的用戶,用戶的名稱和密碼兩者完全一致。下面我們就修改dovecot默認的這種認證方式。
3.1 修改10-auth.conf文件
/etc/dovecot/conf.d/10-auth.conf文件負責設置dovecot所使用的sasl驗證方法。將!include auth-system.conf.ext這行註釋掉,把#!includeauth-passwdfile.conf.ext這行的註釋去掉,這樣便可以使用密碼文件來進行sasl認證。如下紅色圈出部分:
3.2 創建認證文件users
找到同一目錄下auth-passwdfile.conf.ext文件中,可以看到密碼文件默認爲/etc/dovecot/users.接下來,需要我們創建這個文件,並填寫用戶信息:
zhangsan:{plain}xxxxxxxx:1000:1000::/home/user1/zhangsan
lisi:{plain}xxxxxxxx:1000:1000::/home/user1/lisi
該文件格式從左到右依次爲:用戶名、加密方式和口令、代收用戶的用戶id、代收用戶的組id、郵件所在文件夾。其中郵件的所在文件夾當然是postfix所收取的郵件所在的文件夾。但是用戶名是dovecot系統用戶名,也就是他和postfix可以不是一一對應的。如果我們用zhangsan這個名字來收取postfix虛用戶裏lisi的郵件所在文件夾的郵件,也是可以的。所以MUA中可以自行設置一套收信口令。配置完成之後重啓dovecot即可。
需要注意:
1、要修改users文件的權限爲775,否則啓動dovecot會報錯。
2、users文件中的內容只是dovecot用戶和系統用戶的一個映射,也需要創建相應的系統用戶,即在/etc/passwd文件中存在的用戶,採用用users文件中的用戶接受郵件。
3、對於新增的用戶,都要將其對應的home目錄的所有者改成該用戶,否則可能出現權限問題。
4、postfix和dovecot實際上採用的是兩種不同的認證方式,只不過是賬號和密碼相同而已。