我试图设置一个后缀服务器与收件人地址validation,但我没有成功。 这是我的相关configuration( 按此 )
relayhost = xxxx smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_unknown_recipient_domain, reject_unverified_recipient unverified_recipient_reject_reason = Address lookup failed address_verify_negative_cache = no unverified_recipient_tempfail_action = defer
我将主机设置为我正在testing的域的MXlogging。
我唯一得到的是这样的:
May 4 10:36:29 marine postfix/smtpd[28788]: connect from xyz May 4 10:36:29 marine postfix/smtpd[28788]: NOQUEUE: reject: RCPT from xyz: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<example.nl> May 4 10:36:29 marine postfix/smtpd[28788]: disconnect from xyz
同时,我了解到收件人地址validation只validation用户,而不是域。 这意味着我仍然需要将该域列为中继域。 这是个问题。
我不想保留它可以中继的服务器上的域名列表。 目标服务器接受的是dynamic的,所以我不能保持同步域列表。 我本来打算这样做的:
显然,收件人地址validation只validation用户,而不是域。
我怎样才能确保postfix实际上拒绝邮件有一个MXlogging指向其他地方?
如果你在讨论postfix通过smtp来探测relay_host,那么这不能在本地完成,这将成为postfix的一个负担。 如果通过本地文件/ db / ldap或dns(域mx)不能立即确定它被允许,它将拒绝它。 否则,DOS攻击会很快占用你的资源,并将你的relay_host也取出。
如果relay_host具有数据库或ldap用户列表,则可以使用relay_recipient_maps和virtual_mailbox_domains来查询relay_host并知道它有什么可用的。 唯一的缺点是,如果它在任何时候都处于closures状态,那么你的后缀框很可能会出现4XX临时失败的错误,而不是接受邮件,直到relay_host可用来接受它,这是本地caching副本的好处。 我从我的中央服务器使用wget到本地3个postfix中继主机,这些主机定期下载用户和域名列表。
没有你的中继主机提供的详细信息,不能真正给出太多的configurationbuild议。
postfix中的permit_mx_backupconfiguration选项可以做你想做的事情:
permit_mx_backup
当本地邮件系统为RCPT TO域备份MX时,或当域是授权目标时(请参阅permit_auth_destination以进行定义),请允许请求。