我在 EC2 服务器上有一个 Postfix 实例,它需要接受来自外界的邮件(例如,端口 25 将从虚拟 IP 映射到它。)
我还想使用此服务器从我的其他 EC2 机器发送邮件。由于 EC2 不映射到可以授予中继访问权限的子网概念,因此我正在考虑在第二个端口上运行 Postfix,并通过安全组限制对该端口的访问。
最终,我希望端口 25 能够正常运行,并且让端口 26 能够接受任何能够连接到它的人的邮件。
这能做到吗?
答案1
pjz 的答案很接近。
在 master.cf 中添加几行如下所示的内容:
26 inet n - - - - smtpd
-o mynetworks=10.0.0.0/8
这将为您提供第二个 smtpd,其中 mynetworks 被 main.cf 中定义的内容覆盖。您可以用同样的方式覆盖其他变量;查看文件中应该已经存在的注释掉的示例。
答案2
当然可以。你需要编辑 master.cf 来添加另一个端口上的监听器(目前有一行类似
smtp inet n - - - - smtpd
您可以将其复制为:
26 inet n - - - - smtpd
在端口 26 上添加监听器。
然后,您只需将内部 Amazon IP 添加到mynetworks
main.cf 中的语句中,即可允许它们连接到它;我仅允许 10.0.0.0/8 连接,因为您的所有内部 AMI 都保证在该范围内。手动的当然还有更多细节。
编辑:Drew Bloechl 指出您可以直接在 master.cf 中覆盖 mynetworks,如下所示:
26 inet n - - - - smtpd -o mynetworks=10.0.0.0/8
此配置将把您在配置中输入的任何过滤等规则应用于端口 25 上进入的所有内容,但允许来自 10.0.0.0/8 的任何人连接到端口 26 并发送邮件,而无需通过所有这些检查。