Tengo un servidor Exim con varios dominios configurados. En cada dominio tengo varias cuentas de correo electrónico. De vez en cuando, una computadora configurada con uno de estos correos electrónicos se infecta y comienza a enviar spam.
Solía tener Isoqlog para obtener informes de las principales cuentas de correo electrónico enviadas, pero ya no funciona desde que se actualizó por última vez en 2005.
Necesito una manera de averiguar las 50 cuentas de correo electrónico que envían spam en las últimas 24 hs (no el remitente, la cuenta que se utiliza para autenticarse para enviar spam. El remitente puede ser falso, por lo que no son datos válidos)
¿Alguna idea de si existe un paquete (como Isoqlog o similar) que pueda hacer esto? Gracias
Respuesta1
No necesita un programa complejo para extraer información del archivo de registro. UnLínea de registro Exim4para el correo entrante se ve así:
2020-01-18 02:19:41 1iscm4-0000Nt-TE <= [email protected]\
H=verified_rdns.example.net (helo.example) [192.0.2.1] P=esmtpsa\
X=TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128 CV=no A=dovecot_gssapi:auth_user\
S=3812 [email protected]
con el remitente del sobre [email protected]
, el host de envío H=verified_rdns.example.net (helo.example) [192.0.2.1]
y una lista de tag=value
.
Lo que más nos interesa es la A
etiqueta que tiene un valor del formulario authenticator:auth_user
, donde authenticator
está el nombre delautenticador exim4usted proporcionó el archivo de configuración y auth_user
es el usuario autenticado.
Juntando todo, podemos imprimir el recuento de correos electrónicos enviados por cada usuario en el tiempo comprendido en el archivo de registro usando un bash
script simple:
#!/bin/bash
if [ $# -lt 1 ]; then
2>& echo Usage: $0 "<exim_mainlog_file>"
2>& echo Example: $0 /var/log/exim4/mainlog
exit 1
fi
# To save typing
d='[[:digit:]]'
a='[[:alnum:]]';
pref="^$d\{4\}-$d\{2\}-$d\{2\} $d\{2\}:$d\{2\}:$d\{2\} $a\{6\}-$a\{6\}-$a\{2\}"
logfile="$1"
zgrep "$pref <=" "$logfile" |
grep -oh "A=[[:alnum:]_]\+:[[:alnum:]_]\+" |
cut -d : -f 2 |
sort |
uniq -c |
sort -rn