Eu gerencio um servidor SMTP postfix em uma faculdade. Toda semana pelo menos uma conta é comprometida e usada para enviar spam. Desenvolvemos um monitor interno que suspende qualquer conta local que tenha mais de 40 mensagens na fila. Desta forma paramos de enviar spam nos primeiros momentos.
Mas ontem algum invasor comprometeu uma conta e conseguiu enviar e-mails através do nosso servidor. O monitor não conseguiu detectá-lo porque as mensagens não estavam na fila usando nosso domínio, mas[e-mail protegido].
Como posso descobrir qual conta estava enviando e-mails usando este endereço?
Desde já, obrigado.
Responder1
grep
um dos QUEUEID
s em seu maillog. Você deverá 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
é a parte que você está procurando.
No futuro, você vai querer definirreject_authenticated_sender_login_mismatch
como parte do seusmtpd_sender_restrictions
. Isto requer um documento válidosmtpd_sender_login_maps
. Você também pode querer conferirpolicyd
além ou como substituto do seu monitor local.
Exemplo:
**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