É uma boa prática ou muito draconiano rejeitar emails de servidores de correio sem RDNS

20

Recuei recentemente o SpamAssassin e agora estou baseando a rejeição de spam nos DNSRBL, na lista cinza e em outros testes básicos, e estou pensando se devo bloquear os hosts que não possuem um RDNS válido que corresponda ao EHLO?

Se fizer isso, causarei problemas em muitas correspondências legítimas e incomodarei meus clientes? Ouvi pessoas dizendo que a AOL faz isso, o que me faz pensar que talvez seja muito incomum para mim.

Também estou me perguntando se posso me comprometer verificando se o RDNS está no mínimo definido como algo, mas não tente associá-lo ao EHLO. Isso é possível com o Postfix (e é útil)?

Peter Snow
fonte
4
Sim, é comumente feito, mesmo que um número muito pequeno de pessoas tenha problemas com isso. Consulte Combate ao spam - O que posso fazer como: administrador de email, proprietário do domínio ou usuário? para uma discussão mais aprofundada.
Michael Hampton
Jon Postel discorda :-)
Mathias R. Jessen 24/09
Muitas luas atrás, a pesquisa inversa em uma nova instalação do sendmail no Red Hat era o padrão ... Eu acho que o rDNS, embora não seja um padrão formal para servidores de correio, é praticamente o padrão padrão. Ele estraga as pessoas em endereços IP dinâmicos (ou seja, residências com conexões ISP de nível consumidor), mas costumava ser, uma vez, que a maior parte desses IPs dinâmicos com conexões eram botnets ... não sei hoje em dia.
Avery Payne

Respostas:

10

Eu tentei várias abordagens com a verificação HELO / EHLO com uma base de clientes de tamanho bastante decente entre 100 mil e 200 mil usuários e acabei optando por uma solução que faz o seguinte:

  • Verifique se o HELO / EHLO contém um nome de domínio. - Isso se resume principalmente ao fato de o nome ter um ponto. A verificação do DNS no nome levou a MUITOS servidores com falha, pois não é incomum que o servidor apresente um nome interno ou algo que você não possa resolver adequadamente.
  • Verifique se o IP possui um registro DNS reverso. - Novamente, essa é uma configuração relaxada, pois não a verificamos contra o HELO / EHLO. A verificação no HELO / EHLO criou tantos tickets que essa configuração não durou nem um único dia.
  • Verifique se o nome de domínio do remetente é válido. - Esta é uma verificação básica para garantir que, se tivermos que devolver a mensagem, haverá pelo menos alguma maneira de encontrar um servidor para ela.

Aqui está o bloco Postfix que usamos para essas verificações:

smtpd_recipient_restrictions =
    reject_non_fqdn_sender,
    reject_unauth_destination,
    reject_unknown_reverse_client_hostname,
    reject_invalid_helo_hostname,
    reject_non_fqdn_helo_hostname,
    reject_unknown_sender_domain,
    reject_non_fqdn_recipient
Ed.
fonte
11
Também é uma boa abordagem adicional verificar o nome do host em relação à lista de expressões regulares que corresponde a vários nomes dinamicamente atribuídos pelo ISP como xxxx.dynamic.yyy.comou 12-34-56-78.dsl.zzz.com. Todos esses hosts devem enviar seus emails pela retransmissão do ISP e não diretamente para o MX do destinatário. Principalmente, esses hosts são os nós da botnet e suas mensagens que eu uso para aprender meus bayes.
Kondybas
Parece que pode ser a solução para mim. Existe uma maneira de executar o SpamAssassin e deixar que todos sejam ignorados, exceto pelos e-mails que falharam no HELO combinando com o RDNS, então apenas devolvemos aqueles acima de uma determinada pontuação? Outros e-mails continuam ignorando completamente esta etapa.
Peter Snow
Com o exta MTA que fiz dessa maneira, sequencialmente: o endereço / remetente do remetente é verificado em relação à lista branca. Se correspondido - aceito imediatamente, o resto é verificado na lista negra. Se correspondido - a bandeira variável levantou "Gotcha!" e a mensagem também é aceita. Se a mensagem foi passada pelas listas - é passada para o SA que atua como daemon. Se o valor retornado for alto o suficiente, sinalize "Gotcha!" levantada e mensagem também aceita. Em seguida, a mensagem foi passada para os roteadores.
Kondybas # 25/13
11
Se o sinalizador não for gerado, a mensagem será entregue como de costume. Caso contrário, é produzida uma cópia oculta. A mensagem original é entregue como de novo novamente, enquanto o BC é passado para o roteador especial que possui o sa-learn como transporte. Esse esquema permite dividir o fluxo de mensagens na ramificação definitivamente de spam que aprende SA-bayes e suspeitar do restante verificado por SA-bayes. As mensagens com bandeira levantada também têm um cabeçalho adicional que permitem classificá-los para o "lixo"
Kondybas
Eu verifiquei essas regras na minha caixa de correio e há emails que teriam sido rejeitados por causa do HELO fora do domínio ou pela falta de um registro DNS reverso. Há muito poucos deles (apenas alguns remetentes em uma caixa de correio com 40.000 emails), mas há coisas importantes por lá. Em particular, se eu tivesse usado reject_unknown_reverse_client_hostname, um e-mail com os resultados do meu pedido de visto para um país do sudeste asiático em particular não seria enviado. Eu desaconselharia usar reject_invalid_helo_hostnamee reject_unknown_reverse_client_hostname.
michau 31/07
12

