Come fare in modo che Postfix utilizzi un altro indirizzo IP?


21

Sto usando il server di posta Postfix e ho 6 IP disponibili. Vorrei utilizzare un altro IP per il server di posta Postfix per l'invio di posta rispetto a quello utilizzato dal server Web.

Come posso fare questo? La mia versione postfix è 2.3.3.

Ad esempio: IP principale: 66.66.66.66 altro IP: 66.66.66.67

Risposte:


25

Si desidera smtp_bind_address=66.66.66.67e inet_interfaces=allo inet_interfaces=eth(whatever)che 66.66.66.67 è in.

Apporta tale modifica, quindi interrompi / avvia postfix. Non puoi ricaricare se stai cambiandoinet_interfaces


Ho provato l'opzione smtp_bind_address ma il mio server di posta non invia più posta. E non credo che inet_interfaces debba essere cambiato poiché non voglio ricevere posta su quel server. Nota, questo IP viene utilizzato solo per l'invio di posta.
EarthMind,

Pubblica il tuo postconf -ncosì possiamo vedere di cosa stai parlando. Anonimizza gli IP come IP privati ​​(10.xxx, ecc.) E domini come esempio (com | net | org | qualunque) se ritieni di aver bisogno.
Bill Weiss,

2
smtp_bind_address era il modo giusto e ho avuto un ritardo nella consegna della posta elettronica poiché il nuovo IP che stavo usando non aveva record rDNS. Grazie per l'aiuto.
EarthMind,

3
smtp_bind_addressimposta l'indirizzo IPv4, l'equivalente IPv6 èsmtp_bind_address6
Paul Tobias il

16

Se usi la soluzione "smtp_bind_address", il tuo server di posta ascolterà anche su quell'indirizzo IP specificato anche per la posta in arrivo. Lo stesso vale per la soluzione "inet_interfaces". Questa potrebbe non essere la soluzione desiderata se si desidera ascoltare la posta in arrivo su più indirizzi / interfacce IP.

La mia soluzione è migliore, perché suggerisco di non modificare le impostazioni predefinite "smtp_bind_address" e "inet_interfaces", in modo che il tuo server di posta ascolti ancora la posta in arrivo su tutti gli indirizzi IP.

Devi solo fare una piccola modifica nel tuo file /etc/postfix/master.cf.

Cambia questa parte:

smtp unix - - - - - smtp
# Quando si inoltra la posta come MX di backup, disabilitare fallback_relay per evitare loop MX
relè unix - - - - - smtp
        -o smtp_fallback_relay =

a questa:

smtp unix - - - - - smtp
        -o smtp_bind_address = 192.168.0.1
# Quando si inoltra la posta come MX di backup, disabilitare fallback_relay per evitare loop MX
relè unix - - - - - smtp
        -o smtp_bind_address = 192.168.0.1
        -o smtp_fallback_relay =

Naturalmente, invece di 192.168.0.1 devi usare uno dei tuoi indirizzi IP, quello da cui vuoi inviare la tua posta.

Zoltan


Penso che al momento volevo che il server di posta ascoltasse solo un indirizzo IP, sia per la posta in arrivo che per quella in uscita. Tuttavia, apprezzo le informazioni extra. Grazie.
EarthMind

1
funzionerà con ipv6? In tal caso, posso includere due indirizzi e associarli a uno di ciascuno? Con questa soluzione ricevo ancora posta in uscita su ipv6 e non l'indirizzo ipv4 che ho specificato
billynoah

Ho aggiunto -o smtp_bind_address6=1:2:3:4:5:6:7:8e sembra funzionare.
Billynoah,

1
Questo non è accurato E ' è possibile fare postfix in ascolto su più interfacce mediante l'aggiunta di tutti loro a inet_interfaces- o semplicemente impostandolo all(il default) e la configurazione smtp_bind_address. L'indirizzo specificato tramite smtp_bind_address (o smtp_bind_address6) viene quindi utilizzato in modo indipendente per il processo di invio di Postfix smtp.
maxschlepzig,

Ho aggiunto -o smtp_bind_address al mio master.cf e non ha funzionato. L'ho usato in main.cf e ha funzionato.
Areeb Soo Yasir,

10

master.cf

Crea diverse interfacce. Uno per ogni dominio:

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. Disabilita tutte le altre mappe di trasporto, ovvero: # transport_maps = xxxxx

  2. Abilita mappa di trasporto dipendente (richiede postfix 2.7.xo successivo)

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

transport_random_dependent.cf

Esempio:

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

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

L'istruzione "RAND () LIMIT 1" è necessaria solo se si desidera utilizzare trasporti casuali per lo stesso dominio.

Ad esempio, desideri inviare da mydomain.com da 3 IP diversi.

Quindi, crei 3 trasporti (ruota1, ruota2 e ruota3) con 3 IP diversi, quindi imposta le righe mysql:

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

Quindi, quando postfix randomizzerà tre diversi trasporti (ruotando da uno a tre) per inviare questa e-mail.


3

Modifica /etc/postfix/main.cf e assicurati che sia presente la seguente riga

inet_interfaces = 66.66.66.67, localhost

Quindi esegui "ricarica postfix"


2
Questo imposta solo l'indirizzo IP su cui ascoltare le connessioni SMTP e non l'indirizzo IP da utilizzare per inviare la posta in uscita.
ub3rst4r,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.