來自防火牆後面本地子網路上的用戶端的 Postifx TLS 憑證驗證

來自防火牆後面本地子網路上的用戶端的 Postifx TLS 憑證驗證

我在防火牆後面有一個工作後綴伺服器,配置了灰名單、DKIM、SFP、amavis 和 clamav,並正確配置了 MX、「A」記錄和反向 DNS 條目。我可以傳送和接收郵件到網際網路上的其他網域。該後綴正在使用來自 LetsEncrypt 的網域憑證。郵件伺服器位於防火牆後面的私人子網路(例如 192.168.10.0/24)上。為了實現這一點,我正在為 certbot 的以下連接埠 25,587、465、993 以及 80 和 443 進行連接埠轉送。我還配置了手動靜態帶外 nat,僅解析為郵件伺服器保留的公共 IP 位址。到目前為止一切順利。

我遇到的問題是,該郵件伺服器位於192.168.10.0/24 網路中,並且對於位於TLS 連接埠(即465 和587)的另一個本地子網路(192.168.20.10/24)中的防火牆後面的用戶端,發送郵件不起作用, 25 個作品!如果客戶來自外部,一切都會很好。現在,每次這些內部用戶端嘗試存取郵件伺服器時,它們都會穿過防火牆,在本例中防火牆也是路由器。這些用戶端嘗試解析郵件伺服器(例如 mail.mySimpleMailProject.com),他們發現憑證無效,因為它會對應到錯誤的 IP,即 192.168.10.5,而不是公用 IP。

不過,我可以僅使用連接埠 25 從這些內部用戶端發送郵件,並且可以正常工作。但我的目標是透過內部網路中的安全通道發送郵件。

我讀過一個可能的解決方案,即

配置NAT反射

現在我真的不想做 NAT 反射,NAT 是邪惡的,我不惜一切代價試圖避免它。

我在想以下有沒有辦法告訴 postfix

1)接受來自本地網路的連接

為此,我在 smtpd_recipient_restrictions 中新增了 allowed_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(連接埠轉送)。

相關內容