저는 대학에서 postfix SMTP 서버를 관리하고 있습니다. 매주 최소 하나의 계정이 손상되어 스팸을 보내는 데 사용됩니다. 우리는 대기열에 40개 이상의 메시지가 있는 로컬 계정을 일시 중지하는 내부 모니터를 개발했습니다. 이러한 방식으로 우리는 처음부터 스팸 발송을 중단했습니다.
그러나 어제 일부 공격자가 계정을 손상시켜 우리 서버를 통해 메일을 보낼 수 있었습니다. 메시지가 우리 도메인을 사용하여 대기열에 추가되지 않았기 때문에 모니터에서는 이를 감지할 수 없었지만,[이메일 보호됨].
이 주소를 사용하여 메일을 보낸 계정을 어떻게 알 수 있나요?
미리 감사드립니다.
답변1
grep
QUEUEID
메일 로그에 있는 s 중 하나입니다 . 다음과 같은 내용이 표시됩니다.
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