Servidor de telnet do Linux para não usar handshaking de protocolo telnet


0

Estamos tentando conectar ao serviço de telnet do Linux usando um simples programa de terminal; Eu suspeito que o servidor esteja definido como VT-100 padrão, e o servidor telnet envia sequências de handshake de controle, esperando que o terminal responda com suas opções suportadas e trava aguardando a resposta do terminal.

insira a descrição da imagem aqui (desculpas pela má qualidade da imagem)

Infelizmente, o terminal é apenas um programa de comunicação simples e não sabe sobre o protocolo telnet.

Existe alguma maneira de informar ao servidor de telnet (por exemplo, através da configuração de um tipo de terminal específico) para não iniciar a identificação das propriedades do terminal remoto, mas ir diretamente para a comunicação?

Editar:

Por favor, edite a pergunta com mais detalhes: Qual terminal você está usando, que programa de "comunicação simples" é esse?

O programa de comunicação abre a conexão TCP com o PC linux na porta 23, depois envia os caracteres digitados no teclado e exibe os caracteres recebidos na tela sem processamento de caracteres.

Você pode executar o netcat no servidor em vez (ou além disso) do telnetd e usá-lo para depurar se a comunicação por si só estiver funcionando

Não tenho certeza, não controlo as duas máquinas. Mas é 100% verdade que o terminal em execução da máquina é capaz de se conectar à máquina linux, e a máquina linux é capaz de enviar caracteres de controle de protocolo telnet (você pode vê-lo na imagem - caracteres brancos são 0xff - marca de início da opção telnet) . Não posso dizer 100% porque não tenho logs do Wireshark, mas parece que a comunicação funciona corretamente, e é o servidor de telnet que não passa pelo protocolo de telnet.

Depois de conectado, você deseja fazer login ou deseja fazer mais alguma coisa? Você pode usar algo mais seguro no terminal, por exemplo, ssh?

Sim, quero que o servidor telnet exiba "login:" pedindo para fazer login no sistema. o serviço telnet na máquina linux está operacional, porque é possível registrá-lo na terceira máquina usando o cliente telnet - mas esse cliente telnet está ciente do protocolo telnet e responde a ele. No caso descrito acima, o programa temrinal não sabe nada sobre códigos / protocolo de controle telnet e os exibe como caracteres sem nenhuma ação adicional (resposta de acordo com o protocolo telnet).


O que você quer dizer com "terminal simples"? O próprio Telnet não inicia a identificação das propriedades do terminal remoto. Esse tipo de coisa pode ser feito pelo shell que está sendo usado. Dê uma olhada em / etc / screenrc e veja se você pode personalizar isso.
Davidgo

O servidor Telnet envia uma sequência de controle específica antes de iniciar a comunicação, e o cliente deve (ou deve?) Responder com respostas às perguntas feitas pelo servidor telnet. Esta é realmente telnet protocolo RFC 854. Parece que precisamos para desativar essa funcionalidade ...
Anônimo

Por favor edite a pergunta com mais detalhes: Qual terminal você está usando, que programa de "comunicação simples" é esse? Você pode executar netcatno servidor (ou em adição) telnetde usá-lo para depurar se a comunicação por si só estiver funcionando? Uma vez conectado, você deseja fazer login ou deseja fazer mais alguma coisa? Você pode usar algo mais seguro no terminal, por exemplo ssh?
dirkt

Respostas:


1

Primeiro de tudo, a negociação telnet não tem nada a ver com tipos de terminal. (Na verdade, o tipo de terminal é determinado durante a negociação do telnet.) Portanto, você não pode desativar o primeiro alterando o último.

Como você pode desativá-lo depende da implementação específica do telnetd no servidor. (Contei cinco in.telnetds diferentes apenas no Linux, outros sistemas operacionais têm os seus.)

Às vezes, há uma opção de linha de comando telnetd que você pode usar na configuração do serviço (ou seja, em um arquivo .service do systemd ou em / etc / inetd).

Se tudo falhar, você pode compilar sua própria versão do telnetd corrigida; todas as distribuições Linux têm uma maneira de reconstruir pacotes a partir da receita oficial (dpkg-buildpackage, makepkg ...)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.