Как определить, какой аккаунт рассылает спам

Как определить, какой аккаунт рассылает спам

Я управляю сервером Postfix SMTP в колледже. Каждую неделю как минимум один аккаунт взламывается и используется для рассылки спама. Мы разработали внутренний монитор, который блокирует любой локальный аккаунт, у которого в очереди более 40 сообщений. Таким образом, мы прекратили рассылку спама в первые же моменты.

Но вчера какой-то злоумышленник взломал аккаунт и смог отправлять письма через наш сервер. Монитор не смог обнаружить это, потому что сообщения не были поставлены в очередь с использованием нашего домена, но[email protected].

Как узнать, какой аккаунт отправлял письма, используя этот адрес?

Заранее спасибо.

решение1

grepодин из QUEUEIDs в вашем почтовом журнале. Вы должны увидеть что-то вроде:

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это та часть, которую вы ищете.


В будущем, вам нужно будет установитьreject_authenticated_sender_login_mismatchкак часть вашегоsmtpd_sender_restrictions. Для этого требуется действительныйsmtpd_sender_login_maps. Вы также можете захотеть проверитьpolicydв дополнение к вашему самодельному монитору или в качестве его замены.


Пример:

**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

Связанный контент