envelope sender で配送先を振り分けるパラメーター sender_dependent_relayhost_maps
はありますが、接続元 IPアドレスで振り分けるパラメーターはなさそうです。
check_client_access
は smtpd でメールを受ける際には使用できますが、incoming キューに入ったあと、qmgr + trivial-rewrite で配送先を決める際には使用できないと思います。
Postfix Architecture Overview
特定の送信元IPアドレスを持つクライアントからのメールだけ特定のIPアドレス宛てへリレーし、
上記の送信元IPアドレスのメールは、指定したリレー先以外には送らないようにしたいです。
前段に 25 番ポートで受ける SMTP プロキシーを配置して、接続元 IPアドレスで振り分ける構成が考えられます。
SMTP プロキシーは、例えば、Nginx の ngx_stream_proxy_module
+ ngx_stream_geo_module
など。
特定の送信元 IPアドレスならば特定の IPアドレス(MTA)へ、それ以外はローカルの postfix (例えば 10025 番ポート)へ。
ただし、postfix から見た接続先は 127.0.0.1 (nginx) になるので、mynetworks による制御が効かなくなります。
(nginx 設定例)
stream {
geo $relay_server {
default 127.0.0.1:10025;
192.168.0.0/24 special.relay.host:25;
}
server {
listen 25;
proxy_pass $relay_server;
}
}
それがダメなら、postmulti
で 1サーバーに 2インスタンス稼働させ(例えば、それぞれ 10025, 20025 番ポート)、それぞれリレー先を設定しておき、iptables の REDIRECT で、接続元 IPアドレスにより振り分ける方法が考えられます。
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 25 -j REDIRECT --to-port 20025
iptables -t nat -A PREROUTING -p tcp --dport 25 -j REDIRECT --to-port 10025
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/12 19:47
2020/07/13 00:23