Postfix Dovecot SASL和虛擬使用者的原理與配置

牛平發表於2015-09-27

  最近,工作中有搭建郵件伺服器的需求,所以這幾日研究了一下郵件系統的各個元件以及原理。現記錄如下:

 預期的郵件系統架構:
 MTA : Postfix
 認證模組:Cyrus SASL + Dovecot SASL
 POP3/IMAP: Dovecot
 
 Postfix部分基礎的配置就先不寫了,主要是記錄Virtual User部分和SASL部分。
 1.虛擬使用者:
 虛擬使用者不同於系統中已經存在的使用者(/etc/passwd)中的使用者,而是藉助於一個普通的系統使用者,實現多個使用者共享的認證和使用。類似於普通系統使用者就是一張電影票。你也可以拿這張票去看電影,我也可以那這張票去看電影。只要是獲取了這張票,就可以坐在相應的位置上,享受電影服務,類比到系統中,就類似於獲取了該實體使用者的屬性,如讀寫等許可權,至於獲取這張票的過程,牽扯到SASL認證,這個在第二部分論述。Postfix中是支援虛擬使用者的,在配置上就是以virtual開頭的一些配置,如下:

virtual_mailbox_domains = example.com #虛擬郵箱的域,類似於mydestination
virtual_mailbox_maps = hash:/etc/postfix/v_maps #虛擬使用者的虛擬使用者以及存放虛擬使用者的郵件位置。此處疑問:MTA只管轉發,此處超出了M他的範圍了,疑惑,後面有virtual_transport這個選項指定MDA,這個地方就不用疑惑了。此外,/etc/postfix/v_maps是一個檔案,內容如下
###
###hello@example.com example.com/hello_mail/
###

virtual_mailbox_base = /mail/vhosts #虛擬使用者的基目錄
virtual_minimum_uid = 500 #虛擬使用者最小uid
virtual_uid_maps = static:5000 #如果所有使用者的郵箱都使用一個uid,那麼指定一個靜態的uid。
virtual_gid_maps = static:5000 #虛擬使用者gid
virtual_transport = virtual #虛擬投遞代理



 2.SASL認證:


  有一般郵件系統的知識的人知道,需要採用認證機制防止誰都可以用這個MTA傳送郵件(open relay)。這個認證機制就是SASL,實現SASL的軟體一般有兩個我比較熟悉,Cyrus-SASL和Dovecot中自有的SASL,下面分別對這兩個軟體分別討論。
 Cyrus-SASL:這個軟體的使用saslauthd這個daemon來進行驗證,具體的配置檔案可以檢視/etc/sysconfig/saslauthd這個配置檔案。
MECH=pam:使用什麼機制來進行驗證,這裡寫的是使用PAM來進行驗證。PAM,這個以後有機會再進行論述。

Dovecot-SASL: 這個軟體是dovecot對SASL的一個實現,Dovecot官網中提到,Dovecot也實現了SASL。
  Dovcecot-SASL有兩個部分,一個是passdb,一個是userdb, passdb用來實現認證,userdb用來實現提取使用者的一些資訊,比如郵件儲存目錄,uid等。
 相關的配置可以在/etc/dovecot/dovecot.conf中找到。
 認證過程也是先透過passdb認證,然後在userdb中獲取使用者資訊,從而把該使用者的郵件遞送給該MUA,然後使用者就可以讀取郵件了。
 postfix的main.cf這個檔案中有個SASL的選項,此處直接設定為smtpd_sasl_type = dovecot
 此處即是sasl使用dovecot的sasl進行驗證。即傳送郵件時,去dovecot驗證,如果透過,就允許郵件傳送了。因此,我們只要熟悉了dovecot的sasl怎麼做的,就可以不用管postfix的驗證了。

 dovecot-sasl部分的配置如下:
 passdb {
  args = /etc/dovecot/passwd #指定密碼檔案位置
  driver = passwd-file
 }
userdb {
  args = uid=vmail gid=vmail #指定uid
  driver = static #型別為static,即postfix中virtualuser部分的5000
 }
 /etc/dovecot/passwd中內容如下
 hello@example.com:{plain}hello
 此處的密碼支援明文,md5加密等等,具體的支援型別可以檢視官方文件,此處不再熬述。

 






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29757574/viewspace-1810253/,如需轉載,請註明出處,否則將追究法律責任。

相關文章