三個問題:
- 如果我錯了,請修正我:
smtpd_tls_mandatory_ciphers
=> 傳入強制 TLS 加密的設定
smtpd_tls_ciphers
=> 傳入機會性 TLS 加密的設定
smtp_tls_mandatory_ciphers
=> 傳出強制 TLS 加密的
smtp_tls_ciphers
設定 => 傳出機會性 TLS 加密的設置 - 如果我同時設定
smtpd_tls_security_level
和 ,smtp_tls_security_level
那麼may
只有機會主義設定是相關的,這意味著我在強制設定中設定什麼並不重要? 如果我想建立一個安全但仍然公共的郵件伺服器,以下配置(就所使用的加密技術而言)可以嗎?我不太確定目前有多少伺服器支援 TLS 或一般的安全級別,但我仍然希望能夠與大多數伺服器進行通訊。
smtpd_tls_mandatory_ciphers = high smtp_tls_mandatory_ciphers = high smtpd_tls_ciphers = high smtp_tls_ciphers = high smtp_tls_security_level = may smtpd_tls_security_level = may smtp_tls_protocols = !SSLv2, !SSLv3 smtp_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_protocols = !SSLv2, !SSLv3 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtp_tls_exclude_ciphers = aNULL, DES, RC4, MD5 smtpd_tls_exclude_ciphers = aNULL, DES, RC4, MD5 #hope this is enough since it is also added to the mandatory exclusions smtp_tls_exclude_ciphers = aNULL, DES, RC4, MD5 smtpd_tls_exclude_ciphers = aNULL, DES, RC4, MD5
背景:這是一家以安全為導向的公司,具有相當高的安全標準但我也不希望任何電子郵件因此配置而丟失。
附:我已經閱讀了解釋配置參數這也是我大部分知識的來源。
答案1
- 關於
smtp[d]_tls_[mandatory_]ciphers
是的。
- 如果我將
smtpd_tls_security_level
和都設定smtp_tls_security_level
為可能,那麼只有機會主義設定是相關的,這意味著我在強制設定中設定什麼並不重要?
是的。
- 如果我想建立一個安全但仍然公共的郵件伺服器,以下配置(就所使用的加密技術而言)可以嗎?
您將停用 SSL 並限制密碼,但仍允許未加密的流量。我認為對於與其他郵件伺服器的通訊來說,糟糕的加密比根本不加密好。
引用論文應用加密強化 (ACH)經過更好的加密:
Postfix 有五個內部密碼列表,並且可以在這些密碼之間進行切換
smtpd_tls_ciphers
。但是,我們將其保留為伺服器到伺服器連接的預設值,因為許多郵件伺服器僅支援過時的協定和密碼。我們認為糟糕的加密仍然比純文字傳輸更好。對於與 MUA 的連接,TLS 是強制性的,並且密碼套件會被修改。
對於與郵件客戶端的連接,限制密碼和協定以及選擇好的密碼和協定非常有用。
MX 和 SMTP 用戶端設定:如第 2.3.1 節所述,由於機會加密,我們不限制與其他郵件伺服器通訊的密碼或協定列表,以避免以純文字傳輸。
推薦配置如下:
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
# use 0 for Postfix >= 2.9, and 1 for earlier versions
smtpd_tls_loglevel = 0
# enable opportunistic TLS support in the SMTP server and client
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_loglevel = 1
# if you have authentication enabled, only offer it after STARTTLS
smtpd_tls_auth_only = yes
tls_ssl_options = NO_COMPRESSION
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers=high
tls_high_cipherlist=EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
smtpd_tls_eecdh_grade=ultra
這對於master.cf
:
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o tls_preempt_cipherlist=yes
使用給定的密碼套件,伺服器更喜歡最好的可用密碼,如果可能的話,也選擇完美保密,並且還支援所有相關客戶端,不允許使用錯誤的密碼。有關更多詳細信息,請參閱連結的論文,它提供了有關建議的非常詳細的信息,包括理論。上面引用的後綴部分的解釋是由我貢獻的(並經過許多其他人的審查)。