Telnet
Introducció
Una de les motivacions a l'hora de fer aquesta ampliació ha sigut la escassa informació que hem hagut d'aportar en els apunts de teoria. Hem vaig decidir per Telnet com hem podria haber decidit per SSH, SCP, comandes R* o qualsevol dels protocols de transferencia de la inforfació que es van esmentar en el tema de Protocols d'Aplicació. Suposo que al final vaig escollir Telnet, perque al indagar una mica per internet vaig veure que era un tema força tractat. Suposo que això és degut a que és un protocol més àntic que SSH o SCP, per exemple.
Una altra motivació per fer una ampliació respecte aquest protocol, és que, personalment, sempre m'ha agrdat saber d'on venir i a on t'anem. Amb això el que vui dir es que, sempre m'ha picat la cuiriositat dels inicis de les coses i de les futures evolucions, per tant, podriem dir que telnet és el pare/avi dels protocols de transferencia per internet, ja que SSh i SCP són protocols evolucionats de Telnet i de les Comandes R*.
Descripció
Com bé hem dit a la part de teoria, Telnet és un protocol/nom del programa que implementa el client que seguint el model de capes OSI i les especificacions TCP/IP, està situat a nivell d'aplicació que permet interactuar un client d'accés remot amb un servidor d'accés també remot inicialment creat l'any 1969 i utilitzat fins a mitjans/finals dels 90. Per a aquest client pugui tenir accés al servidor, es a dir, a la màquina remota, en aquesta ha de tenir permís d'accés, es a dir, ha de tenir un compte, una sessió.
Per aquest accés es realitza mitjançant terminals i el port Well-Kown 23, es a dir, en mode text i sense gràfics per poder arreglar errades i consultar dades a distància. També es feia servir per poder accedir a BBS (Bulletin Board System o Sistema de Tablón de Anuncios) que es un software lliure per a xarxes que permet als usuaris la connexió al sistema telefónicament i amb el programa terminal telnet si és a través de internet. Un requeriment necessari és que el client remot tingui suport de gràfics ANSI i protocols de transferencia de fitxers.
Telnet es un protocol que es basa en 3 idees funcionalment:Es basa en el concepte de NVT (Network Virtual Terminal) que és un dispositiu imaginari amb una estructura bàsica igual a un gran cuantitat de terminals reals. Cada host es el mapejador de les característiques de la seva terminal sobre la corresponent NVT i dona per suposat que tots els altres hosts faran el mateix. Aquest NVT es basa en un monitor (display), que rep les dades d'entrada que li arriben per la connexió telnet, i un telcat que envia dades de sortida per aquesta connexió. Un NVT es caracteritza, menys que s'hagin modificat les característiques per opcions d'entesa mútua:
1.1. les dades es representen en codi ASCII de 7 bits i són enviats en bytes (8 bits).
1.2. és semi-duplex (dispositiu) que opera en mode de buffer en linia.
1.3. proporciona la funcionalitat de eco local.
- Una altra de les tres idees és que té una perspectiva simètrica dels terminals i dels processos.
I la tercera idea es la negociació de les opcions del terminal. Amb això el que es vol dir es que molts hosts poden desitjar suministrar serveis adicionals que un NVT pot suministrar i per tant telnet ha de negociar quines opcions donar i quines no, de tal manera que el client i el servidor utilitzen una sèrie de convencions per establir les opcions de les característiques operacionals de la connexió per mitjà de mecanismes com: "DO, DON'T, WILL, WON'T". A la vegada, aquestes hi pot haber sub-negociacions si amdues parts estan d'acord. Per dur a terme aquestes sub-negociacions s'utilitxaran les comandes SE i SB.
Inicialment, els dos hosts implicats en la connexió telnet verifiquen si hi ha existencia d'una comprensió mutua. Un cop aquesta negociació està completada, aquests dos hosts tenen la capacitat de treballar al nivell mínim implmentat per la NVT.Un cop completada aquesta negociació es poden negociar d'altres adicionals per ampliar les capacitats del NVT i així fer que la connexió virtual sigui el més real a la capacitat del hardware que s'està utilitzant. Degut al model simètric utilitzat en aquest protocol (2ª idea funcional proposada anteriorment) tan el client com el servidor pot proposar l'ús d'opcions adicionals.
Aquest protocol es va deixar d'utilitzar gairebé per complet a causa de la seva poca seguretat, ja que els noms dels usuaris i els passwords que s'utilitzaven eren enviats per la xarxa en mode de text pla, es a dir, s'enviaven pel medí, cadenes de textos amb el nom i el password sense xifra. Així feia que l'espionatje de les dades fos fàcil, es a dir, que mitjançant quansevols programa preparat fos fàcil espiar/robar les dades.
Seguretat en Telnet
- Actualment, els sistemes que es fan servir hi ha diversos motius que fan que no sigui gaire convenient l'utilització de Telnet. Bàsicament són aquests:
- Els dominis on telnet s'utilitza de forma general tenen diferents vulnerabilitats les quals s'han anat descobrint mitjançant els anys i la pràctica. Això fa que es cregui que encara poden existir algunes vulnerabilitats més.
- Com bé hem esmentat abans, Telnet no xifra cap dada enviada i es molt fàcil snifar aquesta informació a nivell de ports i aplicar aquesta informació robada per finalitats malicioses.
- Com
a últim motiu diré que Telnet no te un esquema d'autentificació que
doni fiabilitat de comunicació entre client i servidor remot, ambdos
els desitjats, es a dir, que no res en mig de la cominicació que l'hagi
interceptat.
Com es de lògica, veient aquestes carencies de seguretat que ofereix Telnet, és recomanable que no s'utilitzi en l'hàmbit de l'internet públic. Això fa que experts en seguretat com son l'institut de SANS i els membres del newsgroup de comp.os.linux.security creguin que les connexions remotes amb telnet haurien de ser discontinuades sota qualsevol circumstància normal.
Per aquests motius l'ús de Telnet va caure ràpidament en lloc de SSH on aquests inconvencients es tenen en compte.
Comandes de Telnet
Com bé s'ha anat dient en tota l'ampliació amb telnet hi ha una comunicació remota entre un client i un servidor. Aquesta comunicació està manipulada per comandes internet accessibles per a tots els usuaris. totes aquestes comandes es basen en una seqüència de 2 o 3 bytes, segons el tipus de comanda.
Una comanda anira encapcelada pel caràcter IAC (Interpret As Command, interpretar com comanda), seguit d'un codi de comanda. Si aquesta comanda tracta amb opcions de negociació, durà un tercer byte per dur el codi associat a l'opció indicada.
- Seguidament mostrarem les comandes més utilitzades en telnet:
open host [port]: Obra una conexió amb el host en el port indicats. Si no es passa el port aquesta conexió amb el servidor s'intenta fer amb el port estàndar d'un i de l'altre (recordem que hi ha la connexió client-servidor). Si en lloc del port no es indicat el nom del host telnet ho indica pel seu compte/sessió.
close : tanca una sessió de telnet.
quit : Tanca qualsevol sessió oberta i surt de telnet, podriem dir que talla la connexió.
z : Suspen telnet.
fg : Reanuda telnet allà on s'habia supés anteriorment.
mode Mode: canvia el mode d'entrada de l'usuari al mode especificat.
status : Mostra l'estat actual de telnet. Informa del caràcter d'escapament i el mode actual i el host al que s'esta connectat, si s'hi està. En el cas de que no hi estigui telnet informa de la no connexió.
? comanda: És l'ajuda de telnet. Si a aquesta comanda no li pases cap argument telnet t'imprimeix per pantalla un sumari de l'ajuda on la informació d'aquesta es basa en una linia descriptiva de la comanda.
! comandes del "shell": Escapament del terminal. Si "comandes de shell" no s'espeifiquen, s'inicialitza un terminal i es connecta a la terminal de l'usuari.
send arguments: Envia una o més d'una seqúència de caracters especials al host remot.
set valor del nom de la variable: Fixa algun nom de la variable de telnet com valor específic.
IP : Interrompre procès.
AO : Abortar la sortida.
AYT : ¿Estàs allí?.
EC : Borrar carácter.
EL : Borrar línea.
SYNCH : Sincronizar.
Telnet també ens mostra missatges d'error, tal com els següents:
telnet/tcp: Unknown service: Ens indica que telnet ha igut incapaç de trobar l'entrada del sevei de telnet en la base de dades de serveis.
hostname: Unknown host : Ens indica que ha sigut incapaç de relacionar el nom del host amb una direcció de Internet.
?Invalid command : ens indica que s'ha introduit una comanda no valdia per teclat en el mode de comanda de telnet.
system call>: ... : Succeeix un error en la crida del sistema especificat.
Exemple/Utilitat
Per efectuar una, encara que es poden realitzar vaires a la vegada sense problemes, connexió amb Telnet s'ha d'introduir el nom de domini de la màquina remota. Un cop fet això veurem la pantalla de presentació del servidor remot demanant-nos que inserim el nom d'usuari i el password despres de haber picat en la terminal telnet i la IP del servidor remot.
Un cop incerit el login i el passowrd correcte ja podrem inteactuar amb el servidor remot.
Si ens volem connectar a un servidor on no tenim compte, també ens podem connectar, sempre que aquest sevidor ens ho permeti, utilitzant com a login una de les paraules guest, visitor o new. Amb aquestes paraules el servidor aplica un controls de seguretat i solament mostra la informació pública de la cual disposa el sistema.
També podem utilitzar Telnet per accedir a altres serveis de Internet, peró per això, el servidor remot ha de tenir aquesta possibilitat. Sempre i quan estiguem connectat en principi podrien utilitzar els serveis del servidor (correu electrónic, tranferencia de arxius...).
Telnet per a l'usuari individual no és gaire útil, peró per a empreses i institucions són útils, ja que se li pot donar un compte de telnet a cada operari d'aquesta empresa/institució i des de qualsevol terminal des de cualsevol lloc pot treballar com si estigués treballant des de la terminal del servidor de la empresa. Per això es necessari tenir una còpia del software d'accès a Internet i una còpia del software Telnet per a que en cadascuna dels terminals puguem tenir accès a qualsevol servei de Internet.
Conclusions
Una conclusió que puc treure d'aquesta ampliació és que Telnet, és un protocol arcaic, ja que els requeriments actuals d'intercanvis d'informació implica una major seguretat i el mode de codificació i de seguretat de les dades de telnet, per a mi és bastant deficient. Estem d'acord que ningú hauria d'espiar/robar informació privada, pero sabem que això no succeeix, per tant el fet de que telnet trasmeti sense encriptació de dades, es adir, amb cadenes de text, tan el login, com el passwods com tota l'altra informació de la connexió fa que no sigui un protocol deficitari, un mal protocol. També cal dir que és el primer protocol d'intercanvi de dades que hi va haber en lo que coneixem com a Internet, recordem que es va crear l'any 1969, i per aquells anys no hi habien tants "ulls mirant", però els que "miraven" eren importants, ja que Internet es va crear amb finalitats militars de defensa, i com tots podem arribar a saber, la informació de defensa d'un país és estrictament confidencial, per tant utilitzar un protocol amb mala o inexisten encriptació de les dades, fa que no sigui un bon protocol.
Fonts:
Apunts de classe
http://es.wikipedia.org/wiki/Telnet
http://www.rfc-es.org/rfc/rfc0854-es.txt
http://www.rfc-es.org/rfc/rfc0855-es.txt
http://ditec.um.es/laso/docs/tut-tcpip/3376c42.html
http://www.vc.ehu.es/wuagacaj/manual/telnet/telnet.html
http://structio.sourceforge.net/guias/AA_Linux_colegio/servicios-de-la-intranet.html
http://www.aplushosting.com/spanish/tutorials/telnet.phtml