Linux

Postfix Mail Server 郵件伺服器 TLS 加密設定教學

介紹如何調整 Postfix 郵件伺服器設定,加入 TLS 加密,解決郵件沒有被加密保護的問題。

如果是自己架設的 Postfix 郵件伺服器,在沒有特別設定的情況下,送出的郵件會被 GMail 標示為紅色鎖頭,並顯示「your.domain.com 並未對這封郵件進行加密」的警告訊息,畫面會類似這樣:

GMail 郵件未加密警告

如果要解決這個問題,首先設定 SSL 憑證,最簡單的作法就是使用 Let’s Encrypt 所頒發的憑證,修改 Postfix 設定檔(通常是 /etc/postfix/main.cf):

# 設定 SSL 憑證
smtpd_tls_cert_file=/etc/letsencrypt/live/your.domain.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/your.domain.com/privkey.pem

接著設定讓 SMTP 的 server 與 client 都盡可能使用 TLS 加密:

# SMTP Server 盡可能使用 TLS 加密
smtpd_tls_security_level = may

# SMTP Client 盡可能使用 TLS 加密
smtp_tls_security_level = may

設定好之後,重新載入設定:

# 重新載入 Postfix 設定
sudo systemctl reload postfix

最後送一封測試信到 GMail 的信箱:

# 寄送測試信件至 GMail 信箱
date | mail -s test your.account@gmail.com

如果沒有出現紅色鎖頭,就完成設定了。

停用 TLS 1.0 與 1.1

舊版的 TLS 1.0 與 1.1 比較不安全,若要讓 Postfix 停用 TLS 1.1 以前版本,只能用 TLS 1.2 以後的版本,可以在 Postfix 設定檔中加入以下設定:

# TLS 停用 1.1 以前版本,僅允許 1.2 以後版本
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

參考資料:Tiger-Workshop Blog

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

10 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

10 個月 ago