LinuxParty

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Me gustaría que Postfix verifique el campo 'remitente' de cada correo smtp saliente (antes de enviarlo), para que el remitente coincida con cualquiera de las cuentas (usuarios de correo) válidas de cualquiera de los dominios alojados en el servidor (como condición para aprobar el envío).

La razón de esto es porque cada vez que un dominio se infecta por el script de spam-remitente (s), por lo general utiliza un patrón como Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. , por lo que mediante la aplicación de un filtro de usuario emisor-existir , se podría reducir el impacto en la reputación del servidor y, de este modo, evitar ser incluido en la lista negra tan rápido como lo hace actualmente (siempre que uno de los dominios alojados esté infectado por scripts maliciosos).

Entonces, aquí no solicito restricciones de dominio específicas, sino restricciones de usuarios específicos para el campo "Correo desde:" antes de enviarlo por Postfix ( no cuando recibo correo entrante ).

Advertencia :

  • Esta solución técnica de mitigación no limpia la infección.
  • solo es útil cuando el ataque envía spam utilizando el nombre de dominio real y los nombres de usuario falsos o cuentas de correo electrónico como remitentes ( From:).
  • cuando la infección usa otros nombres de dominio como remitente ( From:), esta expresión regex no puede ser efectiva.

Dado que /usr/sbin/sendmailel script infectado lo utiliza para enviar correo no deseado, siempre que use cuentas de correo inexistentes al azar (es decir, Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.), en lugar de cuentas reales como remitentes (es decir, Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.), los encabezados de correo pueden se verificará mediante la inspección de contenido incorporado postfix de la header_checks siguiente manera:

#/etc/postfix/main.cf
# add it for example before TLS paramaters
# Anti-SPAM options
header_checks = pcre:/etc/postfix/header_checks

La expresión regular en el archivo header_checks debe excluir a cualquier usuario real para el dominio (es decir, usuario1, usuario2, ...):

#/etc/postfix/header_checks
/^From:(?![^@]*?user1@|[^@]*?user2@|[^@]*?user3@|[^@]*?webmaster@)([^@]*?@my-domain\.tld)/
REJECT invalid sender $1

Explicación de la expresión regular (para cualquier cambio se puede usar este probador de expresiones regulares ):

  • [^@] cualquier personaje excepto @
  • [^@]*? cualquier personaje, excepto @cero o más veces, perezoso no codicioso ( *?).
  • (?!user1|user2|etc) anticipación negativa con alternativas: descartar usuarios reales del dominio.
  • (?![^@]*?user1|[^@]*?user2|etc) permitiendo caracteres antes de la dirección de correo electrónico de cada usuario.

Antes de cualquier cambio puede ser probado por (el primero pasa, el segundo rechazado):

$ postmap -q "From: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo." pcre:/etc/postfix/header_checks
$ postmap -q "From: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo." pcre:/etc/postfix/header_checks
REJECT invalid sender
$

O incluso puede probarse usando un archivo con encabezados de mensajes capturados durante la infección (aviso: el guión es importante aquí):

$ postmap -q - pcre:/etc/postfix/check_headers < captured_headers.txt
From: "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.      REJECT invalid sender
From: "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.      REJECT invalid sender
$

Una vez probado, si cumple con el resultado deseado, simplemente reinicie Postfix:

# service postfix restart
 * Stopping Postfix Mail Transport Agent postfix                [ OK ]
 * Starting Postfix Mail Transport Agent postfix                [ OK ]

Para verificar cómo está sucediendo, un posible comando:

# tail -n 10000 /var/log/mail.log | grep reject
o
# tail -n 10000 /var/log/mail.log | grep 'invalid sender'

Espero que esto ayude a alguien más.

 Hay algunas opciones de Postfix para añadir en su configuración que también te deberían interesar, por ejemplo:

smtpd_sender_restrictions = check_sender_access hash:/var/spool/postfix/listanegra/blacklists, permit_sasl_authenticated
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated

Y también

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Visita el sitio de Postfix, para más información.

Pin It


Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política