我正在使用裡面的這段程式碼/etc/postfix/master.cf
來迫使人們安全地“提交”465
透過使用協定 SMTPS 的連接埠傳送電子郵件。 SMTPS 支援強制 TLS,我用它來要求客戶第一“加密”使用強制 TLS 和第二個連接“認證”使用SASL機制。
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
#
-o smtpd_use_tls=yes
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
-o smtpd_tls_cert_file=/etc/ssl/certs/server-rsa.cert
-o smtpd_tls_key_file=/etc/ssl/private/server-rsa.key
-o smtpd_tls_eccert_file=/etc/ssl/certs/server-ecdsa.cert
-o smtpd_tls_eckey_file=/etc/ssl/private/server-ecdsa.key
#
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=smtpd
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
#
這按預期工作。它實際上效果很好!
我想以同樣的方式保護端口25
,但看起來這是不可能的,因為這個端口有兩個入境功能即“提交”和“中繼接收” (延長這個連接埠的壽命是愚蠢的,我們應該盡快擺脫)。
連接埠上25
只有協定 SMTP,不支援強制 TLS!因此對於入境電子郵件,即“提交”和“中繼接收”,所有可以啟用的都是機會性 TLS(可以被駭客攻擊)。所以我所能啟用的只是一個壞的“加密”稍後可以使用 DANE 進行增強(不容易被駭客攻擊)。
所以對於港口25
我有希望“加密”在某些時候就足夠了,雖然我不明白如何設定 SASL“驗證”!
我嘗試使用這段程式碼,/etc/postfix/master.cf
其中程式碼的第一部分設定機會 TLS,程式碼的第二部分應該設定 SASL“驗證”。
smtp inet n - y - - smtpd
-o syslog_name=postfix/smtp
#
-o smtpd_use_tls=yes
-o smtpd_tls_security_level=may
-o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
-o smtpd_tls_cert_file=/etc/ssl/certs/server-rsa.cert
-o smtpd_tls_key_file=/etc/ssl/private/server-rsa.key
-o smtpd_tls_eccert_file=/etc/ssl/certs/server-ecdsa.cert
-o smtpd_tls_eckey_file=/etc/ssl/private/server-ecdsa.key
#
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=smtpd
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination
#
不幸的是,我發現了這一行:
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
一方面迫使想要的客戶“提交”透過連接埠發送電子郵件25
至"authenticate"
和另一方面拒絕所有來自其他 MTA 的「已收到中繼」電子郵件!
那我怎麼才能實現這兩個目標:
- 阻止任何人透過網路“提交”使用
25
我伺服器上的連接埠發送電子郵件。 - “中繼接收”所有從其他 MTA 發送到我的連接埠的電子郵件
25
。