ファイアウォールの背後に、グレーリスト、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 (ポート転送) されていることを確認します。