如何在 Linux 中配置 Postfix 和 Dovecot 與虛擬域名使用者?
簡介
配置 Postfix 和 Dovecot 與虛擬域名使用者對於任何執行基於 Linux 的電子郵件伺服器的人來說都是一個必不可少的流程。這兩個軟體應用程式是電子郵件伺服器的支柱,它們協同工作以處理傳入和傳出的電子郵件。Postfix 是郵件傳輸代理,負責接收傳入的電子郵件。
另一方面,Dovecot 是電子郵件投遞代理,負責將傳入的電子郵件投遞到使用者的郵箱。在本文中,我們將提供有關如何在 Linux 中配置 Postfix 和 Dovecot 與虛擬域名使用者的詳細指南。
Postfix 和 Dovecot 的解釋
Postfix 是一個開源的 MTA(郵件傳輸代理),用於路由和傳遞電子郵件訊息。它允許您使用 SMTP(簡單郵件傳輸協議)在伺服器或個人之間傳送和接收電子郵件。Postfix 可以單獨工作,但需要像 Dovecot 這樣的投遞代理來將郵件投遞到本地使用者郵箱。
另一方面,Dovecot 是一個開源的 MDA(郵件投遞代理),它將傳入的電子郵件分類到使用者郵箱中的特定資料夾中,使用者可以透過客戶端(如 Mozilla Thunderbird 或 Microsoft Outlook)從這些資料夾中檢索電子郵件。它支援多種協議,例如 IMAP(網際網路郵件訪問協議)、POP3(郵局協議版本 3)和 LMTP(本地郵件傳輸協議)。
設定 Postfix
在 Linux 上安裝 Postfix
在配置 Postfix 之前,必須將其安裝在 Linux 系統上。Postfix 的安裝過程因使用的發行版而異,但通常可以透過包管理器來實現。例如,在 Ubuntu 中,可以透過執行命令“sudo apt-get install postfix”來完成。
sudo apt-get install postfix
配置 main.cf 檔案以用於虛擬域名和使用者
Postfix 的主要配置檔案位於 /etc/postfix/main.cf。此檔案包含指示使用者電子郵件如何接收和傳送的引數。要在 Postfix 中配置虛擬域名和使用者,必須在此檔案中設定幾個引數。
設定 virtual_alias_maps 和 virtual_mailbox_domains 引數
Virtual_alias_maps 是一個引數,用於將電子郵件地址對映到其他電子郵件地址或別名。必須在 main.cf 檔案中設定此引數,以允許使用者接收發送到其虛擬電子郵件地址的郵件。Virtual_mailbox_domains 是另一個必須在 main.cf 檔案中配置的引數,用於指定哪些域將虛擬儲存其郵箱。
為每個域名/使用者組合建立虛擬郵箱對映列表
虛擬郵箱對映是將使用者電子郵件對映到其電子郵件將虛擬儲存的特定目錄的檔案。必須為上一步中指定的每個域名/使用者組合建立這些檔案。這些檔案的語法如下:
`username@domain.com domain.com/username/` 這會建立一個對映,其中傳送到 username@domain.com 的任何電子郵件都將儲存在目錄 domain.com/username/ 中。
啟用 SMTP 身份驗證以進行安全的電子郵件傳輸
SMTP 身份驗證允許客戶端在使用 SMTP(簡單郵件傳輸協議)傳送電子郵件時進行身份驗證,以便只有授權使用者才能透過您的伺服器傳送郵件。要啟用 SMTP 身份驗證,必須在 main.cf 檔案中將 smtpd_sasl_auth_enable 引數設定為 yes。
這將允許使用者在傳送電子郵件之前使用使用者名稱和密碼進行身份驗證,從而提供額外的安全層。設定 Postfix 包括在 Linux 系統上安裝它,配置 main.cf 檔案以用於虛擬域名和使用者,為虛擬別名對映和郵箱域設定引數,為每個域名/使用者組合建立虛擬郵箱對映,以及啟用 SMTP 身份驗證以進行安全的電子郵件傳輸。
設定 Dovecot
在 Linux 上安裝 Dovecot
Dovecot 是一個開源的 IMAP 和 POP3 伺服器,可以使用包管理器輕鬆安裝在 Linux 系統上。要安裝 Dovecot,請執行以下命令:
sudo apt-get update sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d
這將安裝 Dovecot 的核心元件以及 IMAP 和 POP3 守護程序。
配置 dovecot.conf 檔案以用於虛擬域名和使用者
安裝完成後,是時候配置 Dovecot 以與我們的虛擬域名和使用者一起工作了。在您喜歡的文字編輯器中開啟 `/etc/dovecot/dovecot.conf` 檔案。在檔案中找到以下部分:
# Protocols we want to be serving. !include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp # SSL/TLS support: yes, no, required
ssl = no # PEM encoded X.509 SSL/TLS certificate and private key.
# These are used for all services that use SSL/TLS. ssl_cert =
ssl_key =
passdb { driver = passwd-file
args = scheme=CRYPT username_format=%u /etc/postfix/virtual-users } userdb {
driver = static args =
uid=vmail gid=vmail home=/var/mail/%d/%n allow_all_users=yes }
確保這些部分未被註釋(每行開頭沒有 #),並根據您的需要修改它們。
啟用 SSL/TLS 加密以進行安全的電子郵件檢索
預設情況下,透過網際網路傳輸電子郵件是不安全的,這意味著任何人都可以攔截和閱讀您的電子郵件。為了防止這種情況,我們需要啟用 SSL/TLS 加密以進行安全的電子郵件檢索。
在 `dovecot.conf` 檔案中,將 `ssl` 引數設定為 `yes`。這將使 Dovecot 能夠對傳入的電子郵件使用加密連線。
建立具有雜湊密碼的使用者資料庫
當用戶嘗試檢索其電子郵件時,Dovecot 需要一個使用者資料庫來對使用者進行身份驗證。我們可以使用純文字檔案或外部資料庫(如 MySQL 或 PostgreSQL)建立此資料庫。為簡單起見,我們將在本示例中使用純文字檔案方法。
在 `/etc/dovecot/users` 中建立一個新檔案,並新增以下行:
user1@virtualdomain.com:{PLAIN}password1::::::
user2@virtualdomain.com:{PLAIN}password2::::::
將 `user1@virtualdomain.com` 和 `user2@virtualdomain.com` 替換為您自己的虛擬域名使用者的電子郵件地址,並相應地設定其密碼。
配置 mail_location 引數以指定電子郵件儲存位置
我們需要指定 Dovecot 應該將傳入的電子郵件儲存在哪裡。我們可以透過在 `dovecot.conf` 檔案中設定 `mail_location` 引數來做到這一點。預設情況下,它設定為如下:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
這告訴 Dovecot 將郵件訊息以郵箱格式(`mbox`)儲存在每個使用者的 home 目錄(`~/mail`)中。
對於我們的虛擬域名使用者,我們希望根據其電子郵件地址將其電子郵件儲存在單獨的目錄中。為此,請將上述行更改為:
mail_location = maildir:/var/mail/virtual/%d/%n
這將以 `maildir` 格式將電子郵件儲存在 `/var/mail/virtual/` 目錄中,併為每個域(`%d`)和使用者(`%n`)建立子目錄。
疑難解答常見問題
配置過程中可能出現的常見問題,例如
有時,即使正確遵循了所有步驟,在配置 Postfix 和 Dovecot 期間也可能會出現問題。使用者面臨的一些常見問題是虛擬郵箱對映不正確、SSL/TLS 證書配置錯誤或密碼不匹配。
如果出現任何這些問題,則必須檢查日誌檔案以獲取除錯資料和錯誤訊息。日誌檔案可以在 /var/log/mail.log(用於 Postfix)和 /var/log/dovecot.log(用於 Dovecot)中找到。
這些檔案包含有關啟動或執行期間的任何錯誤或警告的資訊。如果虛擬郵箱對映存在問題,請確保它在 Postfix 的 main.cf 檔案中已正確配置。
確保您已更新 DNS 設定以包含虛擬郵箱對映中使用的主機名。如果您在嘗試使用 Dovecot 連線到電子郵件伺服器時遇到 SSL/TLS 證書錯誤,請首先檢查是否已使用 Let's Encrypt 或其他證書頒發機構為您的域設定了有效的 SSL/TLS 證書。
如果在登入嘗試期間存在身份驗證問題(例如使用者資料庫和電子郵件客戶端軟體之間的密碼不匹配),請仔細檢查所有密碼。請記住,密碼區分大小寫,並且不包含多餘的空格。
結論
在 Linux 上配置 Postfix 和 Dovecot 與虛擬域名使用者可能具有挑戰性,但也非常有益。瞭解它們如何協同工作以提供安全的電子郵件通訊將使處理 Web 應用程式更加簡單,同時維護當今許多業務運營中必要的機密性和安全標準。在 Linux 發行版(如 Ubuntu Server 18.x/20.x LTS 版本)上配置電子郵件伺服器設定時,如果仔細注意上述每個步驟,將證明是成功的!
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP