Frage Wie kann Postfix eine andere IP-Adresse verwenden?


Ich benutze den Postfix Mailserver und ich habe 6 IPs zur Verfügung. Ich möchte eine andere IP für den Postfix-Mail-Server zum Senden von Mail 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


20
2017-12-08 16:09


Ursprung




Antworten:


Sie wollen smtp_bind_address=66.66.66.67 und inet_interfaces=all oder inet_interfaces=eth(whatever) dass 66.66.66.67 an ist.

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


24
2017-12-08 16:55



Ich habe die Option smtp_bind_address versucht, aber dann sendet mein Mail-Server keine Mail mehr. Und ich glaube nicht, dass inet_interfaces geändert werden muss, da ich auf diesem Server keine Mails empfangen möchte. Beachten Sie, dass diese IP nur zum Senden von E-Mails verwendet wird. - EarthMind
Bitte posten Sie Ihre postconf -n damit wir sehen können, wovon du sprichst. Anonymisieren Sie IPs als private IPs (10.x.x.x, etc) und Domains als Beispiel. (Com | net | org | was auch immer), wenn Sie das Gefühl haben, dass Sie das brauchen. - Bill Weiss
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, keine rDNS-Aufzeichnung hatte. Herzlichen Dank für Ihre Hilfe. - EarthMind
smtp_bind_address setzt die IPv4-Adresse, die IPv6-Äquivalent ist smtp_bind_address6 - Paul Tobias


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

Meine Lösung ist besser, weil ich vorschlage, die Standardeinstellungen "smtp_bind_address" und "inet_interfaces" nicht zu ändern, damit Ihr Mail-Server immer noch auf eingehende E-Mails an allen IP-Adressen wartet.

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

Ändere diesen Teil:

smtp unix - - - - - smtp
# Deaktivieren Sie beim Weiterleiten von E-Mails als Backup-MX FallbackRelay, um MX-Schleifen zu vermeiden
Relais unix - - - - - smtp
        -o smtp_fallback_relay =

zu diesem:

smtp unix - - - - - smtp
        -o smtp_bind_address = 192.168.0.1
# Deaktivieren Sie beim Weiterleiten von E-Mails als Backup-MX FallbackRelay, um MX-Schleifen zu vermeiden
Relais unix - - - - - smtp
        -o smtp_bind_address = 192.168.0.1
        -o smtp_fallback_relay =

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

Zoltán


14
2018-03-19 15:39



Ich denke, dass ich zu der Zeit wollte, dass der Mail-Server nur eine IP-Adresse sowohl für ein- als auch für ausgehende E-Mails empfing. Aber trotzdem schätze ich die zusätzlichen Informationen. Vielen Dank. - EarthMind
funktioniert das mit ipv6? Wenn ja, kann ich zwei Adressen angeben und an jeweils eine Adresse binden? Mit dieser Lösung bekomme ich immer noch ausgehende E-Mails über IPv6 und nicht über die IP-Adresse, die ich angegeben habe - billynoah
Ich fügte hinzu -o smtp_bind_address6=1:2:3:4:5:6:7:8 und scheint zu arbeiten. - billynoah
Dies ist nicht korrekt. Es ist möglich, Postfix auf mehrere Schnittstellen zu hören, indem Sie alle hinzufügen inet_interfaces - oder einfach nur einstellen all (der Standard) und konfigurieren smtp_bind_address. Die eine Adresse, die über angegeben wurde smtp_bind_address  (oder smtp_bind_address6) wird dann unabhängig für den Postfix-SMTP-Sendeprozess verwendet. - maxschlepzig
Ich habe die -o smtp_bind_address zu meiner master.cf hinzugefügt und es hat nicht funktioniert. Ich habe es in main.cf verwendet und es hat funktioniert. - Areeb Soo Yasir


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 Transportmaps, z. B .: # transport_maps = xxxxx

  2. Abhängige Transport Map 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 notwendig, wenn Sie zufällige Transporte für die gleiche Domäne verwenden möchten.

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

Dann erstellen Sie 3 Transporte (rotate1, rotate2 und rotate3) mit 3 verschiedenen IPs und setzen dann mysql-Linien:

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

Dann, wenn Postfix drei verschiedene Transporte randomisiert (rotieren Sie eins zu drei), um diese E-Mails zu senden.


10
2017-10-10 07:26





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

inet_interfaces = 66.66.66.67, localhost

Dann starte "postfix reload"


3
2017-12-08 16:15



Dadurch wird nur die IP-Adresse festgelegt, die für SMTP-Verbindungen überwacht werden soll, und nicht die IP-Adresse, die zum Senden ausgehender Nachrichten verwendet werden soll. - ub3rst4r