2

我最近从 Courier 迁移到 Dovecot。我配置 Postfix + MySQL + Dovecot 的主要指南是这个:https ://library.linode.com/email/postfix/postfix2.9.6-dovecot2.0.19-mysql

一切正常,但是当我更改邮件客户端中的邮件地址,为服务器留下正确的登录名和密码,并使用该假邮件(和域)地址发送电子邮件时,Postfix 只是发送它,而不验证该电子邮件是否地址存在于数据库中,并且没有验证该电子邮件地址是否是我的。

所以,我的 SMTP 配置一定有问题。这是我的实际配置:

# Requirements for the sender details
smtpd_reject_unlisted_sender = yes
smtpd_reject_unlisted_recipient = yes

smtpd_sender_restrictions =
        warn_if_reject,
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_sender,
        reject_unknown_sender_domain,
        reject_unauth_pipelining,
        reject_unlisted_sender,
        reject_unverified_sender,
        permit

# Requirements for the connecting server
smtpd_client_restrictions =
        reject_rbl_client zen.spamhaus.org,
        reject_rbl_client blackholes.easynet.nl,
        reject_rbl_client bl.spamcop.net,
        permit

# Requirement for the recipient address
smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_pipelining,
        reject_non_fqdn_recipient,
        reject_unknown_recipient_domain,
        reject_unauth_destination,
        reject_unlisted_recipient,
        reject_unverified_recipient,
        check_policy_service inet:127.0.0.1:10023,
        permit

smtpd_data_restrictions =
        reject_unauth_pipelining

# require proper helo at connections
smtpd_helo_required = yes
# waste spammers time before rejecting them
smtpd_delay_reject = yes
isable_vrfy_command = yes

任何人?

4

1 回答 1

2

中列出的reject_unlisted_sender限制列在和smtpd_sender_restrictions之后。Postfix 按顺序遍历限制列表,并在遇到第一个 permit/reject 时终止,因此永远不会到达. 由于您的消息没有被拒绝,因此它一定是因为or被接受的。permit_mynetworkspermit_sasl_authenticatedreject_unlisted_senderreject_unauth_destinationpermit_mynetworkspermit_sasl_authenticated

此外,除非您使用的发件人地址的域部分实际上由 Postfix“拥有”(即列在mydestinationvirtual_mailbox_domainsvirtual_alias_domains或中relay_domains),否则它无法验证并且reject_unlisted_sender无法工作。请参阅postconf(5) 手册页中的详细信息。

其他观察:

  • warn_if_reject限制放在前面permit_mynetworks。因为后者从不拒绝任何东西,所以warn_if_reject限制没有任何意义。
  • 由于您明确使用reject_unlisted_recipientand ,因此不需要reject_unlisted_sender设置smtpd_reject_unlisted_senderand 。smtpd_reject_unlisted_recipient
  • (几乎)每个列表末尾的 finalpermit都是隐式的,可以删除。
  • 除非是复制/粘贴错误,否则您拼错了disable_vrfy_command.
  • 我建议您将客户端和发件人限制列表合并到smtpd_recipient_restrictions. 启用后,无论如何都会在smtpd_delay_reject接收者阶段评估所有限制,并且单个列表通常会使配置更易于理解。
于 2013-11-22T03:48:06.243 回答