如何偵測哪個帳號正在發送垃圾郵件

如何偵測哪個帳號正在發送垃圾郵件

我管理一所大學的 postfix SMTP 伺服器。每周至少有一個帳戶遭到洩漏並被用來發送垃圾郵件。我們開發了一個內部監視器,可以暫停佇列中訊息數量超過 40 條的任何本機帳戶。這樣我們就可以在第一時間停止發送垃圾郵件。

但昨天,一些攻擊者入侵了一個帳戶,並可以透過​​我們的伺服器發送郵件。監視器無法偵測到它,因為郵件沒有使用我們的網域進行排隊,但是[電子郵件受保護]

我如何才能發現哪個帳戶正在使用該地址發送郵件?

提前致謝。

答案1

grep您的郵件日誌中的其中之一QUEUEID。您應該會看到類似以下內容:

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

相關內容