返回部落格

郵件伺服器設定教學:如何使用 Postfix、Dovecot、MySQL 和 SpamAssassin

郵件伺服器設定教學:如何使用 Postfix、Dovecot、MySQL 和 SpamAssassin

簡介

Ubuntu 20.04 上,您可以使用像是 Postfix, Dovecot, MySQL 以及 SpamAssassin 的工具來設定郵件伺服器。對於第一次嘗試的人來說,這個過程可能會令人困惑。本教學旨在透過詳細的步驟為您簡化郵件伺服器的設定過程。在本教學結束時,您將了解如何新增虛擬網域、使用者和別名。最終,您將使您的虛擬伺服器更安全,免受垃圾郵件發送中心的侵害。

先決條件

在開始設定郵件伺服器之前,需要先處理一些先決條件。首先,確保您的虛擬專屬伺服器(VPS)有一個指向您伺服器的網域。您還需要 安裝並設定 MySQL。此外,您需要擁有一個 已授予 root 權限的使用者安裝 SSL 憑證。最後,確保您的 FQDN  已設定並識別。

如果您以 root 使用者身份安裝套件,您將擁有所有權限。這就是我們推薦它的原因:

輸入您的使用者密碼。此時,您將會看到 $ 符號變更為 #。接下來,讓我們逐一探索設定的不同方面。

步驟 1:安裝套件

我們將從學習如何安裝套件開始:

當 Postfix 設定彈出時,選擇 Internet Site:

Mail Server postfix config

系統會詢問您關於 System mail 名稱。在這裡,您可以使用 FQDN 或主網域:

postfix configuration 2

步驟 2:建立 MySQL 資料庫、虛擬網域、使用者和別名

接下來,一旦安裝了所有套件,我們將繼續進行設定。我們的目標是設定三個資料表。一個用於網域,一個用於使用者,另一個用於別名。這些將儲存在我們將建立的 MySQL 資料庫中。

假設我們想將資料庫命名為 servermail。您可以自由選擇您想要的名稱。以下是我們建立它的方式:

您必須以 MySQL root 使用者身份登入:

然後,輸入您的密碼。成功登入後將顯示以下結果:

接下來,我們將專門為郵件驗證建立一個新使用者。授予 SELECT 權限,如下所示:

之後,重新載入您的 MySQL 權限以成功套用權限:

接下來,我們將使用我們的資料庫來建立資料表並輸入資料:

我們將為被識別為授權網域的特定網域建立個別的資料表:

目標是將使用者引入資料表中。因此,我們將新增相關的電子郵件地址和密碼。請記住,您必須將每個使用者與一個網域關聯:

接下來,我們將為所有虛擬別名建立一個資料表,以指定我們要轉寄到另一個電子郵件的所有電子郵件:

在此程序結束時,您將成功建立三個資料表。接下來,我們必須導入資料。

  • 虛擬網域

在此章節中,我們將學習如何將網域導入至 virtual_domains 資料表。具體來說,我們將專注於如何導入主要網域(example.com)和 FQDN (hostname.example.com):

  • 虛擬電子郵件

接下來,輸入每個網域的電子郵件地址和相關密碼。請確保將所有資訊更改為您的特定資訊:

  • 虛擬別名

現在您可以導入要將其他電子郵件地址轉寄至的電子郵件地址。前者是來源,而後者是目的地:

然後,您可以退出 MySQL:

步驟 3:設定 Postfix

設定 Postfix 以便其管理 SMTP 連線非常重要。它還必須能夠為 MySQL 資料庫中輸入的所有使用者傳送郵件。讓我們首先製作預設檔案的複本。這樣一來,您就可以在需要時輕鬆還原到預設設定:

現在開啟 main.cf 檔案以進行修改:

首先註解掉 TLS 參數,然後附加任何其他參數。在我們的範例中,我們使用的是免費的 SSL 憑證。當然,您可以根據您的需求更改設定:

接下來,您將在 TLS 設定下方附加這些參數:

在此之後,我們必須將 mydestination 預設設定註解掉。然後,我們將其替換為 localhost。進行此變更後,VPS 將能夠使用 MySQL 資料表中的虛擬網域:

現在使用此命令來驗證 myhostname 參數已在您的 FQDN 中設定:

此外,附加此行以啟用對資料表中列出的所有虛擬網域的本地郵件遞送:

最後,我們將新增以下參數,以指示 Postfix 設定虛擬網域、使用者和別名:

為確保沒有錯誤,請將這些變更與以下檔案進行比較:

https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt

檢查完所有這些內容後,您將建立三個檔案以附加到 main.cf 檔案中。這裡的目的是向 Postfix 提供如何與 MySQL 連線的說明。為此,我們將首先建立 mysql-virtual-mailbox-domains.cf 檔案。當然,在您的檔案中,您將根據您的個人設定進行變更:

接下來,重新啟動 Postfix:

您必須確保 Postfix 能夠找到您的網域。要測試這一點,請使用此命令:

如果成功,該命令將返回 1。在這種情況下,您可以透過建立以下檔案來繼續進行 mysql-virtual-mailbox-maps.cf 檔案:

再次重新啟動 Postfix:

同樣地,我們將確保 Postfix 能夠找到第一個電子郵件地址。要測試這一點,請使用以下命令:

如果成功,您將獲得輸出 1 作為回報。因此,我們將繼續建立最後一個檔案:

這完成了 Postfix 與 MySQL 之間的設定。重新啟動 Postfix 以套用:

若要確認 Postfix 確實找到了您的別名,請使用此命令:

