Wie kann Postfix eine andere IP-Adresse verwenden?

21

Ich benutze den Postfix Mailserver und habe 6 IPs zur Verfügung. Ich möchte eine andere IP für den Postfix-Mailserver zum Senden von E-Mails verwenden, als der Webserver verwendet.

Wie kann ich das machen? Meine Postfix-Version ist 2.3.3.

Zum Beispiel: Haupt-IP: 66.66.66.66 andere IP: 66.66.66.67

EarthMind
quelle

Antworten:

25

Sie wollen smtp_bind_address=66.66.66.67und inet_interfaces=alloder inet_interfaces=eth(whatever)dass 66.66.66.67 eingeschaltet ist.

Nehmen Sie diese Änderung vor und beenden / starten Sie Postfix. Sie können nicht einfach neu laden, wenn Sie sich änderninet_interfaces

Bill Weiss
quelle
Ich habe die Option smtp_bind_address ausprobiert, aber dann sendet mein Mailserver keine Mail mehr. Und ich denke nicht, dass inet_interfaces geändert werden muss, da ich auf diesem Server keine E-Mails empfangen möchte. Beachten Sie, dass diese IP nur zum Senden von E-Mails verwendet wird.
EarthMind
Bitte posten Sie Ihre, postconf -ndamit wir sehen können, wovon Sie sprechen. Anonymisieren Sie IPs als private IPs (10.xxx usw.) und Domänen als Beispiel (com | net | org | whatever), wenn Sie dies für erforderlich halten.
Bill Weiss
2
smtp_bind_address war der richtige Weg und ich hatte nur eine Verzögerung bei der E-Mail-Zustellung, da die neue IP, die ich verwendete, keinen rDNS-Datensatz hatte. Vielen Dank für Ihre Hilfe.
EarthMind
3
smtp_bind_addressLegt die IPv4-Adresse fest, das IPv6-Äquivalent istsmtp_bind_address6
Paul Tobias
16

Wenn Sie die Lösung "smtp_bind_address" verwenden, überwacht Ihr Mailserver auch nur die angegebene IP-Adresse auf eingehende E-Mails. Gleiches gilt für die Lösung "inet_interfaces". Dies ist möglicherweise nicht die gewünschte Lösung, wenn Sie eingehende E-Mails an mehreren IP-Adressen / Schnittstellen abhören möchten.

Meine Lösung ist besser, da ich vorschlage, die Standardeinstellungen "smtp_bind_address" und "inet_interfaces" nicht zu ändern, damit Ihr Mailserver weiterhin alle IP-Adressen auf eingehende E-Mails überwacht.

Sie müssen nur eine kleine Änderung in Ihrer Datei /etc/postfix/master.cf vornehmen.

Ändern Sie diesen Teil:

SMTP UNIX - - - - - SMTP
# Wenn Sie Mail als Backup-MX weiterleiten, deaktivieren Sie fallback_relay, um MX-Schleifen zu vermeiden
Relay Unix - - - - - SMTP
        -o smtp_fallback_relay =

dazu:

SMTP UNIX - - - - - SMTP
        -o smtp_bind_address = 192.168.0.1
# Wenn Sie Mail als Backup-MX weiterleiten, deaktivieren Sie fallback_relay, um MX-Schleifen zu vermeiden
Relay Unix - - - - - SMTP
        -o smtp_bind_address = 192.168.0.1
        -o smtp_fallback_relay =

Natürlich müssen Sie anstelle von 192.168.0.1 eine Ihrer IP-Adressen verwenden, von der Sie Ihre E-Mails senden möchten.

Zoltan

Zoltan
quelle
Ich denke, dass der Mail-Server zu der Zeit nur eine IP-Adresse abhören sollte, sowohl für eingehende als auch für ausgehende E-Mails. Aber trotzdem schätze ich die zusätzlichen Informationen. Vielen Dank.
EarthMind
1
Funktioniert das mit ipv6? Wenn ja, kann ich zwei Adressen angeben und an jeweils eine binden? Mit dieser Lösung
erhalte
Ich fügte hinzu -o smtp_bind_address6=1:2:3:4:5:6:7:8und scheint zu funktionieren.
billynoah
1
Das ist nicht richtig. Es ist möglich, dass Postfix mehrere Schnittstellen überwacht, indem alle hinzugefügt werden inet_interfaces- oder einfach auf all(Standardeinstellung) und konfiguriert werden smtp_bind_address. Die mit smtp_bind_address (oder smtp_bind_address6) angegebene Adresse wird dann unabhängig für den Postfix-SMTP-Sendevorgang verwendet.
Maxschlepzig
Ich habe meinem master.cf die -o smtp_bind_address hinzugefügt und es hat nicht funktioniert. Ich habe es in main.cf benutzt und es hat funktioniert.
Areeb Soo Yasir
10

master.cf

Erstellen Sie verschiedene Schnittstellen. Eine für jede Domain:

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. Deaktivieren Sie alle anderen Transportzuordnungen, z. B .: # transport_maps = xxxxx

  2. Abhängige Transportzuordnung aktivieren (Postfix 2.7.x oder höher erforderlich)

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

transport_random_dependent.cf

Beispiel:

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

Tabelle 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.

Die Anweisung "RAND () LIMIT 1" ist nur erforderlich, wenn Sie zufällige Transporte für dieselbe Domain verwenden möchten.

In Beispiel möchten Sie von mydomain.com aus 3 verschiedene IPs senden.

Anschließend erstellen Sie 3 Transporte (rotate1, rotate2 und rotate3) mit 3 verschiedenen IP-Adressen und setzen diese dann auf mysql-Zeilen:

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

Wenn Postfix dann drei verschiedene Transporte zufällig sortiert (Rotation eins zu drei), um diese E-Mails zu senden.

Ramiro
quelle
3

Bearbeiten Sie /etc/postfix/main.cf und stellen Sie sicher, dass die folgende Zeile vorhanden ist

inet_interfaces = 66.66.66.67, localhost

Dann "postfix reload" ausführen

Matt Simmons
quelle
2
Hiermit wird nur die IP-Adresse festgelegt, die auf SMTP-Verbindungen überwacht werden soll, und nicht die IP-Adresse, die zum Senden ausgehender E-Mails verwendet werden soll.
ub3rst4r