ファイアウォールの背後にあるローカルサブネット上のクライアントからの Postifx TLS 証明書の検証

ファイアウォールの背後にあるローカルサブネット上のクライアントからの Postifx TLS 証明書の検証

ファイアウォールの背後に、グレーリスト、DKIM、SFP、amavis、clamav が構成され、MX、"A" レコード、逆 DNS エントリが適切に構成された postfix サーバーが稼働しています。インターネット上の他のドメインにメールを送受信できます。postfix は、ドメインの LetsEncrypt からの証明書を使用しています。メール サーバーは、ファイアウォールの背後にあるプライベート サブネット (192.168.10.0/24 など) にあります。これを機能させるために、certbot 用にポート 25、587、465、993 と 80 および 443 のポート転送を行っています。また、メール サーバー用に予約されているパブリック IP アドレスにのみ解決するように、手動の静的アウトバンド NAT も構成しました。これまでのところ、すべて順調に動作しています。

私が抱えている問題は、メール サーバーが 192.168.10.0/24 ネットワークにあり、別のローカル サブネット (192.168.20.10/24) のファイアウォールの背後にあるクライアントに TLS ポート 465 と 587 でメールを送信できないことです。25 は機能します。クライアントが外部からアクセスしている場合は、すべて正常に機能します。現在、これらの内部クライアントがメール サーバーにアクセスしようとするたびに、ファイアウォール (この場合はルーターでもある) を通過します。これらのクライアントは、たとえば mail.mySimpleMailProject.com のメール サーバーを解決しようとしますが、証明書がパブリック IP ではなく間違った IP (192.168.10.5) にマッピングされているため無効であると認識されます。

ただし、ポート 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 (ポート転送) されていることを確認します。

関連情報