Por que os comandos de tubulação no telnet resultam em falhas de conexão intermitentes?

0

Como uma alternativa barata de hack em vários servidores que não possuem o comando mail , foi escrito um script que ecoa os comandos SMTP em uma sessão de telnet. A parte relevante do script se parece com

telnet mailserver 25 << EOF
EHLO $HOST
MAIL FROM: root@$HOST
(and so on)
EOF

Isso falha intermitentemente, com uma "conexão fechada pelo host remoto". Uma tcpdump de uma sessão com falha confirma que o servidor de correio do Postfix está fechando a conexão imediatamente após enviar a mensagem de boas-vindas 220 . Ou seja, nenhum dos redirecionamentos de entrada foi feito pelo fio.

Até agora, não consegui definir as condições da falha, mas posso confirmar que usar nc (netcat) funciona perfeitamente, todas as vezes.

Uma série de perguntas neste site e o Stack Overflow mostram que nc é a ferramenta certa para esse trabalho. Estou interessado em por que este é o caso.

  • Por que a falha é intermitente?
  • Por que o servidor de e-mail desliga antes que uma única linha de entrada do redirecionado seja enviada pela rede?
  • Por que telnet quebra, mas netcat não?
por Mikey T.K. 27.04.2017 / 23:40

1 resposta

-1

Isso provavelmente está acontecendo devido a atrasos do host de e-mail que estão sendo ignorados. Enviar um email tem um requisito de conexão e, em seguida, uma resposta. Se o MAIL FROM for emitido antes do servidor responder, o envio falhará. De fato, alguns servidores confiam em atrasar um pouco essa resposta HELO especificamente para interromper essa bomba e fechar o comportamento de conexão, como é feito frequentemente por spammers.

Existem maneiras de lidar com isso (não usar o Telnet como o melhor), mas usando algum tipo de script de chat. Se isso não estiver disponível para você, a adição manual de atrasos não corrigirá o problema, mas poderá limitar substancialmente o problema.

Como você parece estar usando algum tipo de ambiente Linux, usar o nc (netcat) sobre o Telnet é considerado a melhor prática. A última parte do este link mostra como usar o netcat e "esperar" para melhor enviar um email e lidar corretamente com os horários .

    
por 27.04.2017 / 23:48