El servidor telnet de Linux no utilizará el protocolo de enlace telnet

El servidor telnet de Linux no utilizará el protocolo de enlace telnet

Estamos intentando conectarnos al servicio telnet de Linux utilizando un programa de terminal simple; Sospecho que el servidor está configurado en VT-100 predeterminado y el servidor telnet envía secuencias de protocolo de enlace de control, esperando que el terminal responda con sus opciones admitidas y se bloquea esperando la respuesta del terminal.

ingrese la descripción de la imagen aquí (disculpas por la mala calidad de la imagen)

Desafortunadamente, el terminal es solo un programa de comunicación básico y no conoce el protocolo telnet.

¿Hay alguna forma de indicarle al servidor telnet (por ejemplo, configurando un tipo de terminal específico) que no inicie la identificación de las propiedades del terminal remoto, sino que vaya directamente a la comunicación?

Editar:

Edite la pregunta con más detalles: ¿Qué terminal está utilizando, qué programa de "comunicación básica" es?

El programa de comunicación abre una conexión TCP a la PC con Linux al puerto 23, luego envía los caracteres escritos en el teclado y muestra los caracteres recibidos en la pantalla sin ningún procesamiento de caracteres.

¿Puedes ejecutar netcat en el servidor en lugar (o además) de telnetd y usarlo para depurar si la comunicación por sí sola está funcionando?

No estoy seguro, no controlo ambas máquinas. Pero, ¿es 100% un hecho que la máquina que ejecuta el terminal puede conectarse a la máquina Linux, y la máquina Linux puede enviar caracteres de control del protocolo telnet (puede verlo en la imagen; los caracteres blancos son 0xff; marcador de inicio de la opción telnet)? . No puedo decir el 100% porque no tengo registros de Wireshark, pero parece que la comunicación funciona correctamente y es el servidor Telnet el que no pasa por el protocolo de enlace Telnet.

Una vez que esté conectado, ¿desea iniciar sesión o desea hacer algo más? ¿Puedes usar algo más seguro en la terminal, por ejemplo, ssh?

Sí, quiero que el servidor Telnet muestre "iniciar sesión:" solicitando iniciar sesión en el sistema. El servicio telnet en la máquina Linux está operativo, porque es posible iniciar sesión desde una tercera máquina utilizando el cliente telnet, pero este cliente telnet conoce el protocolo telnet y responde a él. En el caso descrito anteriormente, el programa terminal no sabe nada sobre los códigos/protocolos de control de telnet y los muestra como caracteres sin ninguna acción adicional (respuesta según el protocolo telnet).

Respuesta1

En primer lugar, la negociación telnet no tiene nada que ver con los tipos de terminales. (De hecho, el tipo de terminal esdeterminadodurante la negociación de telnet). Por lo tanto, no puede desactivar el primero cambiando el segundo.

Como tupoderdesactivarlo depende de la implementación específica de telnetd en el servidor. (He contado cinco in.telnetds diferentes solo en Linux, otros sistemas operativos tienen los suyos).

A veces hay una opción de línea de comando telnetd que puede usar en la configuración del servicio (es decir, en un archivo .service systemd o /etc/inetd).

Si todo falla, puedes simplemente compilar tu propia versión parcheada de telnetd; Todas las distribuciones de Linux tienen una forma de reconstruir paquetes a partir de la receta oficial (dpkg-buildpackage, makepkg...)

información relacionada