Postfixに別のIPアドレスを使用させる方法は?


21

Postfixメールサーバーを使用しており、6つのIPを使用できます。Webサーバーが使用するよりも、Postfixメールサーバーに別のIPを使用してメールを送信したいと思います。

これどうやってするの?私のpostfixバージョンは2.3.3です。

例:メインIP:66.66.66.66その他のIP:66.66.66.67

回答:


25

あなたが欲しいsmtp_bind_address=66.66.66.67inet_interfaces=allまたはinet_interfaces=eth(whatever)66.66.66.67がオンになっている。

その変更を行ってから、postfixを停止/開始します。変更している場合はリロードできませんinet_interfaces


smtp_bind_addressオプションを試しましたが、メールサーバーがメールを送信しなくなりました。そして、そのサーバーでメールを受信したくないので、inet_interfacesを変更する必要はないと思います。このIPはメールの送信にのみ使用されることに注意してください。
EarthMind 09

postconf -nあなたが話していることを確認できるように、投稿してください。必要に応じて、IPをプライベートIP(10.xxxなど)およびドメイン(com | net | org | whatever)として匿名化します。
ビルヴァイス

2
smtp_bind_addressが正しい方法であり、使用していた新しいIPにはrDNSレコードがなかったため、メールの配信が遅れました。ご協力ありがとうございます。
EarthMind 2009

3
smtp_bind_addressIPv4アドレスを設定し、同等のIPv6はsmtp_bind_address6
Paul Tobias

16

「smtp_bind_address」ソリューションを使用する場合、メールサーバーは、指定されたIPアドレスでのみ着信メールもリッスンします。同じことが「inet_interfaces」ソリューションにも当てはまります。複数のIPアドレス/インターフェイスで受信メールをリッスンする場合、これは望ましい解決策ではない場合があります。

デフォルトの「smtp_bind_address」と「inet_interfaces」の設定を変更しないことをお勧めします。そのため、メールサーバーはすべてのIPアドレスで受信メールをリッスンします。

/etc/postfix/master.cfファイルを少し変更するだけです。

この部分を変更します。

smtp unix-----smtp
#メールをバックアップMXとしてリレーする場合、fallback_relayを無効にしてMXループを回避する
リレーUNIX-----smtp
        -o smtp_fallback_relay =

これに:

smtp unix-----smtp
        -o smtp_bind_address = 192.168.0.1
#メールをバックアップMXとしてリレーする場合、fallback_relayを無効にしてMXループを回避する
リレーUNIX-----smtp
        -o smtp_bind_address = 192.168.0.1
        -o smtp_fallback_relay =

もちろん、192.168.0.1の代わりに、メールを送信したいIPアドレスのいずれかを使用する必要があります。

ゾルタン


当時は、メールサーバーが受信メールと送信メールの両方に対して1つのIPアドレスのみをリッスンするようにしたかったと思います。しかし、それでもなお、追加情報に感謝しています。ありがとう。
アースマインド

1
これはipv6で動作しますか?その場合、2つのアドレスを含めて、それぞれのアドレスにバインドできますか?このソリューションでは、私はまだ私が指定したIPv6経由の送信メールとないのIPv4アドレスを取得しています
billynoah

私は追加し-o smtp_bind_address6=1:2:3:4:5:6:7:8、動作しているようです。
ビリーノア

1
これは正確ではありません。あるにそれらのすべてを追加することを経由してPostfixが複数のインタフェースで待機させることが可能inet_interfacesか、単にそれを設定する- all(デフォルト)設定しますsmtp_bind_addresssmtp_bind_address (またはsmtp_bind_address6)で指定された1つのアドレスは、Postfix smtp送信プロセスに個別に使用されます。
maxschlepzig

master.cfに-o smtp_bind_addressを追加しましたが、機能しませんでした。main.cfで使用しましたが、うまくいきました。
アレブスーヤシル

10

master.cf

異なるインターフェイスを作成します。各ドメインに1つ:

rotate1  unix -       -       n       -       -       smtp
          -o syslog_name=postfix-rotate1
          -o smtp_helo_name=domainone.com.br
          -o smtp_bind_address=173.111.111.1

rotate2  unix -       -       n       -       -       smtp
          -o syslog_name=postfix-rotate2
          -o smtp_helo_name=domaintwo.com.br
          -o smtp_bind_address=173.111.111.2

main.cf

  1. 他のすべてのトランスポートマップを無効にします。例:#transport_maps = xxxxx

  2. 依存トランスポートマップを有効にする(postfix 2.7.x以降が必要)

sender_dependent_default_transport_maps = mysql:/etc/postfix/config/transport_random_dependent.cf

transport_random_dependent.cf

例:

user = postfix
password = mypassword
dbname = postfixdb
hosts = localhost
query = SELECT transport FROM transport_random WHERE domain = '%d' AND status='1' ORDER BY RAND() LIMIT 1

テーブルtransport_random

Column "transport" = rotate1, rotate2, rotate3, rotate4 (etc)
Column "domain" = sender domains (replaced by %d)
Column "status" = boolean (0 or 1) if is enabled the transport.

命令「RAND()LIMIT 1」は、同じドメインに対してランダムなトランスポートを使用する場合にのみ必要です。

例では、3つの異なるIPからmydomain.comから送信する必要があります。

次に、3つの異なるIPで3つのトランスポート(rotate1、rotate2、rotate3)を作成し、mysql行で設定します。

transport = rotate1 | domain = mydomain.com
transport = rotate2 | domain = mydomain.com
transport = rotate3 | domain = mydomain.com

その後、postfixが3つの異なるトランスポートをランダム化(1〜3回回転)して、このメールを送信します。


3

/etc/postfix/main.cfを編集し、次の行が存在することを確認します

inet_interfaces = 66.66.66.67, localhost

次に、「postfix reload」を実行します


2
これにより、SMTP接続をリッスンするIPアドレスのみが設定され、送信メールの送信に使用されるIPアドレスは設定されません。
ub3rst4r
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.