Postfix MTA - Corresponder cadeia nos campos de cabeçalho

1

Estou tentando bloquear alguns spammer filtrando alguns campos no cabeçalho da mensagem, mas não está funcionando. O spammer está adicionando domínios aleatórios nos cabeçalhos, mas o "usuário" é sempre o mesmo, assim: [email protected] , www-data @ domain2 e assim por diante. Eu não espero que alguém envie e-mails legítimos com o nome do remetente "www-data", então estou bem se todos eles forem descartados.

O regex que estou tentando usar, mas não está funcionando, é:

/^(From|Return-Path|Reply-To):.*www-data@.*/ DISCARD known spam sender in $1: header: $2

Eu tenho outras regras também filtrando outros aspectos, como falsificar meu próprio domínio, que está funcionando:

/^(From|Return-Path|Reply-To):.*\b(@mydomain\.com)\b/ DISCARD forged sender address in $1: header: $2

O que eu poderia estar fazendo de errado? Obrigado!

    
por Daichi42 18.08.2017 / 16:48

1 resposta

1

www-data é o nome de um usuário do servidor da web, frequentemente usado para email transacional, por exemplo, notificações da Wikipédia, portanto, você deve considerar que pode estar bloqueando emails legítimos, bem como emails enviados de servidores comprometidos. Em qualquer caso, você normalmente não o vê no cabeçalho From . É mais provável que esteja no remetente do envelope e pode ser por isso que o seu regex não está funcionando - está procurando no lugar errado.

Para bloquear remetentes de envelope, adicione uma tabela check_sender_access em smtpd_sender_restrictions e especifique um localpart @ para rejeitar. Você não precisa usar um regex, embora você possa, se necessário, usar o tipo de tabela pcre: .

Nas expressões regulares, você deve escapar do @ , como \@ . Observe também que no seu primeiro exemplo, não há nenhum padrão $2 , porque você tem apenas um par de parênteses. Para mais informações man 5 postconf , ou olhe para SMTPD_ACCESS_README .

    
por 20.08.2017 / 20:21