É extremamente comum bloquear servidores SMTP que não possuem o básico:

  1. O nome do host no encaminhamento do HELO resolve para a conexão IP originada de.
  2. O IP de origem das conexões reverte para o nome do host reivindicado no HELO.
  3. Se existirem políticas SPF, DKIM ou DMARC, verifique.

Qualquer pessoa que se prenda a ser bloqueada por causa de uma delas deve ser asfaltada e com penas.
Pessoas que acabam sendo bloqueadas por outros motivos, particularmente situações que dependem da conformidade da RFC em situações "anormais", eu terei simpatia. O spam é um problema tão grande que não há desculpa para perder o básico.

Chris S
fonte
2
O nome da pesquisa inversa não é necessário para corresponder ao HELO. O host pode operar vários domínios, enquanto a pesquisa reversa retorna apenas um nome principal.
Kondybas
11
Claro, você pode fazer o que quiser. Seu servidor estará recebendo um 511 Your rDNS doesn't match your HELOdos meus servidores e muitos outros também. O spam é um grande problema, com o qual os designers do RFC SMTP não precisavam lidar. Os requisitos realistas são muito diferentes dos RFCs em alguns aspectos.
Chris S
O spam não é um problema quando o MTA está configurado corretamente. Minha experiência mostra que (o rDNS ORcom falha correspondia a ORbayes curtos da lista de expressões regulares locais correspondentes) detecta 99,99% do spam. Sem DNSBLs, sem lista cinza, sem DKIM, sem SPF. Mais de 200 mil mensagens recebidas mensalmente. 1-2 falso-p, 10-20 falso-n por mês.
Kondybas
5

Eu esperava que o envio do MTA tivesse RDNS válido, mas insistir na correspondência do EHLO dependeria de quem são os 'clientes'. Você pode encontrar algumas diretrizes interessantes no RFC5321 :

2.3.5

(...) O nome de domínio fornecido no comando EHLO DEVE ser um nome de host primário (um nome de domínio que se resolva para um endereço RR) ou, se o host não tiver nome, um endereço literal (...)

4.1.4

(...) Um servidor SMTP PODE verificar que o argumento do nome de domínio no comando EHLO realmente corresponde ao endereço IP do cliente. No entanto, se a verificação falhar, o servidor NÃO DEVE recusar-se a aceitar uma mensagem nessa base.

mas depois em 7.9.

É um princípio bem estabelecido que um servidor SMTP pode se recusar a aceitar e-mails por qualquer motivo operacional ou técnico que faça sentido para o site que fornece o servidor. (...)

Dusan Bajic
fonte
11
Provavelmente, isso é proibido porque a string enviada com o EHLO, no mundo real, geralmente não é compatível com RFC. Eu já vi nomes de host internos localhoste muitas outras coisas erradas enviadas aqui, mesmo com mensagens perfeitamente legítimas.
Michael Hampton
3

A pesquisa inversa não aponta necessariamente para o nome do host fornecido no HELO. Às vezes, vários domínios hospedados no mesmo host e todos eles têm o mesmo endereço IP. Mas quando você tenta fazer a pesquisa inversa, obtém o nome que foi colocado no registro PTR. É óbvio que ambos os FQDNs serão diferentes - e isso é completamente aceitável.

A única circunstância que permite descartar a mensagem é a falha na pesquisa inversa. Qualquer pesquisa bem-sucedida significa que o host é válido. Os nomes não devem corresponder.

Kondybas
fonte
11
"É óbvio que os dois FQDNs serão diferentes - e isso é completamente aceitável". Não. Você pode configurar apenas um registro PTR e o servidor de email pode anunciar apenas um nome de host no HELO. Portanto, deve ser óbvio que ambos podem corresponder.
Chris S
2

Eu estou querendo saber se eu também deveria bloquear hosts que não têm um RDNS válido correspondente ao EHLO?

Não, você não deveria. Bloqueia um email inteiro apenas por um critério: é uma prática ruim.

Se fizer isso, causarei problemas em muitas correspondências legítimas e incomodarei meus clientes?

mais provável que você faça e perderá correio legítimo

Também estou me perguntando se posso me comprometer verificando se o RDNS está no mínimo definido como algo, mas não tente associá-lo ao EHLO. Isso é possível com o Postfix (e é útil)?

sim, é possível. Você pode usar reject_unknown_reverse_client_hostname em vez de reject_unknown_client_hostname

Infelizmente, o postfix não possui opções flexíveis para "decisão complexa". No exim, você pode adicionar alguns pontos para esses e-mails, por exemplo

Score = 0 
1. The HELO or EHLO hostname is not in fully-qualified domain or address literal form. Score +=10
2. The HELO or EHLO hostname has no DNS A or MX record. Score +=20
3. The HELO or EHLO hostname is listed with the A record "d.d.d.d" under rbl_domain. Score +=20
4. The sender domain has no DNS A or MX record. Score +=10
5. SPF checks return softfail. Score +=10, fail, Score +=20
...

E assim por diante. Depois que todas as verificações forem concluídas e se você tiver uma pontuação> 100, poderá rejeitar o correio. Na verdade, você pode obter esse comportamento, mas precisaria escrever seu próprio serviço de política

ALex_hha
fonte