Ubuntu Postfix Mail Server 設定筆記 (二) LDA (Dovecot LMTP Virtual Mailbox)

本系列第二篇: 設定 LDA (Local Delivery Agent)
讓外來郵件分類並保存到伺服器上, 並由 Dovecot 管理 Virtual Mailbox

Postfix 預設使用 Unix User 作為 Email User Name
如果 mydestination 同時包括 domain1.com 及 domain2.com
那發出 root@domain1.com 和 root@domain2.com 都同樣會寄到 root Unix user
而且新增一堆 Unix user 只做 Email 用途好像不太好管理

此時 Virtual Mail Box 就大派用場了。

2017-04-26 大更新: 直接使用 Dovecot ,由它管理 Virtual Mailbox 吧!

1. 安裝 dovecot lmtpd

2. 新增 User 及 Virtual Mailbox 目錄

首先新增一個 User, virtual mailbox 需要一個獨立 Unix User

然後建立 Virtual Mail Box Directory,並把它 chown 給 vmail:

3. 設定郵件目錄

修改 /etc/dovecot/conf.d/10-mail.conf

%d 代表 Domain
%n 代表 Username

4. 設定 UserDatabase 及 PasswordDatabase

Dovecot 也提供非常多的登入授權方法。同樣可以直接使用 Unix User 登入 (System Users)
為方便管理還是使用 VirtualUsers 建立 Dovecot 專的的 User 吧。

VirtualUsers 使用兩個 Database 管理用戶授權: UserDatabase 和 PasswordDatabase

UserDatabase 負責管理 Virtual User 和 Unix User 的 UID 及 GID 間的 Mapping,以及自定 Maildir 等的設定。

PasswordDatabase 負責管理用戶的授權登入。

修改 /etc/dovecot/conf.d/10-auth.conf

修改 /etc/dovecot/conf.d/auth-static.conf.ext

UserDatabase 部分:
因為之前設定 Virtual Mailbox 時,UID 和 GID 都設定為 vmail,
所以 userdb 設定 static,全部使用 vmail。
home 因為在 mail_location 已經指定了,可以略去。

/etc/dovecot/conf.d/auth-static.conf.ext 加入:

Password Database 部分:
方便起見使用最簡單的 passwd-file Driver
Username 及 Password 存放在 /etc/dovecot/passwd

/etc/dovecot/conf.d/auth-static.conf.ext 加入:

5. 新增 Dovecot User:

passwd 的格式和 Unix 下的 /etc/passwd 相容 (但除了頭2個Field以外全部為空):

只有 Username 和 Password 為必需,Password 欄可以用 {SCHEME} 指定 Hash Scheme。

Dovecot 的 doveadm 內置 pw 工具生成 Password Hash,把它組合成 Command 吧:

設定完成

6. Dovecot LDA 設定

修改 /etc/dovecot/conf.d/10-master.conf,lmtp 一段 unix_listener 部分修改如下:

修改 /etc/postfix/main.cf,加入以下兩行:
(除此以外應該無其他 virtual_ 開頭的設定,此 Domain 當然也要從 mydestination 刪除)

重啟 Dovecot 及 Postfix 後完成

Leave a Reply

Your email address will not be published.