El
protocolo Telnet se desarrolló pensando en un funcionamiento similar
al de los protocolos cliente-servidor, pero siguiendo una
arquitectura diferente a
Este
tipo
de
protocolos
(ya
que
en
parte
lo
que
se
busca
es
la
simetría
en
el
protocolo,
lo
cual
impide
que
internamente
la
arquitectura
sea
cliente-servidor).
De
hecho, se diseñó de forma que se pudiera establecer una sesión en
Cualquier
tipo
de
servidor,
entrando
a
través
de
la
conexión
establecida
a
partir
De
un
terminal
cualquiera
(que
no
actúa
como
cliente).
Este
protocolo
nos
Permite,
por
ejemplo,
ejecutar
programas
en
el
servidor.
El
protocolo
trabaja
sobre
una
conexión
TCP/IP,
estableciendo
un
canal
bidireccional
de
octetos
(semi-duplex
a
pesar
de
ser
TCP
full
duplex,
por
Motivos
que
se
verán
a
continuación)
y
estableciendo
la
comunicación
de
Terminal
a
terminal
y
de
proceso
a
proceso.
El
conjunto
de
caracteres
definido
es
ASCII
de
7
bits.
Para
poder
soportar
cualquier
tipo
de
terminal,
se
Introdujo
el
concepto
de
Terminal
Virtual
de
Red’o
Network
Virtual
Terminal’
(NVT),
dispositivo
Intermedio
con
el
que
deben
trabajar
tanto
la
aplicación
servidor
como
la
Aplicación
cliente.
En
realidad
el
NVT
es
un
dispositivo
irreal,
imaginario
(de
ahí
Que
se
le
denomine
‘virtual’
)
Que
ambos
extremos
de
la
conexión
utilizan
para
Registrar
(‘mapear’en
memoria)
su
terminal
físico
y
real.
Es
decir,
l
a
aplicación cliente debe registrar en el NVT el tipo de termina
l
físico
que
el
usuario
cliente
está
empleando
en
la
máquina
que
inicia
la
conexión
contra
el
servidor;
y
una
vez
registrado,
el
servidor
debe
Mapear
se
NVT
en
un
terminal
que
soporte.
Es
importante destacar que, si bien el protocolo Telnet en sí no está
Construido
como
una
arquitectura
cliente-servidor,
en
la
práctica
se
trabaja
con
Aplicaciones
que
funcionan
como
clientes
Telnet
en
la
máquina
que
inicia
la
Conexión
contra
el
cliente.
De
hecho,
aunque
inicialmente
el
método
de
trabajera
emplear
un
terminal
en
el
cliente
compuesto
sol
Amente
por
una
impresora
y
un
teclado,
y
en
épocas
posteriores
sustituyendo
la
impresora
por
una
pantalla
de
ordenador
y
un
método
de
trabajo
en
modo
consola,
a
día
de
hoy
existen
numerosos
clientes
Telnet
que
presentan
una
interfaz
gráfica
que
facilita
enormemente
el
manejo
de
las
aplicaciones.
Algunos
de
esos
clientes
son
PuttY,
NetRunner,
Zoc,
y
algunos
otros.
También
hay
sistemas
operativos
que
Traen
sus
propios
clientes
Telnet
instalados
por
defecto.
El
objetivo
básico
de
este
trabajo
es
generar
el
diseño
de
una
aplicación
que
permita
la
implementación
del
protocolo
Telnet
y
su
correcto
Funcionamiento.
Para
ello,
será
necesario
realizar
Un
diseño
de
la
aplicación
que
habrá
que
instalar
en
la
máquina
que
trabaje
como
servidor,
así
como
una
aplicación
que
hará
las
veces
de
cliente
en
la
máquina
que
inicie
la
conexión
contra
el
cliente.
Dada
la
extensión
de
las
diferentes
opciones
que
puede
manejar
este
protocolo,
así
como
los
comandos
y
los
modos
de
operación
posibles,
en
primer
lugar
se
hará
un
estudio
.
A la
hora de realizar el diseño de una aplicación que soporte el
protocolo
Telnet,
primero debemos analizar qué opciones, de entre todas las posibles a
Implementar
en
el
protocolo,
consideramos
deseables
para
la
aplicación.
•
En
primer lugar, analizaremos el establecimiento de la conexión. Ésta,
Según
el protocolo, es una conexión TCP/IP normal, Por lo que el
establecimiento puede realizarse de la manera que c
Consideremos
más
conveniente
(por
ejemplo,
mediante
sockets).
En
todo
caso
asumiremos
que
el
cliente
será
siempre
el
encargado
de
iniciar
la
Conexión
contra
el
servidor,
nunca
al
contrario.
•
En
segundo lugar analizaremos la negociación de opciones al iniciar la
Conexión
Telnet.
En
principio
el
protocolo
está
pensado
para
que
dicha
negociación
sea
simétrica
(es
decir,
cualquiera
de
los
extremos
de
la
Conexión
podría
iniciar
la
negociación
de
cualquier
Opción),
pero
desde
el
punto
de
vista
de
la
seguridad
puede
suponer
un
Problema
importante;
por
lo
tanto,
limitaremos
algunas
opciones
de
forma
que
Únicamente
puedan
ser
iniciadas
por
sólo
uno
de
los
extremos
de
la
comunicación
las
cuatro
posibles
peticiones
para
cada
opción
son
las
Siguientes:
WILL
(El
que
envía
la
petición
quiere
habilitar
la
opción
él
mismo),
DO
(El
que
envía
la
petición
quiere
que
sea
el
otro
extremo
el
Que
se
encargue
de
habilitar
la
opción),
WONT
(El que
envía la petición Quiere encargarse de deshabilitar la opción él
mismo
o) y
DONT (el que envía la petición quiere que el otro extremo
deshabilite la opción).
•
En
tercer lugar analizaremos el modo de operación deseado para el
cliente y servidor Telnet que queremos diseñar. En principio,
existen cuatro modos de funcionamiento: semi-duplex (modo por defecto
que
Se
usa
muy
infrecuentemente,
si
bien
fue
el
primer
modo
de
funcionamiento
que
se
diseñó),
modo
carácter(típico
de
Rlogin,
que
consiste
en
enviar
cada
carácter
que
se
escribe
en
el
terminal
de
forma
independiente
al
servidor),
Modo
línea
‘kludge’(consiste
en
enviar
los
comandos
en
líneas
completas
y
ciertas
órdenes
en
modo
carácter)
y
modo
línea
puro
(que
es
una
mejora
del
modo
‘kludge’
que
corrige
los
fallos
que
éste
presentaba).
En
nuestro
caso
implementaremos
unas
aplicaciones
que
trabajarán
por
defecto
en
modo
carácter,
ya
que,
si
bien
este
modo
presenta
ciertos
problemas
por
el
volumen
de
tráfico
que
genera
y
por
los
altos
retardos
que
presenta
en
líneas
lentas,
es
también
el
modo
que
se
está
imponiendo
a
día
de
hoy
en
la
mayoría
de
aplicaciones
e
implementaciones
del
protocolo
actúales.
¿Qué es Telnet?
Telnet es un
protocolo TCP/IP, accionado por comandos del usuario, que le permite
acceder a un equipo remoto. Si bien la obtención de archivos desde
una computadora remota a través de FTP es común, Telnet en realidad
va un paso más allá y te permite iniciar la sesión como un usuario
regular de la computadora, con acceso a todos los datos y programas
que pueden ser instalados en en ella. Se utiliza generalmente para
fines de apoyo técnico.
Cómo funciona Telnet
Telnet utiliza
el software instalado en tu computadora para crear una conexión con
el anfitrión remoto. El cliente de Telnet (software), en tu
servicio, enviará una solicitud al servidor Telnet (anfitrión
remoto). El servidor responderá preguntando por un nombre de usuario
y contraseña. Si es aceptada, el cliente Telnet establecerá una
conexión con el servidor, haciendo de tu computadora una terminal
virtual y lo que te permite completar el acceso a la computadora
anfitrión. Telnet requiere el uso de un nombre de usuario y
contraseña, lo que significa que es necesario haber configurado
previamente una cuenta en el equipo remoto. En algunos casos, sin
embargo, los equipos con Telnet permiten a los clientes conectarse
con acceso restringido.
¿Mi computadora tiene Telnet?
Cada sistema
operativo de la computadora principal, incluyendo Unix, Linux, Mac OS
y Windows, tiene la capacidad de Telnet e incluso lo tienen
incorporado. Para averiguarlo, abre el cuadro de comando en tu
sistema (para Windows sería la función "comando” en el menú
de inicio que abre la ventana de DOS) e introduce el comando: host
Telnet, con HOST siendo el nombre del anfitrión remoto con el que
deseas conectarte. Curiosamente, en Windows Vista no se ejecuta
automáticamente Telnet. Para ejecutarlo en este sistema operativo,
debes activar la aplicación. Dirígete al menú Inicio, haz clic en
el Panel de control, luego en Programas y selecciona "Activar o
desactivar las características de Windows". Un cuadro de
diálogo aparecerá y debes ver el cliente Telnet en la lista, con
una casilla al lado. Haz clic en la casilla para seleccionarlo, luego
en Aceptar y espera hasta que la instalación se haya completado.
Cuando desees salir de la aplicación Telnet, será necesario
ejecutar el símbolo del sistema de nuevo en tu propia computadora.
Los diferentes sistemas operativos utilizan diferentes comandos para
salir, tal como SALIR (QUIT), CERRAR (CLOSE) o CERRAR SESIÓN
(LOGOFF). Windows utiliza cierra sesión. Si ninguno de los comandos
funcionan, puedes intentar abortar; sin embargo, este comando sirve
sólo para terminar Telnet en el extremo, a veces dejando que se
ejecute en el computadora anfitrión remoto, así que utiliza ABORTAR
(ABORT) sólo como última opción. En los primeros tiempos de
Internet, Telnet también se utilizó para conectar con algo que se
llama un red libre, que es justo lo que parece: un sistema
informático de libre acceso. Esto fue en parte debido a que los
módems de marcación eran tan lentos, mientras que Telnet trabajaba
mucho más rápido. Sin embargo, con la llegada de los proveedores de
Internet de la alta velocidad, la mayoría de las redes libres han
cerrado.
Diseño
de la aplicación Telnet: cliente.-
Queremos
implementar una aplicación que funcione como un cliente Telnet en
una consola de comandos de un sistema operativo (UNIX, por ejemplo),
cumpliendo con las consideraciones realizadas en el apartado
anterior, a saber:
- El cliente será siempre el encargado de iniciar la conexión hacia el servidor, y nunca a la inversa.
2. Se
limitarán las opciones que pueda intentar negociar el cliente, ya
que
Algunas
estarán restringidas de manera que sólo el servidor podrá iniciar
La
negociación de las mismas.
3. Por
defecto el conjunto de aplicación trabajará en modo carácter, pero
Se
permitirá al cliente iniciar la negociación de otros modos de
trabajo
(Por
ejemplo, modo línea). Sólo el cliente iniciará la negociación de
este
Tipo de
opciones; el servidor no cambiará nunca el modo de trabajo a
Menos
que acceda a la petición del cliente.
4. La
contraseña de sesión deberá enviarse cifrada por motivos de
Seguridad,
mediante
DES.
Por
tanto,
la
aplicación
cliente
deberá
Encargarse
del
cifrado
de
la
misma
antes
de
enviarla
hacia
el
servidor.
Una vez
establecidos los parámetros y las restricciones de nuestra
Aplicación
cliente,
procedemos
al
diseño
de
la
misma,
mediante
un
flujograma
Sencillo
que
nos
permita
entender
el
funcionamiento
de
esta
aplicación.
También
se adjuntará, si procede, pseudocódigo para
Aclarar
cómo
podría
ser
la
implementación
de
la
aplicación
a
partir
de
un
lenguaje
de
programación
de
alto
nivel,
como
por
ejemplo
C.
El
mencionado
pseudocódigo
se
referirá
en
todo
caso
a
la
implementación
de
algunas
de
las
particularidades
del
protocolo
Telnet,
ya
que
no
tiene
sentido
tratar
aquí
la
implementación
práctica
de,
por
ejemplo,
el
mecanismo
de
implementación
de
una
conexión
TCP/IP
mediante
sockets
de
una
aplicación
cliente-servidor
iterativa
y
conectiva.
En
primer
lugar
se
procederá
a
dar
una
visión
funcional
del
diseño
de
la
aplicación
cliente
a
implementar.
Para
ello
nos
ser
Viremos
de un flujograma explicativo que se muestra a continuación
No hay comentarios:
Publicar un comentario