✉️ 建立郵件伺服器的旅程,已經來到 Dovecot 設定的核心部分了!
在上一篇文章中,我們查看了 Dovecot 的設定檔結構,是時候進入實戰了。
📌 如果您還沒看過前一篇,建議先閱讀。
👉 在 Linux 上建立郵件伺服器 #3:Dovecot 設定檔結構與應用方式
在本文中,我們將逐一分析 郵件伺服器運營所需的 Dovecot 必需設定檔 4 個,並整理 考慮虛擬用戶環境及 Postfix 連動的實用設定方法。
🚀 Dovecot 必需設定檔 4 種
Dovecot 設定檔非常多,第一次看到可能會頭痛。但 只要正確理解這 4 個設定檔,就能運營基本的郵件服務。
設定檔 | 角色 |
---|---|
10-auth.conf |
用戶身份驗證設定 |
10-mail.conf |
郵件儲存庫設定 |
10-master.conf |
服務進程(IMAP, POP3, LMTP 等)設定 |
10-ssl.conf |
TLS/SSL 加密設定 |
接下來,我們將檢視各個設定檔並應用 考慮虛擬用戶環境及 Postfix 連動的設定。
🛠️ Dovecot 安裝時生成的 vmail
用戶
首次安裝 Dovecot 時,系統會自動生成一個名為 vmail
的專用用戶與組(UID/GID 5000)。
此用戶負責存儲和管理郵件數據,並不是系統帳號,而是專門用於處理郵件的帳號。
🔍 確認 vmail
用戶的方法
可在終端中執行以下命令來確認。
id vmail
輸出示例:
uid=5000(vmail) gid=5000(vmail) groups=5000(vmail)
或者也可以直接在 /etc/passwd
檔案中搜索。
grep vmail /etc/passwd
如果 vmail
用戶不存在,則必須通過以下命令手動創建。
sudo groupadd -g 5000 vmail
sudo useradd -u 5000 -g vmail -s /sbin/nologin -d /var/mail vmail
✅ 現在可以在 Dovecot 設定中利用 vmail
用戶來儲存郵件了!
1️⃣ 10-auth.conf
- 用戶身份驗證設定
此檔案決定了 用戶的身份驗證方式,是非常重要的設定檔。
特別是我們將 建立虛擬用戶環境,因此需要考慮此點進行設定。
📌 重要設定要點
- 采用虛擬用戶方式(數據庫連動)進行身份驗證
- 啟用 PLAIN 和 LOGIN 身份驗證方式(在 SSL 環境中安全使用)
- 使用數據庫進行身份驗證,而非系統帳戶 (/etc/passwd)
🔹 設定檔示例 (/etc/dovecot/conf.d/10-auth.conf
)
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext
💡 說明
disable_plaintext_auth = yes
→ 只允許在使用 SSL 時進行明文身份驗證auth_mechanisms = plain login
→ IMAP、POP3 中最常用的身份驗證方式!include auth-sql.conf.ext
→ 設定從數據庫獲取身份驗證信息
✍ 也就是說,Dovecot 並不是直接使用 /etc/passwd
等系統帳戶,而是配置使用 MySQL 等數據庫進行身份驗證。
下一篇將詳細探討 auth-sql.conf.ext
檔案!
2️⃣ 10-mail.conf
- 郵件儲存庫設定
此檔案決定了郵件實際儲存的位置。一般情況下,與 Postfix 聯動以 Maildir 格式進行儲存。
📌 重要設定要點
- 使用 Maildir 格式
- 設定虛擬用戶的郵件儲存路徑
- 郵件權限設定
設定檔示例 (/etc/dovecot/conf.d/10-mail.conf
)
mail_home = %h
mail_location = maildir:%h/Maildir
namespace inbox {
inbox = yes
}
mail_uid = vmail
mail_gid = vmail
mail_privileged_group = mail
💡 說明
mail_home = %h
→ 使用虛擬用戶的主目錄(預計將直接從數據庫指定路徑)mail_location = maildir:%h/Maildir
→ 以 Maildir 方式儲存郵件mail_uid
,mail_gid
→ 使用郵件儲存專用用戶(vmail
)namespace inbox { inbox = yes }
→ 指定為主要郵件箱(收件箱)
✍ 也就是說,使用者的郵件不由特定系統帳號管理,而是由單獨的 vmail
帳號來管理。
3️⃣ 10-master.conf
- 服務進程設定
此檔案設置 Dovecot 提供的服務(IMAP、POP3、LMTP 等)。
特別是,由於我們計劃與 Postfix 聯動使用 LMTP(本地郵件傳輸協議),因此必須啟用它。
📌 重要設定要點
- 啟用 LMTP(與 Postfix 聯動)
- 設定身份驗證匯流排(配置 Postfix 使用 Dovecot 的身份驗證)
🔹 設定檔示例 (/etc/dovecot/conf.d/10-master.conf
)
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
client {
path = /run/dovecot/auth-client
}
}
💡 說明
- 啟用 LMTP (service lmtp)
- Postfix 在傳送郵件至 Dovecot 時使用
dovecot-lmtp
匯流排 - Postfix 與 Dovecot 之間的身份驗證整合 (service auth)
- 配置 Postfix 能夠通過
/var/spool/postfix/private/auth
匯流排從 Dovecot 獲取身份驗證信息
✍ 也就是說,配置 Postfix 通過 Dovecot 處理用戶身份驗證,郵件的傳送同樣通過 LMTP 連結。
4️⃣ 10-ssl.conf
- TLS/SSL 加密設定
郵件伺服器必須進行加密!此檔案設定 SSL/TLS 以增強安全性。
📌 重要設定要點
- 啟用 SSL/TLS 加密
- 可以使用 Let’s Encrypt 或自簽名證書
📌 ⚠️ 本文省略了獲取 SSL 證書的過程。
假設已經為域名獲取了證書,這裡可以使用 Let’s Encrypt、自簽名證書或商用證書。
設定檔示例 (/etc/dovecot/conf.d/10-ssl.conf
)
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
💡 說明
ssl = required
→ 必須使用 SSLssl_cert
,ssl_key
→ 使用 Let’s Encrypt 證書進行加密
✍ 也就是說,禁止客戶端在未加密的情況下訪問,並通過 TLS 提高安全性。
🏁 總結
✅ 在本文中介紹了 Dovecot 必需設定檔 4 種
- 10-auth.conf → 用戶身份驗證方式(基於數據庫的虛擬用戶環境)
- 10-mail.conf → 郵件儲存路徑及權限設定(mail_home = %h
)
- 10-master.conf → 與 Postfix 連動的 LMTP 和身份驗證服務設定
- 10-ssl.conf → SSL/TLS 安全設定(省略 Let’s Encrypt 設定)
如果正確理解這些設定,就能構建與 Postfix 連動的郵件接收/發送環境。 下一篇將著重介紹 虛擬用戶環境的數據庫設定 (auth-sql.conf.ext
)!🚀
請查看之前的文章或郵件伺服器建設系列的其他文章!請在下方的 “Simiar Posts” 或右上角的搜索框中搜索 “dovecot”、“mail”!
Add a New Comment