我使用 Postfix 运行虚拟电子邮件服务器,将发往 的电子邮件转发到domain.com
特定的 Gmail / Hotmail 帐户。该服务器还充当邮件中继,用于saslauthd
允许各方以以下方式登录和发送电子邮件domain.com.
目前,此邮件中继仅通过 TLS 与端口 25 配合使用(您可以通过在 Gmail 中创建仅发送电子邮件地址来访问它)。我是否应该为此目的打开端口 587 而不是使用端口 25?如果是这样,我是否需要禁用端口 25 上的邮件中继访问(因为我读到 587 用于端口 25 以减少垃圾邮件)?
我该怎么做?这就像在 Postfix 中添加submission
端口一样简单吗?master.cf
答案1
这提交端口587
不直接用于减少垃圾邮件,但对抗垃圾邮件确实需要另一个端口:SMTP 端口25
通常由 ISP 在每个消费者级互联网连接和所有其他不应有任何电子邮件服务器的网络上关闭。这可以防止受感染的计算机直接与接收服务器通信,但副作用是也会阻止经过身份验证的用户使用中继。对于“我应该”这个问题的答案依靠取决于你的用户是否面临这些问题。可能是。
此外,还有使用单独端口的其他原因提交变得方便对于这种设置,您根本不使用端口25
来发送出站邮件,这使您能够对 SMTP 和提交使用单独的设置(例如smtpd_sender_restrictions
/ )。smtpd_recipient_restrictions
对于收到的邮件,
25
您通常会执行许多检查,例如 SPF、DMARC、DNS BL。这些检查对经过身份验证的连接不是很有用,对吗?您可以简单地跳过它们提交。smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_invalid_hostname, reject_unauth_pipelining, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_non_fqdn_recipient, reject_unknown_recipient_domain, . . . check_policy_service unix:private/policy-spf, reject_rbl_client sbl-xbl.spamhaus.org, . . . permit
接受者限制?!其中大部分其实是限制发件人但是我喜欢仅在 SMTP 命令之后触发它们
RCPT TO
以获取更多调试信息(例如误报)。对于电子邮件提交 您
587
可能需要对经过身份验证的用户进行不同类型的检查。(这些设置将转到master.cf
并覆盖中的设置main.cf
。首先,我们启用 SASL 身份验证;此配置未完成,因为它取决于您的 SASL 提供商。鸽舍?)submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes . . .
您不希望每个用户都能代表其他用户发送邮件,对吗?如果您使用 DKIM 签名邮件,这一点尤其重要。可以将地址绑定到某些用户名。在下面的示例中,这些地址/用户名对已经以
virtual_alias_maps
我们也可以在此处使用的格式定义,但您的设置很可能需要另一个映射,因为您没有本地邮箱。-o smtpd_sender_login_maps=hash:/etc/postfix/virtual -o smtpd_sender_restrictions=reject_sender_login_mismatch . . .
然后,您不想接受发往不存在的域等的邮件,就像您不想在
smtpd_recipient_restrictions
for 端口上接收来自此类域的邮件25
一样。只是现在他们实际上会测试收件人地址。在同一行(换行符仅用于格式化)上,您可以通过拒绝所有未经身份验证的内容来强制执行 SASL 身份验证。-o smtpd_recipient_restrictions=reject_non_fqdn_recipient, reject_unknown_recipient_domain,permit_sasl_authenticated,reject . . .