Postfix 服务配置文件允许您通过自己的方式微调和减少服务级别的垃圾邮件数量。 在本指南中,我们将阻止来自没有 PTR 记录、问候语不正确以及来自 DNSBL 列表的发件人的邮件。
1. 让我们将这些设置添加到配置文件(注释掉该行):
nano /etc/postfix/main.cf
#smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
让我们添加以下配置:
nano /etc/postfix/main.cf
smtpd_client_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_pipelining
permit
smtpd_helo_restrictions =
permit
smtpd_sender_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_sender
reject_unknown_sender_domain
permit
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
defer_unauth_destination
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_recipient
reject_unauth_destination
reject_unknown_recipient_domain
reject_unverified_recipient
reject_unknown_client_hostname
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname
reject_rbl_client b.barracudacentral.org
reject_rbl_client dnsbl.abuse.ch
reject_rbl_client bl.spamcop.net
reject_rbl_client dul.ru
permit
smtpd_data_restrictions =
permit
smtpd_end_of_data_restrictions =
permit
要应用设置,请重新启动 postfix:
systemctl restart postfix
通过删除或添加规则,我们可以调节对发件人的严格程度,例如,流行的邮件服务大部分接受带有错误服务器问候语且不将 PTR 记录与 MX 匹配的邮件。 以下是设置说明:
- permit_mynetworks — 解析 mynetworks 设置中列出的所有地址。
- allow_sasl_authenticated - 允许来自所有成功通过身份验证的客户端的请求。
- reject_unauth_pipelining — 拒绝预先发送的电子邮件(跳过正确的 SMTP 会话链)。
- reject_non_fqdn_sender — 如果发件人地址无效,则拒绝连接。
- reject_unknown_sender_domain — 如果 Postfix 不是发件人地址的最终目的地,而 MAIL FROM 标头没有:DNS MX 记录和 DNS A 记录,则拒绝请求。
- reject_non_fqdn_recipient — 如果目标地址无效,则拒绝连接。
- reject_unauth_destination — 禁止未经授权连接服务。
- reject_unknown_recipient_domain — 如果发件人的域在 DNS 中没有记录,则拒绝请求:MX 和 A。
- reject_unverified_recipient — 如果已知发送到 RCPT TO 地址的邮件已被拒绝或收件人地址不可用,则拒绝请求。
- reject_unknown_client_hostname — 根据 PTR 检查发件人的 PRT 记录是否存在以及工作 A 记录是否存在。
- reject_invalid_helo_hostname — 检查 HELO 问候语的语法。
- reject_non_fqdn_helo_hostname — 在 HELO 问候期间需要有效的 FQDN。
- reject_unknown_helo_hostname — 禁止引入没有 A 记录或 MX 的名称。
- reject_rbl_client — 检查发件人是否被列入黑名单。
- permit - 允许连接。 它出现在每个块的末尾(如果这封信不属于多个禁令规则,我们将其发送)。