Eu mantenho um servidor de e-mail usado por centenas de clientes. De vez em quando um cliente é infectado por um vírus e começa a enviar toneladas de e-mails de spam. Eu principalmente percebo isso porque ele preenche a fila de mensagens com dezenas de milhares de mensagens pendentes, em vez de algumas centenas.
Encontrar o endereço IP do remetente de spam e bloqueá-lo é simples, mas ainda tenho dezenas de milhares de e-mails de spam na fila de e-mails, geralmente com endereços de remetentes diferentes.
Quando imprimo a fila de postagem usando postqueue -p
, ela exibe a ID de e-mail, o endereço de e-mail do remetente e todos os destinatários. Não exibe o IP do remetente.
Eu posso encontrar o IP do remetente de um email executando:
postcat -q ABCDEF1234 | egrep "\bclient_address="
Onde "ABCDEF1234" é o ID do email.
Eu escrevi uma ferramenta que lista todos os IDs de e-mail e, em seguida, percorre-os executando postcat -q
em cada um deles e filtrando aqueles que não correspondem ao ID de entrada.
Isso funciona, mas é extremamente lento . Filtrar uma fila de postagem com 441 e-mails leva de 7 a 8 segundos. Se eu estiver tentando filtrar uma fila de postagem cheia de spam com dezenas de milhares de e-mails, essa ferramenta será inútil.
Minha esperança é que haja alguma ferramenta ou sinalizador que eu não saiba que me permita filtrar pelo endereço IP do remetente.
Estou executando o Postfix 2.10
Tags postfix