우리는 그것을 통해 SMTP 릴레이에 대한 인증이 필요한 접미사 서버를 가지고 있습니다. 우리는 MySQL 데이터베이스에서 가상 사서함을 사용합니다.
시스템을 통해 메시지가 중계되었으며, 우리는 어느 사용자 계정 중 하나가 메시지를 보내는 데 사용되었는지 확인해야합니다.
메시지 헤더에는 다음이 포함됩니다.
Received: from User (c-76-109-241-139.hsd1.fl.comcast.net [xx.109.xxx.139])
by ourserver.com (Postfix) with ESMTPA id 7BA184B4AD4;
Tue, 3 Jul 2012 05:42:59 -0400 (EDT)
“User”라는 사용자가 없으며 IP 주소는 메일을 보내는 주소가 아닙니다. 발신자가 메시지를 보낼 때 인증 한 사용자 계정을 확인하고 싶습니다.
이것을 추적하는 방법이 있습니까?
답변
메시지 ID (귀하의 경우 7BA184B4AD4)를 grep하면을 /var/log/mail.log
나타내는 로그 줄을 찾으십시오 sasl_username
. 예를 들면 다음과 같습니다.
% zgrep 07A1753F /var/log/mail.log*
Jul 4 19:47:58 mammon postfix/smtpd[4936]: 07A1753F: client=c-69-181-123-456.hsd1.ca.comcast.net[69.181.123.456], sasl_method=PLAIN, sasl_username=mgorven
편집 : Postfix 에서 smtpd_sasl_authenticated_header
옵션 을 설정하면 메일 /etc/postfix/main.cf
의 Received
헤더에 SASL 사용자 이름이 추가됩니다 . 이 헤더는 변조 될 수 있으므로 위의 방법으로 메시지를 제출 한 사용자를 결정할 수 있습니다.
smtpd_sasl_authenticated_header = yes