Ich verwalte einen Postfix-SMTP-Server an einem College. Jede Woche wird mindestens ein Konto kompromittiert und zum Versenden von Spam verwendet. Wir haben einen internen Monitor entwickelt, der jedes lokale Konto sperrt, das mehr als 40 Nachrichten in der Warteschlange hat. Auf diese Weise konnten wir das Versenden von Spam schon im ersten Moment unterbinden.
Gestern hat sich jedoch ein Angreifer einen Account geschnappt und konnte Mails über unseren Server verschicken. Der Monitor konnte dies nicht erkennen, da die Nachrichten nicht über unsere Domain in die Warteschlange gestellt wurden, aber[email geschützt].
Wie kann ich herausfinden, welches Konto E-Mails über diese Adresse gesendet hat?
Dank im Voraus.
Antwort1
grep
eines der QUEUEID
s in Ihrem Maillog. Sie sollten etwas wie Folgendes sehen:
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
ist das Teil, das Sie suchen.
In der Zukunft, sollten Siereject_authenticated_sender_login_mismatch
als Teil Ihrersmtpd_sender_restrictions
. Dies erfordert eine gültigesmtpd_sender_login_maps
. Vielleicht möchten Sie auch Folgendes ausprobieren:policyd
als Ergänzung oder Ersatz für Ihren Heimmonitor.
Beispiel:
**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