我正在尝试配置 Postfix,以便它能够接受来自已认证外面的客户$mynetworks
。
当我尝试从配置为使用端口 25、SSL 和密码验证的 iPhone 发送测试电子邮件时,该邮件被 Postfix 拒绝。我收到以下信息/var/log/mail.info
:
10 月 25 日 17:41:35 mailhost postfix/smtpd[6136]: 警告:212.183.xx:主机名 host212-183-xx.uk.access.vodafone.net 验证失败:名称或服务未知
10 月 25 日 17:41:35 邮件主机 postfix/smtpd[6136]: 从未知连接 [212.183.xx]
10 月 25 日 17:41:39 mailhost postfix/smtpd[6136]: NOQUEUE: 拒绝:来自未知的 RCPT[212.183.xx]: 554 5.7.1: 客户端主机被拒绝:访问被拒绝;来自=<[电子邮件保护]> 至=<[电子邮件保护]> proto=ESMTP helo=<[10.25.xx]>
10 月 25 日 17:41:39 邮件主机 postfix/smtpd[6136]: 与未知 [212.183.xx] 断开连接
以下是main.cf
与 SASL/TLS 相关的所有设置:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtp_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom
我如何确定会话确实已经通过身份验证?
我该如何进一步解决此问题?
答案1
经过多次实验后,我发现我必须添加到permit_sasl_authenticated
(smtpd_client_restrictions
不要与之混淆smtpd_recipient_restrictions
)。
这已修复。
答案2
从具有 telnet/openssl 的系统进行测试http://www.postfix.org/SASL_README.html#server_test我不知道 iPhone 是否支持 starttls,所以您可能需要针对 465 和 587 测试 ssl 支持。我认为您还将其设置为仅在使用 ssl 时才接受身份验证。
答案3
我通过在 main.cf 中添加“smtpd_sasl_auth_enable”行,然后重新启动 postfix 解决了我的问题。(Webmail 没有问题,我只是在 Thunderbird 上收到访问被拒绝错误)
smtpd_sasl_auth_enable = yes
答案4
您在此行指定的参数:
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
是可能的罪魁祸首。
有关如何配置 Postfix 中继和访问控制的更多信息,请参阅文档。
看起来您需要首先将 *.vodafone.net 域添加到允许中继的域列表中。