De onde vêm essas falhas de conexão SMTP de "ponto único"?

De onde vêm essas falhas de conexão SMTP de "ponto único"?

Estou executando um servidor de e-mail baseado em postfix. Existem muitas falhas de conexão como esta:

Transcript of session follows.

Out: 220 hostname.tld ESMTP Postfix
In:  .
Out: 502 5.5.2 Error: command not recognized
In:
Out: 500 5.5.2 Error: bad syntax

Session aborted, reason: lost connection

Essas conexões vêm de IPs diferentes, mas na maioria dos casos são de alguns décimos a centenas de tentativas por IP.

O que causa essas conexões? Se fossem vírus, worms ou botnets que estão “batendo na porta”, por que tantas vezes por host? Ou enviar um único ponto é algum tipo de teste de funcionalidade e meu servidor reage de maneira errada? Novamente, múltiplas tentativas não fazem sentido. E está longe de qualquer escala DoS.

Talvez alguns de vocês saibam o que está acontecendo lá?

Responder1

O ponto é usado para encerrar a mensagem de um email no protocolo SMTP: Uma linha vazia (CR, LF), seguida por um único ponto e novamente uma nova linha com CR e LF. Mas este claramente não é o caso aqui.

Para descobrir se esses clientes SMTP são apenas botnets ou remetentes legítimos, você pode dar uma olhada no PTR de seus IPs, ambos estão registrados. Se o PTR for genérico de um provedor, algo como 192-0-2-1.broadband.customers.example.com. Então você pode realmente ignorá-lo e usar o fail2ban para bloqueá-los.

O HELO deve corresponder ao PTR, pelo menos é a melhor prática. Mas se eles não forem semelhantes, provavelmente é novamente uma botnet.

No outro caso, talvez alguém esteja fazendo uma varredura em seu servidor e procurando protocolos e cifras TLS.


Para banir os clientes após tais solicitações, você pode usar o fail2ban, que bloqueia temporariamente um IP após muitas solicitações incorretas.

filter.d/postfix-syntax.conf

[INCLUDES]
before = common.conf

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 502 5.5.2
            reject: RCPT from (.*)\[<HOST>\]: 500 5.5.2
ignoreregex =

E adicione isso ao seu jail.conf:

[postfix-syntax]
enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix-syntax
logpath  = /var/log/mail.log
maxretry = 10

Responder2

Se você expôs seu servidor de e-mail à Internet, espere que a maioria das conexões venha de spambots e outros remetentes ilegítimos.

Eu consideraria apenas rejeitar correspondências para quaisquer erros no fail2ban. remetentes legítimos raramente devem gerar erros e tentarão novamente mais tarde se forem banidos. Eu faço algumas coisas desagradáveis ​​com supostos spammers, e já se passaram anos desde que um remetente legítimo teve outros problemas além de atrasos na entrega.

Eu uso alguns testes para verificar a legitimidade dos remetentes:

  • O IP não está listado em zen.spamhaus.org. (Inclui uma ampla seleção de IPs dinâmicos.)
  • O IP possui um DNS PTRque passa rDNS. Raramente o correio legítimo não tem PTRregistro e rDNSo endereço IP quase sempre passa.
  • O nome no comando HELO/EHLO é um nome de domínio totalmente qualificado (FQDN) que transmite rDNS. Com exceção de uma grande empresa, isso quase sempre passa. Geralmente esse nome é o mesmo usado para o endereço IP.
  • O nome do registro PTR e do comando HELO passam na verificação SPF HELO diretamente ou para seu domínio pai. Domínios sem registros SPF também são aprovados, mas não ganham credibilidade. Isso bloqueia spambots que se identificam usando o domínio de uma grande organização.

Gostaria de usar o DKIM para validar, mas uma grande porcentagem de remetentes não publica corretamente sua chave pública no DNS.

Se você não conseguir executar esses testes enquanto a conexão ainda estiver aberta, não devolva a mensagem, a menos que possa verificar se o remetente não foi falsificado. (Agradeço todas as ofertas de dinheiro do FBI, da ONU, de bancos, etc., mas ainda não foram entregues.)

informação relacionada