Administro un servidor SMTP postfix en una universidad. Cada semana, al menos una cuenta se ve comprometida y se utiliza para enviar spam. Desarrollamos un monitor interno que suspende cualquier cuenta local que tenga más de 40 mensajes en cola. De esta forma hemos dejado de enviar spam en los primeros momentos.
Pero ayer un atacante comprometió una cuenta y pudo enviar correos a través de nuestro servidor. El monitor no pudo detectarlo porque los mensajes no estaban en cola usando nuestro dominio, pero[correo electrónico protegido].
¿Cómo puedo descubrir qué cuenta estaba enviando correos electrónicos usando esta dirección?
Gracias de antemano.
Respuesta1
grep
uno de los QUEUEID
s en su registro de correo. Deberías ver algo como:
May 20 15:25:40 mta2 postfix/smtps/smtpd[26154]: 578C7E0013: client=unknown[203.0.113.3], sasl_method=PLAIN, sasl_username=someuser
May 20 15:25:40 mta2 postfix/qmgr[3291]: 578C7E0013: from=<[email protected]>, size=1198, nrcpt=1 (queue active)
May 20 15:25:40 mta2 postfix/smtp[26074]: 578C7E0013: to=<[email protected]>, relay=mx.example.com[98.51.100.14]:25, delay=0.15, delays=0.02/0.01/0.06/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 6B87C336809C)
sasl_username
es la pieza que estas buscando.
En el futuro, querrás configurarreject_authenticated_sender_login_mismatch
como parte de tusmtpd_sender_restrictions
. Esto requiere una válidasmtpd_sender_login_maps
. Quizás también quieras consultarpolicyd
además de o como reemplazo de su monitor de cosecha propia.
Ejemplo:
**main.cf**
smtpd_sender_restrictions = reject_unknown_sender_domain reject_authenticated_sender_login_mismatch
smtpd_sender_login_maps = ldap:$config_directory/ldap-sender-login-map.cf
**ldap-sender-login-map.cf**
version = 3
server_host = ldap://ldap.example.com/
search_base = dc=example,dc=com
query_filter = mailLocalAddress=%s
result_attribute = mailLocalAddress
result_format = %s,%u