📧 Mailserver 架設教學基礎篇
想在 Linux 上自行架設郵件伺服器?本篇將以 Rocky / CentOS 系列 為例, 教你從零開始安裝與設定 Postfix(寄信伺服器) 與 Dovecot(收信伺服器), 建立完整的 SMTP / IMAP 郵件環境,並說明每個元件的功能與關聯。
📘 一、Mailserver 架構圖(Postfix × Dovecot)
┌────────────────────────────┐
│ User (Client) │
│ ────────────────────── │
│ ▸ Thunderbird / Outlook │
│ ▸ Webmail / Telnet Test │
└────────────┬───────────────┘
│ SMTP (25/587) 傳送郵件
▼
┌─────────────┐
│ Postfix │ ←── Fail2Ban、Firewalld 防護
│ (MTA) │
└─────┬───────┘
│ 本機投遞 (Local Delivery)
▼
┌─────────────┐
│ Dovecot │ ←── IMAP (143/993)、POP3 (110/995)
│ (MDA/IMAP) │
└─────────────┘
🧱 二、安裝必要套件
# 更新套件庫
sudo dnf update -y
# 安裝 Postfix 與 Dovecot
sudo dnf install postfix dovecot mailx -y
# 開機自動啟用服務
sudo systemctl enable --now postfix
sudo systemctl enable --now dovecot
# 檢查運行狀態
sudo systemctl status postfix
sudo systemctl status dovecot
安裝後系統會建立預設設定檔:
/etc/postfix/main.cf:主要郵件服務設定/etc/dovecot/dovecot.conf:郵件收取協定設定
⚙️ 三、Postfix 基本設定
# 編輯主要設定檔
sudo nano /etc/postfix/main.cf
# 以下為最小可運作設定(範例)
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost =
home_mailbox = Maildir/
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP
設定完成後重新啟動服務:
sudo systemctl restart postfix
📨 四、Dovecot 收信服務設定
Dovecot 負責提供 IMAP/POP3 收信功能,並存放用戶郵件至 Maildir 格式。
# 啟用 Maildir 與認證機制
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
sudo nano /etc/dovecot/conf.d/10-master.conf
# 啟用 IMAP 與 POP3
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
重新啟動服務:
sudo systemctl restart dovecot
🧩 五、建立測試使用者與郵件目錄
# 新增測試帳號
sudo useradd mailuser -m
sudo passwd mailuser
# 建立 Maildir 目錄
sudo mkdir /home/mailuser/Maildir
sudo chown -R mailuser:mailuser /home/mailuser/Maildir
測試寄信:
echo "Mailserver 測試信件內容" | mail -s "測試信" mailuser@localhost
查看信件是否成功投遞:
sudo tail -n 20 /var/log/maillog
🔍 六、防火牆開放與服務驗證
# 開啟郵件服務常用 port
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=pop3
sudo firewall-cmd --reload
# 驗證連線(可使用 Telnet 或 openssl)
telnet localhost 25
openssl s_client -connect localhost:993
💡 小提示:
若信件未成功寄送,請檢查
/var/log/maillog 與 /etc/postfix/master.cf 是否啟用了 smtpd 模組。
📈 七、後續延伸建議
- 啟用 STARTTLS / SSL 憑證(可搭配 Let's Encrypt)
- 加入 SPF / DKIM / DMARC 驗證機制強化信任度
- 整合 Fail2Ban 偵測暴力登入與郵件炸彈攻擊
- 安裝 Roundcube Webmail 提供使用者介面
📘 結語
恭喜你完成了 Linux Mailserver 架設的基礎環境! 從寄信的 Postfix 到收信的 Dovecot, 你已建立可在本地網路正常運作的 SMTP / IMAP 伺服器。 下一步將在「進階篇」介紹 TLS、SPF、DKIM、Fail2Ban 整合的安全強化策略。
🔗 延伸閱讀
- 🐧 Linux systemd 深入解析與啟動流程管理
- 🔐 Fail2Ban + iptables 防暴力破解實戰(SSH 與常見服務)
- 🧩 Linux 安全強化實戰:Firewalld、SELinux 與 Fail2Ban 整合指南
— WWFandy・Mailserver 系列基礎篇
沒有留言: