
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