理想情況下,您應該會收到轉寄到該別名的郵件作為輸出。您也可以修改 /etc/postfix/master.cf 檔案,如果您想安全地連接連接埠 587 與電子郵件用戶端:

以下是如何取消註解某些行並附加參數:

有時,您可能需要重新啟動 Postfix 以確認連接埠已開啟:

此工具 也可用於掃描網域連接埠。您可以使用它來驗證連接埠 25587 已開啟。

步驟 4:設定 Dovecot

現在是設定 Dovecot 的時候了。在此部分中,我們必須複製您想要修改的 7 個檔案。這是為了確保您在需要時可以還原。請逐一輸入此命令:

You have to edit the configuration file from Dovecot:

請確保該選項已取消註解:

接下來,我們將啟用位於 !include_try /usr/share/dovecot/protocols.d/*.protocol 行下方的協定。如果您願意,也可以新增 pop3:

為確保沒有錯誤,請將其與此檔案進行比較:

https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt

接下來,編輯郵件確認檔案:

尋找 mail_location 行。您需要取消註解並新增此參數:

之後,尋找 mail_privileged_group 行。同樣地,取消註解並新增 mail 參數:

為了消除任何出錯的可能性,請將其與此檔案進行比較:

https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt

  • 驗證權限

若要驗證權限,請使用此命令:

請確保您的權限顯示如下:

您可以為每個網域建立一個資料夾。所有這些資料夾都將註冊在 MySQL 資料表中:

使用識別碼建立 vmail 使用者和群組 5000:

接下來,您必須將 /var/mail 資料夾的所有者變更為 vmail 使用者:

現在編輯 /etc/dovecot/conf.d/10-auth.conf 檔案:

取消註釋純文字驗證後,新增以下行:

使用此項來修改 auth_mechanisms 參數:

現在註釋此行:

若要啟用 MySQL 授權,您必須取消註釋以下行:

若要偵測並編輯錯誤,請使用以下檔案:

https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt

建立一個 /etc/dovecot/dovecot-sql.conf.ext 包含您資訊的檔案將允許您進行驗證:

在檔案中輸入此程式碼:

我們將使用自訂的 MySQL 資訊來修改 /etc/dovecot/dovecot-sql.conf.ext 檔案:

取消註釋 driver 參數後,將其設定為 mysql,如下所示:

您可以透過取消註釋 connect 行來引入您的 MySQL 特定資訊:

現在您必須取消註釋 default_pass_scheme 行並將其變更為 SHA-512:

在取消註釋以下內容後新增以下資訊: password_query:

若要偵測錯誤,請使用此檔案進行比對:

https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt

接下來,您可以將 dovecot 資料夾的所有者和群組變更為 vmail 使用者:

下一步是修改 /etc/dovecot/conf.d/10-master.conf 檔案。您在這裡必須特別小心,因為將會變更不同的參數:

使用以下程式碼將 unix_listener 參數變更為 service_auth:

接下來,您必須編輯 service auth-工作者,如下所示:

透過與此檔案進行比較來偵測錯誤:

https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt

下一步是修改 Dovecot 的 SSL 設定檔。如果您打算使用預設設定,則可以跳過此步驟並進入下一節:

接下來,將 ssl 參數變更為 required,如下所示:

我們還將修改以下兩者的路徑: ssl_certssl_key:

重新啟動 Dovecot:

請務必檢查連接埠 993 是否已開啟。如果您已啟用 pop3,也請檢查連接埠 995:

如果您已完成到此步驟,恭喜您!您已成功設定您的郵件伺服器。為了確保您正確執行了所有步驟,您可以使用電子郵件用戶端測試您的帳戶,如下所示:

連接埠 993 用於安全 IMAP,而連接埠 587/連接埠 25 用於 SMTP。

步驟 5:設定 SpamAssassin

我們終於來到了教學的最後一部分,我們將在此設定 SpamAssassin。我們將從安裝 SpamAssassin 開始:

像這樣為 SpamAssassin 建立一個使用者:

您必須開啟並修改設定,才能設定 SpamAssassin:

既然您已經到了這裡,您必須將 ENABLED 參數變更以啟用 SpamAssassin 守護行程:

使用此程式碼修改 home 和 options 參數:

使用此行來指定 PID_File 參數:

接下來,使用此命令來指示 SpamAssassin 的規則將自動更新:

透過與以下文件進行比較來檢查錯誤:

https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt

如果您想設定反垃圾郵件規則,則必須再次開啟 /etc/spamassassin/local.cf 檔案:

SpamAssassin 的運作方式是為使用者收到的每封郵件進行評分。它會評估電子郵件的分數,如果其垃圾郵件檢查分數大於 5.0,該郵件就會被標記為垃圾郵件。以下是您可以用來設定這些反垃圾郵件規則的參數:

反垃圾郵件規則設定完成後,您需要告知 Postfix 每封電子郵件都需要使用 SpamAssassin 進行檢查。為此,我們需要修改 /etc/postfix/master.cf 檔案:

尋找以下行並新增 spamassassin 篩選器:

現在您可以附加這些參數:

最後,啟動 SpamAssassin 並重新啟動 Postfix 以套用變更。重新啟動後,Postfix 將開始驗證電子郵件中的垃圾郵件:

就是這樣!您已成功使用 Postfix 和 Dovecot 設定了您的郵件伺服器。您還執行了 MySQL 驗證,並使用 SpamAssassin 設定了垃圾郵件篩選。

結論

本教學概述了您需要遵循的步驟,以便使用上述工具進行郵件伺服器的設定。這可以作為您獨立設定郵件伺服器的完整指南。如果您有興趣 利用 Google 的 SMTP 伺服器功能,請跟隨本教學進行.

祝您使用愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。