我有两个 IP 地址在运行Postfix
,每个 IP 都有自己的域。简而言之,我想隔离域,以便外部人员认为它在自己的 IP 上运行,甚至也完全PTR
隔离
但在 postfix 中它没有myhostname
专门处理选项 IP。它总是使用mail.cf
文件中设置的默认值
我尝试过设置-o myhostname=abc
,但它仍然使用mail.cf
值。因此我的 IP 被列入SPAM
列表中
如何设置特定 IPmyhostname
以便HELO
横幅看起来不错
更新:
这是正在发生的事情:
我有两个 IP 地址,Postfix mailserver
我想托管两个彼此隔离的域,这样就没有人可以发现它们托管在同一台服务器上。
abc.com 1.1.1.1 zyx.com 2.2.2.2
服务器的主机名是mail.abc.com
如此明显后缀将其用作myhostname
如果我从zyx.com
域发送电子邮件来[email protected]
检查我的服务器发送的内容,那么我会收到以下回复,它说我们在主机上的邮件系统mail.abc.com
(这就是为什么我想使用myhostname
变量来设置它基于它用于发送电子邮件的IP )
我担心 CBL 可能会将我的 IP 列入黑名单,因为主机名不同且 HELO FQDN 不同。
This is the mail system at host mail.abc.com.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<[email protected]>: host helocheck.abuseat.org[54.245.112.115] said:
550 *** The HELO for IP address 2.2.2.2 was 'mail.zyx.com'
(valid syntax) *** (in reply to RCPT TO command)
答案1
如果您想要独特myhostname
,那么您可能感兴趣Postfix 多实例,参见官方文档这里。
通过此功能,每个实例将获得一个 IP 地址和一个myhostname
参数。因为 的默认值smtp_helo_name
是myhostname
,那么您的直升机名称应该与您的相匹配myhostname
。
例如,您有两个域,IP 地址为 192.168.1.1 的 xyz.example 和 IP 地址为 10.10.0.2 的 abc.example(请参阅RFC 2606 第 2 节)。注意:本简短教程是在 CentOS 6.5 上执行的
将默认的 postfix 安装配置为使用
myhostname
mail.abc.example 和inet_interface
10.10.0.2。调整默认实例上的 postfix 配置,例如
smtpd_*_restrictions
.使用工具创建第二个实例
postmulti
。postmulti -e init
这将插入
multi_instance_
配置main.cf
postmulti -I postfix-secondary -e create
这将创建名为 的新实例
postfix-secondary
。它将创建新的配置目录/etc/postfix-secondary
和另一个目录,例如假脱机和数据目录。第二个实例将带有默认配置。您应该在第一个实例上复制配置。当然你必须为这些参数设置不同的参数值
queue_directory = /var/spool/postfix-secondary data_directory = /var/lib/postfix-secondary multi_instance_name = postfix-secondary myhostname = mail.xyz.example inet_interfaces = 192.168.1.1
确保该参数
multi_instance_enable = yes
已在辅助 main.cf 中列出。
完毕。请参阅文档以获取用于管理 postfix 多实例的可用命令。
笔记:
Postfix 多实例似乎无法满足您的需求。然而,它为您提供更好的隔离级别。例如:上面的退回邮件仍然包含有关 mail.abc.example 的跟踪。对于多个实例,如果您从 xyz 实例发送邮件,您将收到来自 mail.xyz.example 的退回电子邮件。
您需要维护这两个配置,因为 postfix 不会在两个实例之间共享配置
mmv-ru 提出的另一个解决方案足以防止您看起来像垃圾邮件发送者。服务器 FQDN 与 smtp_helo_name 的值不同。只需确保您拥有 smtp_helo_name 上指定的域的正确 PTR 记录:)
答案2
-o myhostname=abc 不太重要。要影响 HELO,您必须覆盖 -o smtp_helo_name=abc
main.cf 中配置的值具有复杂的继承性,但它仅在 main.cf 加载时起作用。当您稍后覆盖某些参数时,您需要覆盖所有必要的参数。
目前,我不知道如何强制 postfix 通过正确的工作人员从域发送邮件,但我认为这是可能的。
UPD。
-o smtp_helo_name= 强制执行 HELO FQDN。另外,您需要为您的服务器定义相应的A(在您的域区域中)和PTR(在ISP或数据中心的反向区域或自己的如果您有AS)记录。
示例:-o smtp_helo_name=mailserver.abc.com
您的域名区域 abc.com
mailserver A 203.0.113.23
ISP 区域 113.0.203.in-addr.arpa
23 PTR mailserver.abc.com
FQDN 和邮件域不必匹配,可以不同。主要、HELO FQDN 可解析为 IP 和 IP 可解析为 FQDN
$ host mailserver.abc.com
mailserver.abc.com has address 203.0.113.23
$ host 203.0.113.23
23.113.0.203.in-addr.arpa domain name pointer mailserver.abc.com