¿Cómo hacer que Postfix use otra dirección IP?

21

Estoy usando el servidor de correo Postfix y tengo 6 IP disponibles. Me gustaría usar otra IP para el servidor de correo Postfix para enviar correo que el servidor web utiliza.

¿Cómo puedo hacer esto? Mi versión de postfix es 2.3.3.

Por ejemplo: IP principal: 66.66.66.66 otra IP: 66.66.66.67

EarthMind
fuente

Respuestas:

25

Desea smtp_bind_address=66.66.66.67y / inet_interfaces=allo inet_interfaces=eth(whatever)que 66.66.66.67 está activado.

Haga ese cambio, luego detenga / inicie postfix. No puedes simplemente recargar si estás cambiandoinet_interfaces

Bill Weiss
fuente
He probado la opción smtp_bind_address pero mi servidor de correo ya no envía más correo. Y no creo que inet_interfaces tenga que cambiarse ya que no quiero recibir correo en ese servidor. Tenga en cuenta que esta IP solo se usa para enviar correo.
EarthMind
Publica tu postconf -npara que podamos ver de qué estás hablando. Anonimice las IP como IP privadas (10.xxx, etc.) y dominios como ejemplo. (Com | net | org | lo que sea) si cree que lo necesita.
Bill Weiss
2
smtp_bind_address era la forma correcta y tuve un retraso en la entrega del correo electrónico ya que la nueva IP que estaba usando no tenía registro rDNS. Gracias por tu ayuda.
EarthMind
3
smtp_bind_addressestablece la dirección IPv4, el equivalente de IPv6 essmtp_bind_address6
Paul Tobias
16

Si utiliza la solución "smtp_bind_address", su servidor de correo solo escuchará en esa dirección IP especificada también el correo entrante. Lo mismo se aplica a la solución "inet_interfaces". Es posible que esta no sea la solución deseada si desea escuchar el correo entrante en múltiples direcciones / interfaces IP.

Mi solución es mejor, porque sugiero no cambiar las configuraciones predeterminadas "smtp_bind_address" e "inet_interfaces", por lo que su servidor de correo seguirá escuchando el correo entrante en todas las direcciones IP.

Solo necesita hacer un pequeño cambio en su archivo /etc/postfix/master.cf.

Cambia esta parte:

smtp unix - - - - - smtp
# Al retransmitir correo como copia de seguridad MX, deshabilite fallback_relay para evitar bucles MX
relé unix - - - - - smtp
        -o smtp_fallback_relay =

a esto:

smtp unix - - - - - smtp
        -o smtp_bind_address = 192.168.0.1
# Al retransmitir correo como copia de seguridad MX, deshabilite fallback_relay para evitar bucles MX
relé unix - - - - - smtp
        -o smtp_bind_address = 192.168.0.1
        -o smtp_fallback_relay =

Por supuesto, en lugar de 192.168.0.1 debe usar una de sus direcciones IP, desde la que desea enviar su correo.

Zoltan

Zoltan
fuente
Creo que en ese momento quería que el servidor de correo solo escuchara una dirección IP, tanto para el correo electrónico entrante como saliente. Pero sin embargo, agradezco la información adicional. Gracias.
EarthMind
1
¿funcionará esto con ipv6? Si es así, ¿puedo incluir dos direcciones y vincularlas a una de cada una? Con esta solución todavía estoy recibiendo el correo saliente a través de IPv6 y no la dirección IPv4 he especificado
billynoah
Agregué -o smtp_bind_address6=1:2:3:4:5:6:7:8y parece funcionar.
billynoah
1
Esto no es exacto. Que es posible hacer postfix escuchan en múltiples interfaces a través de la adición de todos ellos a inet_interfaces- o simplemente poniéndolo a all(por defecto) y la configuración smtp_bind_address. La única dirección especificada a través de smtp_bind_address (o smtp_bind_address6) se usa de forma independiente para el proceso de envío de Postfix smtp.
maxschlepzig
Agregué -o smtp_bind_address a mi master.cf y no funcionó. Lo usé en main.cf y funcionó.
Areeb Soo Yasir
10

master.cf

Crea diferentes interfaces. Uno para cada 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. Deshabilite todos los otros mapas de transporte, es decir: # transport_maps = xxxxx

  2. Habilitar mapa de transporte dependiente (requiere postfix 2.7.xo posterior)

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

transport_random_dependent.cf

Ejemplo:

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

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

La instrucción "RAND () LIMIT 1" es necesaria solo si desea utilizar transportes aleatorios para el mismo dominio.

Por ejemplo, desea enviar desde mydomain.com desde 3 IP diferentes.

Luego, crea 3 transportes (rotate1, rotate2 y rotate3) con 3 IP diferentes, luego establece en las líneas mysql:

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

Luego, cuando postfix aleatorizará tres transportes diferentes (rota uno a tres) para enviar estos correos electrónicos.

Ramiro
fuente
3

Edite /etc/postfix/main.cf y asegúrese de que la siguiente línea esté presente

inet_interfaces = 66.66.66.67, localhost

Luego ejecuta "postfix reload"

Matt Simmons
fuente
2
Esto solo establece la dirección IP para escuchar las conexiones SMTP, y no la dirección IP que se utilizará para enviar el correo saliente.
ub3rst4r