Postfix- relé abierto. ¿Cómo configurar para que no lo sea?

Postfix- relé abierto. ¿Cómo configurar para que no lo sea?

He configurado Postfix pero tengo problemas con la configuración.

Siempre que solía enviar correos electrónicos al servidor, rechazaba mis correos diciendo "Retransmisión denegada", así que cambié lo siguiente en main.cf:

mynetworks = 0.0.0.0/0
mynetworks_style = subnet

Ahora puedo enviar correos electrónicos y funciona, pero las pruebas MX dicen que es un relé abierto (obviamente no intencionado).

¿Cómo puedo resolver esto? Obviamente quiero que cualquiera pueda enviar correos electrónicos a mi dominio, pero no estoy seguro de la configuración.

Sé que puedo cambiar el correo electrónico mynetworks, pero ¿esto no restringe quién PUEDE enviar correos electrónicos al servidor?

Respuesta1

El problema que te abre es el

mynetworks = 0.0.0.0/0

Porque en algún lugar debajo probablemente lo tengas listado en

smtpd_recipient_restrictions = ... permit_mynetworks ...

Si necesita poder enviar correos electrónicos desde cualquier IP, simplemente mire el usuario/contraseña habilitado para enviar correos electrónicos, que el más común es sasl.

Respuesta2

mynetworks solo debe contener usuarios confiables que puedan usar el servidor para retransmitir correos a otros dominios; de lo contrario, como habrá descubierto, es una retransmisión abierta. Es posible que desee configurarlo en 192.168.0.0/16, 10/8 o 172.16.0.0/12 si utiliza direcciones RFC 1918 en su red interna.

Las configuraciones que controlan si las personas pueden enviar correo a su servidor incluyen mydestination y virtual_mailbox_domains - lea los documentosaquíoaquí.

Respuesta3

Como se documenta enhttp://www.postfix.org/postconf.5.html#mynetworks:

mynetworks (predeterminado: consulte la salida "postconf -d")
La lista de clientes SMTP remotos "confiables" que tienen más privilegios que los "extraños".

En particular, los clientes SMTP "confiables" pueden retransmitir correo a través de Postfix.
Consulte la descripción del parámetro smtpd_recipient_restrictions en el manual postconf(5).

Respuesta4

use autenticación solo para su ip: main.cf

smtpd_recipient_restrictions =
    permit_mynetworks
    reject_unauth_destination

use el archivo para almacenar su ip main.cf:

mynetworks = hash:/etc/postfix/network_table 

Utilice un script para actualizar su IP si cambia (ejecutar en cron)

#!/bin/bash
###
## sh /sx_sys/postfix_mynetwork_ip_checker.sh
LOGFILE="/var/log/smtp_relay.log"

curent_ip=$(dig @exemple.com exemple.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 }')
#echo $curent_ip

saved_ip=$(</etc/postfix/network_table )
#echo $saved_ip
if [ "$curent_ip OK" != "$saved_ip" && -n "$curent_ip"]; then
echo "$curent_ip OK" > "/etc/postfix/network_table"
postmap /etc/postfix/network_table
echo "$(date) smtp allow for $curent_ip" >> $LOGFILE 2>&1
mail -s "smtp allow for $curent_ip $(date)" [email protected] < /dev/null
fi
exit 0

información relacionada