来自防火墙后面本地子网上的客户端的 Postifx TLS 证书验证

来自防火墙后面本地子网上的客户端的 Postifx TLS 证书验证

我在防火墙后面有一个正常工作的 postfix 服务器,该服务器配置了灰名单、DKIM、SFP、amavis 和 clamav,并正确配置了 MX、“A”记录和反向 DNS 条目。我可以向互联网上的其他域发送和接收邮件。postfix 使用 LetsEncrypt 为该域颁发的证书。邮件服务器位于防火墙后面的私有子网(假设为 192.168.10.0/24)。为了使其正常工作,我正在为以下端口 25、587、465、993 以及 certbot 的 80 和 443 进行端口转发。我还配置了一个手动静态带外 nat,以仅解析为邮件服务器保留的公共 IP 地址。到目前为止一切正常。

我遇到的问题是,该邮件服务器位于 192.168.10.0/24 网络中,对于位于另一个本地子网 (192.168.20.10/24) 防火墙后面的客户端,无法发送邮件,对于 TLS 端口 465 和 587,25 有效!!!。如果客户端来自外部,一切正常。现在,每次这些内部客户端尝试访问邮件服务器时,它们都会通过防火墙,在这种情况下,防火墙也是路由器。这些客户端尝试解析邮件服务器,比如 mail.mySimpleMailProject.com,他们发现证书无效,因为它映射到错误的 IP,即 192.168.10.5,而不是公共 IP。

但是我只能使用端口 25 从这些内部客户端发送邮件,而且可以正常工作。但我的目标是在内部网络中通过安全通道发送邮件。

我已经阅读了一个可能的解决方案,即

配置 Nat 反射

现在我真的真的不想进行 NAT 反射,NAT 是邪恶的,我正试图不惜一切代价避免它。

我正在考虑以下有没有办法告诉 postfix

1)接受来自本地网络的连接

为此,我在 smtpd_recipient_restrictions 中输入了 permit_mynetworks 即

smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,

    reject_non_fqdn_helo_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_invalid_helo_hostname,
    reject_unknown_helo_hostname,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain,

    reject_rbl_client zen.spamhaus.org,

    check_policy_service unix:postgrey/socket,
    permit

2)当来自内部网络 192.168.20.0/24 的连接代表另一个自签名证书时,我稍后可以将其导入到这些客户端并让他们满意。

也许还有其他更好的解决方案。任何提示都非常感谢。

答案1

解决方案 1
您可以拥有一个内部 DNS,即在内部将 mail.mySimpleMailProject.com 解析为内部地址。

解决方案 2
确保从内部网络到从 mail.mySimpleMailProject.com 解析的公共 IP 的端口转发是 DNAT(端口转发)。

相关内容