LinuxParty
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).
Lea también:
- Prevenir o evitar el envío de spam saliente (verificando si existe el remitente)
- Detectar y encontrar envíos de Spam desde los propios servidores con Postfix
- Como evitar que el servidor envíe Spam
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/sendmail
el 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.
-
Email
- Crear o generar un certificado digital para Postifx y Dovecot.
- Instalar y configurar Postfix y Dovecot, con autenticación y TLS
- Detectar y encontrar envíos de Spam desde los propios servidores con Postfix
- Como evitar que el servidor envíe Spam
- Prevenir o evitar el envío de spam saliente (verificando si existe el remitente)
- Mostrar y vaciar la cola de postfix
- Introducción a la Instalación y Configuración de un Servidor de Correo (postfix y dovecot)
- Sustituir MS Exchange: por Linux Email Servers II
- Visualizar la ruta que ha seguido un email con Mail Hops (Thunderbird)
- RainLoop Webmail - Un moderno cliente Web de Email para Linux
- Monitorizar / Vigilar usuario de correo Postfix y eMails
- Tutorial de mailman con postfix
- Usuarios virtuales y dominios con Postfix & Courier
- Cómo combatir virus usando Postfix
- Usando DSPAM & ClamAV con Postfix (Virtual Users) en Debian Etch