我想在 Docker 容器中托管几个自动电子邮件服务,这些服务通过 Postfix 服务器发送和接收电子邮件,该服务器也位于容器中。唯一面向外部的容器托管 nginx 代理管理器。docker 网络将所有容器链接在一起。我将25
nginx 代理管理器中的端口流式传输到 Postfix 容器。由于我要么发送要么接收内部网络中服务的电子邮件,因此我将内部网络范围添加到main.cf
mynetwork = 172.16.0.0/12
当我意识到其他随机发件人正在通过我的域转发垃圾邮件时,问题很快就出现了。原因是,当使用代理管理器进行流式传输时,Postfix 总是将传入的电子邮件视为来自代理,因此被识别为从我的本地网络发送,并不管它而发送。
目前的解决方案是逐个输入配置
mynetwork = service-1 service-2 ...
问题是,如果我要向服务器添加更多服务,我必须手动更改配置文件并重新启动 Postfix 服务。有没有办法像这样从 Postfix 配置中的权限列表中排除某些主机?
mynetwork = 172.16.0.0/12 exclude:[host-name-to-exclude]
非常感谢!
答案1
有没有办法可以像这样从 Postfix 配置中的权限列表中排除某些主机?
您不应该尝试使用访问控制列表来解决此问题,而应该采用通用的电子邮件架构,并为入站和出站电子邮件设置单独的服务器。
入站服务器是“仅接收”服务器,它是唯一向公共互联网公开端口 25 的服务器。入站服务器从互联网接收发往本地用户的电子邮件。必须对其进行配置,以便不能用于将电子邮件转发到其他位置。
出站服务器处理邮件从本地用户,可用于将电子邮件转发到任意外部目的地。它可能需要身份验证,或者您可以依靠网络配置来控制访问。发送给本地用户的邮件将发送到您的入站服务器;其他所有邮件都将转发到适当的目的地。
(典型的电子邮件配置还将包括 POP/IMAP 服务器,本地用户可以通过该服务器检索他们的电子邮件。)