postfix smtp_bind_address ディレクティブが機能しない

postfix smtp_bind_address ディレクティブが機能しない

最近、新しいサーバー(postfix 3.3.0を実行)に移行しましたがsmtp_bind_addressマスター.cf効果がありません。問題のサーバーには 10 個の IPv4 アドレスがあり、送信メールが正しいアドレスを経由してルーティングされることが重要です。以下は私が持っているものの抜粋です (192.168.100.1 は単なる例です。実際の IP は実際の WAN アドレスです)。

smtp      inet  n       -       y       -       -       smtpd
  -o smtp_bind_address=192.168.100.1
smtps     inet  n       -       y       -       -       smtpd
  -o smtp_bind_address=192.168.100.1

また、このメールサーバーと並行して amavis と postsrsd も実行しているので、メールは 1 つのサービスから次のサービスに渡されます。正直なところ、一連のイベントについては少し混乱していますが、以前はこの構成は完璧に機能していました。

引っ越してsmtp_bind_addressみたメイン.cfそれは確かに機能しましたが、amavis と postsrsd はどちらもメールが 127.0.0.1 経由で渡されることを期待しているため、他の問題が発生しました。

コンテンツ フィルターと組み合わせて、送信メールを特定のアドレスにバインドするにはどうすればよいですか?

答え1

送信SMTP/リレー接続は、以下の行で制御されます。master.conf

smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp

したがって、-o smtp_bind_address=192.168.100.1必要なものだけを追加することができます。

また、この組み合わせはmain.conf

inet_interfaces = 127.0.0.1 192.168.100.1
smtp_bind_address = 192.168.100.1

これにより、アプリケーションは 127.0.0.1 に接続できるようになり、送信 SMTP はデフォルトで特定のアドレスにバインドされます。

ファイアウォールがこれらすべての構成を上書きする可能性があることを忘れないでください。たとえば、次の単純なルールがあります。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

送信接続の送信元アドレス (インターフェイス eth0 から) をこのインターフェイスのプライマリ (デフォルト) アドレスに変換します。別の観点からは、ファイアウォールを使用して SMTP 接続の送信元アドレスを設定することもできます (postfix を構成せずに)。

iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -j SNAT --to-source 192.168.100.1

しかし、これは柔軟性がないため、最後の手段としてのみ実行します (例: postfix 設定を変更する権限がない)。

関連情報