
저는 수백 명의 고객이 사용하는 메일 서버를 관리하고 있습니다. 때때로 고객이 바이러스에 감염되어 엄청난 양의 스팸 이메일을 보내기 시작합니다. 나는 이것이 몇백 개가 아닌 수만 개의 보류 메일로 게시 대기열을 채우기 때문에 주로 이것을 알아차렸습니다.
스팸 보낸 사람의 IP 주소를 찾아서 차단하는 것은 간단하지만 메일 대기열에는 여전히 보낸 사람 주소가 다른 수만 개의 스팸 이메일이 있는 경우가 많습니다.
이를 사용하여 게시물 대기열을 인쇄하면 postqueue -p
메일 ID, 보낸 사람 이메일 주소 및 모든 받는 사람이 표시됩니다. 발신자의 IP는 표시되지 않습니다.
다음을 실행하여 메일의 보낸 사람 IP를 찾을 수 있습니다.
postcat -q ABCDEF1234 | egrep "\\bclient_address="
여기서 "ABCDEF1234"는 메일 ID입니다.
나는 모든 메일 ID를 나열한 다음 각 메일 ID를 반복하여 실행 postcat -q
하고 입력 ID와 일치하지 않는 메일을 필터링하는 도구를 작성했습니다.
이것은 작동하지만매우 느림. 441개의 이메일이 포함된 게시물 대기열을 필터링하는 데 7~8초가 걸립니다. 수만 개의 메일이 포함된 스팸으로 가득 찬 게시물 대기열을 필터링하려고 한다면 이 도구는 쓸모가 없을 것입니다.
제가 모르는 도구나 플래그가 있기를 바랍니다. 발신자 IP 주소를 기준으로 필터링하겠습니다.
Postfix 2.10을 실행 중입니다.