El protocolo Telnet es un protocolo de Internet estndar que permite conectar terminales y
aplicaciones en Internet. El protocolo proporciona reglas bsicas que permiten vincular a un cliente (sistema compuesto de una pantalla y un teclado) con un intrprete de comandos (del lado del servidor). El protocolo Telnet se aplica en una conexin TCP para enviar datos en formatoASCII codificados en 8 bits, entre los cuales se encuentran secuencias de verificacin Telnet. Por lo tanto, brinda un sistema de comunicacin orientado bidireccional (semidplex) codificado en 8 bits y fcil de implementar. El protocolo Telnet se basa en tres conceptos bsicos: el paradigma Terminal virtual de red (NVT); el principio de opciones negociadas; las reglas de negociacin. ste es un protocolo base, al que se le aplican otros protocolos del conjunto TCP/IP (FTP, SMTP, POP3, etc.). Las especificaciones Telnet no mencionan la autenticacin porque Telnet se encuentra totalmente separado de las aplicaciones que lo utilizan (el protocolo FTP define una secuencia de autenticacin sobre Telnet). Adems, el protocolo Telnet no es un protocolo de transferencia de datos seguro, ya que los datos que transmite circulan en la red como texto sin codificar (de manera no cifrada). Cuando se utiliza el protocolo Telnet para conectar un host remoto a un equipo que funciona como servidor, a este protocolo se le asigna el puerto 23. Excepto por las opciones asociadas y las reglas de negociacin, las especificaciones del protocolo Telnet son bsicas. La transmisin de datos a travs de Telnet consiste slo en transmitir bytes en el flujo TCP (el protocolo Telnet especifica que los datos deben agruparse de manera predeterminada esto es, si ninguna opcin especifica lo contrario en un bfer antes de enviarse. Especficamente, esto significa que de manera predeterminada los datos se envan lnea por lnea). Cuando se transmite el byte 255, el byte siguiente debe interpretarse como un comando. Por lo tanto, el byte 255 se denomina IAC (Interpretar como comando). Los comandos se describen ms adelante en este documento. Las especificaciones bsicas del protocolo Telnet se encuentran disponibles en la RFC (peticin de comentarios) 854, mientras que las distintas opciones estn descriptas en la RFC 855 hasta la RFC 861. RFC (peticiones de comentarios) relacionadas con Telnet RFC 854 Especificaciones del protocolo Telnet RFC 855 Especificaciones de opciones de Telnet RFC 856 Transmisin binaria en Telnet RFC 857 Opcin Eco de Telnet RFC 858 Opcin de suprimir continuacin en Telnet RFC 859 Opcin Estado de Telnet RFC 860 Opcin Marca de tiempo de Telnet RFC 861 Opcin Lista extendida de opciones de Telnet La nocin de terminal virtual Cuando surgi Internet, la red (ARPANET) estaba compuesta de equipos cuyas configuraciones eran muy poco homogneas (teclados, juegos de caracteres, resoluciones, longitud de las lneas visualizadas). Adems, las sesiones de los terminales tambin tenan su propia manera de controlar el flujo de datos entrante/saliente. Por lo tanto, en lugar de crear adaptadores para cada tipo de terminal, para que pudiera haber interoperabilidad entre estos sistemas, se decidi desarrollar una interfaz estndar denominada NVT (Terminal virtual de red). As, se proporcion una base de comunicacin estndar, compuesta de: caracteres ASCII de 7 bits, a los cuales se les agrega el cdigo ASCII extendido; tres caracteres de control; cinco caracteres de control opcionales; un juego de seales de control bsicas. Por lo tanto, el protocolo Telnet consiste en crear una abstraccin del terminal que permita a cualquier host (cliente o servidor) comunicarse con otro host sin conocer sus caractersticas. El principio de opciones negociadas Las especificaciones del protocolo Telnet permiten tener en cuenta el hecho de que ciertos terminales ofrecen servicios adicionales, no definidos en las especificaciones bsicas (pero de acuerdo con las especificaciones), para poder utilizar funciones avanzadas. Estas funcionalidades se reflejan como opciones. Por lo tanto, el protocolo Telnet ofrece un sistema de negociaciones de opciones que permite el uso de funciones avanzadas en forma de opciones, en ambos lados, al iniciar solicitudes para su autorizacin desde el sistema remoto. Las opciones de Telnet afectan por separado cada direccin del canal de datos. Entonces, cada parte puede negociar las opciones, es decir, definir las opciones que: desea usar (DO); se niega a usar (DON'T); desea que la otra parte utilice (WILL); se niega a que la otra parte utilice (WON'T). De esta manera, cada parte puede enviar una solicitud para utilizar una opcin. La otra parte debe responder si acepta o no el uso de la opcin. Cuando la solicitud se refiere a la desactivacin de una opcin, el destinatario de la solicitud no debe rechazarla para ser completamente compatible con el modelo NVT. Opciones negociadas de Telnet Solicitud Respuesta Interpretacin DO WILL El remitente comienza utilizando la opcin El remitente no debe utilizar la opcin WON'T El remitente no debe utilizar la opcin WILL DO El remitente comienza utilizando la opcin, despus de enviar DO DON'T El remitente no debe utilizar la opcin DON'T WON'T El remitente indica que ha desactivado la opcin WON'T DON'T El remitente indica que el remitente debe desactivar la opcin Existen 255 cdigos de opcin. De todas maneras, el protocolo Telnet proporciona un espacio de direccin que permite describir nuevas opciones. La RFC (peticin de comentarios) 855 explica cmo documentar una nueva opcin. Las reglas de negociacin Las reglas de negociacin para las opciones permiten evitar situaciones de enrollo automtico (por ejemplo, cuando una de las partes enva solicitudes de negociacin de opciones a cada confirmacin de la otra parte). 1. Las solicitudes slo deben enviarse en el momento de un cambio de modo. 2. Cuando una de las partes recibe la solicitud de cambio de modo, slo debe confirmar su recepcin si todava no se encuentra en el modo apropiado. 3. Slo debe insertarse una solicitud en el flujo de datos en el lugar en el que surte efecto. Caracteres de control de salida Los siguientes caracteres son comandos que permiten controlar la visualizacin del terminal virtual de red: ; Comandos de control para la visualizacin: Nmero Cdigo Nombre Significado 0 NULL Nulo Este comando permite enviar datos al host remoto sin que se interpreten (en particular para indicar que el host local todava esta en lnea). 1 LF Avance de lnea Este comando permite ubicar el cursor en la lnea siguiente, en la misma posicin horizontal. 2 CR Retorno de carro Este comando permite ubicar el cursor en el extremo izquierdo de la lnea actual. As, se define el comando CRLF, compuesto de dos comandos CR y LF uno despus del otro (en cualquier orden). Esto permite ubicar el cursor en el extremo izquierdo de la lnea siguiente. Caracteres de control opcionales Los caracteres anteriores son los nicos (entre los 128 caracteres del cdigo ASCII bsico y los 128 caracteres del cdigo ASCII extendido) que tienen un significado particular para el terminal virtual de red. Los siguientes caracteres pueden tener un significado en un terminal virtual de red, pero no se utilizan necesariamente. Comandos de control para la visualizacin Nmero Cdigo Nombre Significado 7 BEL Campana Este comando permite enviar una seal visual o sonora sin cambiar la posicin del cursor. 8 BS Retroceso Este comando permite cambiar la posicin del cursor a su posicin anterior. 9 HT Tabulacin horizontal Este comando permite que la posicin del cursor pase a la siguiente tabulacin a la derecha. 11 VT Tabulacin vertical Este comando permite que la posicin del cursor pase a la siguiente tabulacin de la lnea siguiente. 12 FF Avance de pgina Este comando permite que la posicin del cursor pase al final de la siguiente pgina mientras conserva su posicin horizontal. Caracteres de control de sesin Los siguientes caracteres son comandos que permiten controlar la sesin Telnet. Para que puedan interpretarse como tal, estos comandos deben estar precedidos por el carcter de escape IAC (Interpretar como comando). Si estos bytes se transmiten sin estar precedidos por el carcter IAC, se procesarn como caracteres simples. Para transmitir el carcter IAC, este mismo debe estar precedido por un carcter de escape. En otras palabras, debe estar duplicado. Los comandos relacionados con una negociacin de opciones deben estar seguidos de un byte que especifique la opcin. Estos comandos permiten interrumpir seales, eliminar informacin en el cach del terminal, etc. Caracteres de control de sesin Nmero Cdigo Nombre Significado 240 SE Fin de negociacin de opciones 241 NOP Sin operacin Este comando permite enviar datos al host remoto sin que se interpreten (en particular para indicar que el host local todava esta en lnea). 242 DM Marca de datos Permite vaciar todos los bferes entre el terminal virtual de red y el host remoto. Se relaciona con la pulsacin del botn de sincronizacin (Synch) NVT y debe vincularse con una indicacin de notificacin urgente TCP. 243 BRK Interrupcin Pausa de caracteres del terminal virtual. 244 IP Interrumpir proceso Este comando permite suspender, interrumpir o abandonar el proceso remoto. 245 AO Abortar salida Este comando permite suspender, interrumpir o abandonar la visualizacin del proceso remoto. 246 AYT Ests ah? Este comando permite controlar que el sistema remoto todava est "vivo". 247 EC Borrar carcter Este comando permite borrar el carcter anterior. 248 EL Borrar lnea Este comando permite borrar la lnea anterior. 249 GA Adelante Este comando permite revertir el control, para conexiones semidplex 250 SB SB Este comando indica que los datos que siguen son una negociacin de la opcin anterior. 251 WILL Cdigo de opcin
252 WON'T Cdigo de opcin
253 DO Cdigo de opcin
254 DON'T Cdigo de opcin
255 IAC Interpretar como comando Este comando permite interpretar el byte siguiente como un comando. El comando IAC permite ir ms all de los comandos bsicos. Ms informacin http://www.rallyexpresso.com/
Qu es un servidor SMB? Escrito por Ken Burnside | Traducido por Daniela Laura Arjones
Qu es un servidor SMB? Ryan McVay/Photodisc/Getty Images El bloque de mensajes de servidor (SMB, por sus iniciales en ingls) es un protocolo de intercambio de archivos cuyas races se remontan a mediados de 1980, se construye fuera de los servicios de NetBIOS y NetBEUI, que dominaron la red de Windows antes de la llegada de un funcionamiento del protocolo TCP/IP en la dcada de 1990 y todava tiene un lugar en la pequea oficina y arquitecturas de planificacin de redes empresariales en la actualidad. Este protocolo tambin se llama CIFS, aunque el nombre SMB tiene un uso ms amplio. Los servidores SMB se utilizan para administrar y mantener los servicios de pequeas y medianas empresas a travs de una red o servicio de Active Directory en un entorno de red de Windows. Otras personas estn leyendo Cmo conectar equipos a travs de SMB Qu es el protocolo de procesador de mensajes SMB? Historia del SMB La primera implementacin de SMB se produjo en Microsoft LAN Manager en 1987 y era una parte integrada de Windows para trabajos en grupo. Microsoft present una especificacin mejorada de SMB en el ao 1997 como el sistema de archivos comunes de Internet, que se basa en una aplicacin lanzada de SMB en Windows NT 4.0 en 1996. Uso de servidores SMB SMB funciona a travs de una arquitectura cliente-servidor, con cada equipo de la red utilizando el protocolo SMB que consulta un portal que va a parar al servidor SMB menos ocupado en el clster. Este protocolo requiere que cada cliente se autentique con el servidor SMB, que implica una sobrecarga para el protocolo de red, pero tambin permite un entorno ms robusto para compartir aplicaciones y datos. En uso de rutina de la oficina, el tipo ms comn de servidor SMB que se encuentra es un servidor de impresin Windows compartido, accesible a todos los equipos en el mismo dominio de red. Implementacin de Microsoft Hay dos versiones utilizadas del protocolo SMB distribuidas por Microsoft, la aplicacin 1.0, que vena con Windows NT y se actualiz exhaustivamente con Windows 2000, y la implementacin SMB2 que sali con Windows Vista. La aplicacin 2.0 es compatible con la ejecucin 1.0, pero ofrece incrementos significativos de rendimiento cuando todos los clientesde la red tienen la versin ms reciente. Windows 7 introduce SMB 2.1 como un protocolo, que sigue siendo compatible en el nivel SMB-servidor con SMB 2.0 Implementacin de cdigo abierto Debido a que SMB es un protocolo para conectar computadoras a redes, las implementaciones de pequeas y medianas empresas en otros sistemas operativos han sido conservadas desde finales de 1990. La versin de cdigo abierto de SMB se llama Samba y ha sido una pieza entre las distribuciones de Linux y MacOS X desde 2002. El candidato de la versin actual de Samba es la versin 3.6, que contiene una reimplementacin casi completa de SMB2. La versin estable 3.5 no tiene una implementacin SMB2. ------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------- El protocolo SMB Puesto que Samba es, fundamentalmente, una implementacin para Unix del protocolo SMB, quizs la mejor forma de entender Samba es comenzar por describir SMB con un poco ms de detalle. Esta seccin realiza una pequea revisin de este protocolo. SMB es un protocolo de comunicacin de alto nivel que puede implementarse sobre diversos protocolos como TCP/IP, NetBEUI y IPX/SPX, tal como muestra la Figura 4.1, Protocolos sobre los que puede implementarse SMB., junto con la ubicacin de dichos protocolos en los niveles OSI y en la pila TCP/IP. Entre todas esas alternativas, tanto en el caso de Samba como de Windows 2000/XP, SMB se implementa habitualmente encima de NetBIOS sobre TCP/IP (esta alternativa se ha convertido en el estndar de facto para compartir recursos entre sistemas Windows). Sin embargo, no incidiremos ms en los protocolos que soportan SMB o en su implementacin, puesto que todo ello queda fuera del contexto de este tema. Figura 4.1. Protocolos sobre los que puede implementarse SMB.
Histricamente, este protocolo fue desarrollado inicialmente por IBM como el IBM PC Network SMB Protocol o Core Protocol a principios de los aos 80. Desde entonces, diversos fabricantes (especialmente Microsoft) han ido ampliando su funcionalidad progresivamente, creando diferentes variantes (versiones) de SMB. Desafortunadamente, en ocasiones el cambio de versin ha conllevado el rebautizar el propio protocolo. En este sentido, SMB ha recibido, entre otros,los siguientes nombres: Core Protocol, DOS Lan Manager, LAN Manager, NTLM (NT Lan Manager), y en los ltimos aos, CIFS (Common Internet File System). Todos ellos, por tanto, hacen referencia a SMB, aunque se diferencien en algunos detalles de su funcionalidad y/o implementacin. Si nos fijamos en su interfaz, SMB es un protocolo de tipo cliente/servidor, donde el ordenador "servidor" ofrece recursos (archivos, impresoras, etc.) que pueden ser utilizados remotamente por los ordenadores "cliente" a travs de la red. Asimismo, es un protocolo de los denominados peticin/respuesta, indicando que las comunicaciones se inician siempre desde el cliente como una peticin de servicio al servidor (dicha peticin se denomina precisamente SMB), que la procesa y retorna una respuesta a dicho cliente. (En realidad, existe un caso en que el servidor enva un mensaje al cliente sin haber recibido una peticin de ste, pero la discusin del protocolo a ese nivel queda fuera del mbito de este texto). La respuesta del servidor puede ser positiva (con el resultado de procesar la peticin del cliente) o negativa (mensaje de error), en funcin del tipo de peticin, la disponibilidad del recurso, el nivel de acceso (permisos) del cliente, etc. El siguiente aspecto relevante de SMB es saber qu mecanismos de autentificacin soporta este protocolo para controlar el acceso del cliente a los recursos compartidos. En concreto, SMB soporta dos modos de autentificacin alternativos, denominados share y user: Cuando compartimos un recurso en modo share, la proteccin de dicho recurso recae en una contrasea que asociamos al mismo, de forma que cualquier usuario de un sistema cliente remoto que conozca dicha palabra de paso podr acceder sin mayores restricciones al recurso (este es el mecanismo de autentificacin por defecto en las implemementaciones de SMB para Windows 9X, por ejemplo). Sin embargo, en modo user, el servidor recibe incialmente del sistema cliente unas credenciales de usuario (nombre, dominio y contrasea), que debe autentificar para autorizar el acceso al recurso. Concretamente, si el dominio de las credenciales es conocido, la autentificacin se delega a algn controlador de dicho dominio; y en caso contrario, el usuario y la contrasea se autentifican contra la base de datos local del equipo servidor. En cualquier caso, en modo user, el control de acceso sobre el recurso se realiza en funcin de qu permisos posee sobre dicho recurso el usuario cuyas credenciales se han enviado desde el cliente. En otras palabras, una vez el sistema servidor ha identificado y autentificado al usuario que desea conectarse al recurso, este sistema dispone ya de un SID vlido con el que puede contrastar los permisos que dicho SID posee sobre el recurso. Es conveniente recordar en este punto que si el recurso en cuestin es una carpeta compartida, se tienen en cuenta tanto los permisos del recurso, como los permisos NTFS de la carpeta y sus archivos. El modo user es el mecanismo de autentificacin por defecto en las versiones de SMB de sistemas Windows NT y posteriores. Finalmente, revisaremos brevemente el funcionamiento interno del protocolo SMB, utilizando para ello un ejemplo concreto. Supongamos que un sistema cliente desea acceder a una carpeta compartida que exporta el servidor (en modo user). En este escenario, se producira el siguiente intercambio de mensajes entre ellos: 1. Peticin: Sesin NetBIOS. El objetivo de este mensaje es establecer una sesin fiable para subsiguientes mensajes entre los ordenadores cliente y servidor. Es imprescindible que el cliente conozca el nombre NetBIOS del servidor para poder alcanzarlo; el nombre NetBIOS del cliente es parte del mensaje, por lo que ambos saben quin es el otro. 2. Respuesta: Sesin NetBIOS. Si no hay error en el mensaje anterior, el servidor enva un mensaje de reconocimiento (ACK), aceptando la conexin. 3. Peticin: Dialecto SMB. El cliente enva en este mensaje una lista con los dialectos o variantes de SMB que soporta, puesto que es habitual que un sistema Windows soporte varias versiones de SMB simultneamente. 4. Respuesta: Dialecto SMB. El servidor contesta con el dialecto que prefiere para la comunicacin subsiguiente, o un cdigo de error si no soporta ninguna de las alternativas ofrecidas por el cliente. 5. Peticin: Inicio de sesin. El cliente enva las credenciales de usuario (usuario, dominio,contrasea) con las que ste desea conectarse al servidor. Recurdese que por defecto, se emplean las credenciales con las que el usuario se conect interactivamente al sistema cliente, pero se pueden especificar otras explcitamente. 6. Respuesta: Inicio de sesin. El servidor autentifica las credenciales de usuario (ver modo user descrito arriba). Si las credenciales son buenas, el servidor posee ya un SID vlido que le permite, antes que nada, comprobar si el usuario posee el derecho de conectarse al servidor (directiva "tener acceso a este equipo desde la red"). En caso afirmativo, se acepta la conexin y el servidor construye un identificador numrico particular para esa coexin (denominado User ID o UID) que devuelve al cliente. Los UIDs pueden ser reutilizados durante la vida del sistema, pero son nicos para todas las conexiones simultneas que mantiene el servidor en un momento dado, por lo que identifican unvocamente una conexin (aceptada). Todos los mensajes posteriores del cliente deben contener este identificador para ser aceptados por el servidor. Por otro lado, si las credenciales estaban mal (o si los derechos eran insuficientes), el servidor enva un cdigo de error en lugar del UID. 7. Peticin: Conexin a un recurso concreto. El cliente enva entonces un mensaje que contiene una cadena que identifica el recurso al que desea acceder (por ejemplo, \\pc01\impresora o \\pc01\carpeta). 8. Respuesta: Conexin a un recurso concreto. Si el recurso solicitado por el cliente existe (y el SID asociado a la conexin posee suficientes permisos), el servidor construye un identificador denominado Tree ID oTID, que ser utilizado por el cliente para hacer referencia a dicho recurso en posteriores mensajes de esa conexin. Tras esta secuencia tpica de conexin al recurso (carpeta compartida), y si todo ha fucionado correctamente, el sistema cliente ya est en condiciones de acceder a la carpeta. Mediante el envo de los SMBs correspondientes, el cliente ya puede abrir archivos, leerlos, modificarlos, etc., utilizando siempre los identificadores (UID y TID) que el servidor ha construido durante el intercambio de mensajes inicial.