我想在 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]
非常感谢!
您不应尝试使用访问控制列表来解决此问题,而应采用通用电子邮件架构,并为入站和出站电子邮件设置单独的服务器。
入站服务器是“仅接收”服务器,并且它是唯一向公共互联网公开端口 25 的服务器。入站服务器从互联网接收发往本地用户的电子邮件。必须对其进行配置,以便它不能用于将电子邮件转发到其他位置。
出站服务器处理来自本地用户的邮件,并可用于将电子邮件中继到任意外部目的地。它可能需要身份验证,或者您可能依赖您的网络配置来控制访问。发送给本地用户的邮件将被发送到您的入站服务器;其他所有内容都会转发到适当的目的地。
(典型的电子邮件配置还包括 POP/IMAP 服务器,本地用户可以通过该服务器检索电子邮件。)