Me gustaría configurar postfix para retransmitir correo únicamente desde determinadas direcciones de remitente. Postfix debe retransmitir el correo a diferentes hosts de retransmisión (/smarthosts) (Gmail, AOL, ...) dependiendo de la dirección del remitente ("MAIL FROM:").
Hasta ahora, mi configuración actual funciona de la siguiente manera:
Los usuarios se autentican en Postfix para la retransmisión de correo en general. Si no pueden autenticarse, no es posible la retransmisión. Tenga en cuenta que esta autenticación es diferente de la autenticación de los hosts de retransmisión.
Dependiendo de la dirección del remitente ("MAIL FROM:"), se selecciona un determinado host de retransmisión (
smtp_sender_dependent_authentication
,sender_dependent_relayhost_maps
,smtp_sasl_password_maps
). Esto también funciona bien.Sin embargo, si el usuario puede autenticarse y tiene una dirección de remitente que no está incluida en
sender_dependent_relayhost_maps
, postfix intenta retransmitir directamente el correo, lo que a menudo no funciona debido a restricciones de direcciones IP (listas negras).
Mi pregunta ahora es: ¿cómo rechazar el correo que se habría retransmitido directamente (sin smarthost), es decir, donde la dirección del remitente no figura en sender_dependent_relayhost_maps
? ¿Alguna pista sobre cómo lograr esto?
Respuesta1
Necesitarías alguna prueba limitanteantes permit_sasl_authenticated
. Un requisito previo para esto sería tener un smtpd separado en el puerto 25
para el correo entrante y otro smtpd paraenvíoen puerto 587
. De lo contrario, esta limitación provocaría que el correo entrante fuera rechazado ya que no pasará la prueba. Luego, elimine el permit_sasl_authenticated
del puerto 25
por completo y agregue la prueba a su configuración de envío en formato master.cf
.
Para responder literalmente a su pregunta,
check_sender_access
Sería una prueba adecuada incluir en la lista blanca todos los dominios enumeradossender_dependent_relayhost_maps
y rechazar el correo del resto.check_sender_access type:table
Buscar lo especificadoacceso(5)base de datos para la
MAIL FROM
dirección, dominio, dominios principales olocalpart@
y ejecute la acción correspondiente.Esto se puede agregar a cualquiera
smtpd_sender_restrictions
osmtpd_recipient_restrictions
.Lo que haría lo mismo, pero evitaría aún más que los usuarios usen las direcciones de los demás, es usar
reject_sender_login_mismatch
. Esto necesita un adicionalsmtpd_sender_login_maps
tabla, pero si susvirtual_alias_maps
entradas ya están formadas como[email protected] username
, puede usar el mismo archivo y las direcciones de remitente permitidas se actualizan automáticamente cada vez que actualiza su base de datos de alias virtuales conpostmap
. Un ejemplo de dicha configuración de envío enmaster.cf
:submission inet n - - - - smtpd # Other parameters -o smtpd_sender_login_maps=hash:/etc/postfix/virtual -o smtpd_sender_restrictions=reject_sender_login_mismatch -o smtpd_client_restrictions=permit_sasl_authenticated,reject # Other parameters