Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) APLICACIONES de PROTOCOLOS del NIVEL de APLICACION OBJETIVOS: • • • Familiarizar al alumno con aplicaciones básicas montadas sobre protocolos del nivel de aplicación que se apoyan sobre TCP/IP. o Aplicaciones: telnet, ftp, mail. Entender los protocolos que corren por debajo de tales aplicaciones. (En el caso de telnet, se usará para investigar el protocolo http y el smtp). Familiarizar al alumno con los protocolos de nivel de aplicación de un sistema operativo Unix como es Linux. NOTAS IMPORTANTES: • • • • • Para la realización de la práctica deberá ingresar con el login: <alumno_nro_maq.>, por ejemplo <alumno62>. Luego seleccionar el ícono <común>, luego <Archivo>, <Abrir terminal>. Iniciamos de esta manera una sesión en Linux. Para realizar la presente práctica deberá crear directorios y archivos cuando se especifique. Se supone que esta familiarizado con los comandos básicos de Linux para el manejo de archivos y directorios (mkdir, cd, ls, pwd, cat,....). Lea atentamente el enunciado de las practicas (algunas dudas pueden resolverse tras una lectura correcta), realice los pasos sugeridos, intente razonar sobre el resultado y complete el cuestionario al final de cada ejercicio. Al finalizar la práctica, los alumnos deberán entregar el cuestionario completo. Si tiene algún problema que persista a pesar de los intentos por solucionarlo: consulte a los ayudantes de laboratorio siempre que estén libres. 77 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) 1. TELNET Telnet es una aplicación que permite la emulación de varios tipos de terminal, por lo cual se puede acceder a diferentes tipos de computadoras. Un usuario conectado a un host de una red, se puede conectar a cualquier otro host, utilizando la aplicación telnet. Telnet se usa como herramienta para la creación de aplicaciones cliente/servidor. De hecho, telnet es el soporte de las interacciones cliente/servidor en la transferencia de archivos, correo electrónico y la World Wide Web. La utilización de un cliente telnet es muy sencilla, basta con teclear: > telnet nombre_máquina A continuación se informa que se está realizando la conexión y se solicita un nombre de usuario (login) y una palabra clave (passwd) Opciones de la aplicación telnet: telnet [-d] [-a] [-n tracefile] [-e escapechar] [[-l user] host [port]] Los argumentos que merecen destacarse son los siguientes: • • • Debe ir acompañado del nombre de la máquina (host) Si se añade -l <nombre de usuario> la aplicación entra en el servidor con el usuario especificado. Después de la máquina se puede especificar el puerto (port) sobre el cual dialogar. También se puede colocar el protocolo, ya que telnet consultará el archivo /etc/services para averiguar el puerto al cual conectarse. Esta ultima opción de añadir el número de puerto, nos puede ser útil para acceder a los protocolos que corren sobre cada puerto de la máquina. Se sale de la sesión de telnet con <exit> o con <ctrl.-d>. Los servidores que atienden a los protocolos que corren en cada puerto se pueden ver en el archivo /etc/services: Protocolos interesantes para la realización de esta práctica serán: ftp smtp tftp pop-3 www www imap3 imap3 21/tcp 25/tcp 69/udp 110/udp 80/tcp 80/udp 220/tcp 220/udp mail http # WorldWideWeb HTTP # HyperTextTransferProt.imap3 # Interactive Mail Access # Protocol v3 78 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) Que debe interpretarse como: <Protocolo> <Puerto>/<Protocolo Red/Transporte que utiliza> <alias> #Comentario Ejercicio 1.1) Uso sencillo de la aplicación telnet • Conéctese con la máquina <hypercube> utilizando telnet. Ej: $ telnet hypercube. A continuación le pedirá un nombre de usuario (redes) y una contraseña (redesrin). Cuestionario 1.1: • • • ¿En qué directorio le deja telnet? ¿Por qué? ¿Qué usuarios están conectados a esa máquina? (Comando who) ¿Investigue por qué algunos servidores utilizan el protocolo TCP y/o el UDP? ¿A qué se debe esto?. Para ello, utilizar $ cat /etc/services • Desconectarse de la máquina <hypercube> utilizando exit. Ejercicio 1.2) Intente conectarse nuevamente, pero especificando el nombre de usuario con la opción –l. Ej: $ telnet –l redes hypercube. Cuestionario 1.2: !"¿Qué diferencia presenta con respecto a la conexión anterior del ejercicio 1.1.? • Desconectarse de la máquina <hypercube> utilizando exit. Ejercicio 1.3) Visualización del protocolo http desde el programa telnet El protocolo http utiliza los siguientes comandos: Comando Descripción GET Solicita leer una pagina Web HEAD Solicita leer la cabecera de una pagina Web PUT Solicita almacenar una pagina Web POST Añade a un recurso (ej. una pagina Web) DELETE Borra la pagina Web LINK Conecta a dos recursos existentes UNLINK Rompe una conexión existente entre dos recursos 79 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) • Conéctese a la máquina hypercube utilizando telnet sobre el puerto 80 (de http) $ telnet hypercube 80 >& paginaprincipal.html • Una vez conectado, consulte la página (comando GET). GET / HTTP/1.0 Lo que sigue al GET es "/" una indicación de que queremos consultar la página principal del Web. Y después, aparece la versión del protocolo HTTP que el navegador quiera utilizar. Nosotros nos vamos a conformar con el 1.0. El resultado no lo verá, porque lo estamos redireccionando a la salida estándar. Pero, después de salir de telnet, podrá consultar el archivo paginaprincipal.html utilizando un editor de texto. (Se puede visualizar utilizando $ cat paginaprincipal.html desde el intérprete de comandos. • • • • Salga de telnet <exit> Edite el archivo paginaprincipal.html Compárelo con lo que se consigue invocando la página con el navegador (Puede utilizar el netscape). Recuerde que el URL de la página es http://hypercube.frc.utn.edu.ar/ Abra otro navegador por ejemplo lynx hypercube.frc.utn.edu.ar. Es un navegador al estilo de Netscape pero a nivel texto únicamente. Compare los dos navegadores que tiene abiertos. ¿Qué diferencia presentan? Cuestionario 1.3: • • • ¿Existe alguna diferencia entre utilizar el navegador accediendo a la página vía el protocolo http y hacerlo accediendo al archivo que hemos salvado? telnet ¿Qué pasos daría para consultar con la página de duotronic.frc.utn.edu.ar? (Pruébelo y grabe la página en el archivo pag_duotronic.html,. Pruebe conseguir la cabecera (comando HEAD). Su sintaxis es similar a la del comando GET. Después debe añadir accept: */* en la línea siguiente. ¿Qué obtiene? (Puede verlo utilizando el navegador). 80 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) 2. FTP (File Transfer Protocol) Aplicación ftp ftp [-v] [-d] [-i] [-n] [-g] [host] Esta aplicación abre una conexión sobre el protocolo de su mismo nombre. FTP soporta un número limitado de tipos de archivos (ASCII, binary) y estructuras de archivos (byte stream, record oriented). El cliente ftp debe conectarse a un servidor de ftp de la siguiente forma: ftp <nombre del servidor> Donde el <nombre del servidor> puede ser el nombre de la máquina o su dirección IP. Una vez establecida la conexión, se pueden utilizar distintos comandos, muy parecidos a los de Unix, con ligeras variantes atendiendo a si los referimos o no a la máquina remota (si nos referimos a la máquina local, normalmente se comienzan con el prefijo l o se escapan con !). También podemos hacer referencia a si el comando es múltiple (se prefijan con la letra m). Un sumario de los comandos más utilizados es la siguiente tabla: Comando Descripción open pwd Abre una conexion ftp en una máquina (cerrando la existente) cd Cambio de directorio en la máquina remota lcd Cambio de directorio en la máquina local put Transfiere un archivo de la máquina local a la remota get Transfiere un archivo de la máquina remota a la máquina local mput Transfiere múltiples archivos de la máquina local a la remota. Permite utilizar caracteres auxiliares como *, para hacer referencia a 0 más caracteres (como en unix) mget Transfiere múltiples archivos de la máquina remota a la local. Permite utilizar caracteres auxiliares como *, para hacer referencia a 0 más caracteres (como en unix) ! Escapa a la shell local bin Indica que las transferencias se harán en modo binario (para archivos ejecutables o binarios en general) ascii Indica que las transferencias se harán en modo ascii (para archivos de texto) pass Para introducir el password en la máquina remota user Especifica el nombre del usuario en la máquina remota help Lista los comandos ftp El directorio de trabajo en la máquina remota 81 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) quit Abandona una sesión ftp Ejercicio 2.1) Uso sencillo de la aplicación ftp (intentaremos transferir un archivo denominado <nombres_nro_maquina> desde el directorio ftp_orig de nuestra máquina local a la máquina remota. Luego de la máquina remota transferiremos dicho archivo a la máquina local, pero en el directorio ftp_dest) !"En el directorio correspondiente a esta práctica, cree un directorio vacío llamado ftp_orig edite un archivo llamado nombres_<nro. de la máquina> (ej. nombres_62, nombres_63,...), que contenga sus nombres (nombre y apellidos) en dos filas (una por cada uno) y guárdelo en este directorio. !"Cree un directorio vacío en su home llamado ftp_dest !"Conéctese a la máquina hypercube utilizando ftp. !"Tome el archivo creado y transfiéralo a la máquina remota.. !"Compruebe con los comandos de ftp que está el archivo presente (en la máquina remota). !"Cambie su directorio de trabajo en la máquina local, ubicándose en el directorio ftp_dest. Transfiera ahora desde la máquina remota, el archivo nombres_nro_máquina al directorio ftp_dest de la máquina local. !"Compruebe que la transferencia se realizó correctamente. !"Salga de la sesión de ftp. Cuestionario 2.1: • • • ¿En qué directorio le deja ftp? ¿Por qué? ¿Qué comandos de ftp fueron necesarios para realizar los pasos de este ejercicio? ¿Existe alguna forma de comprobar en la máquina remota si está presente el archivo? ¿Y desde la máquina local? (Utilice comandos de ftp) • ¿Qué operación realiza el comando “!”? • ¿Cómo obtengo ayuda? • ¿En qué puerto actúa el protocolo FTP? Rta.: visualizar el archivo /etc/services Ejercicio 2.2) Visualización del protocolo ftp desde el programa telnet El protocolo ftp utiliza los siguientes comandos: Comando protocolo ABORT Descripción LIST filelist Lista archivos o directorios PASS password Password en el servidor remoto QUIT Sale del servidor remoto RETR filename Pide (retrieve) un archivo Aborta un comando FTP previo y cualquier transferencia de datos o directorios 82 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) LINK Conecta a dos recursos existentes UNLINK Rompe una conexión existente entre dos recursos Ejecutando ftp -d <máquina remota>, se nos trazan los comandos del protocolo que corresponden a los comandos del usuario (opción debuger). • Cambiarse al directorio ftp_orig. En él genere varios archivos vacíos denominados ar1.txt, ar2.txt y ar3.txt . • Dé los pasos que realizó en la práctica anterior, con el comando ftp -d <máquina remota>, intentando dejar todos los archivos en la máquina remota Cuestionario 2.2: • • • ¿Qué comandos del protocolo han generado los comandos de usuario? ¿Qué tendría que hacer para reproducirlo con la aplicación telnet? ¿Qué pasos tendría que dar si el archivo fuese un archivo ejecutable? 3. MAIL Aplicacion mail mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] toaddr... mail [-iInNv] -f [name] mail [-iInNv] [-u user] Esta aplicación, en realidad, es un mail user agent, o MUA, que hace de interfaz sencilla entre el usuario y otro agente para enviar el mensaje, llamado mail transport agent, o MTA. Comúnmente se envían los mensajes utilizando TCP/IP a través del protocolo Simple Message Transfer Protocol (SMTP), que normalmente se conecta con la máquina receptora directamente, negociando el mensaje a transferir con el demonio de SMTP de la parte remota. • Para enviar un mensaje se suele utilizar la aplicación mail de la siguiente forma: mail <dirección de correo> Subject: <Tema> <Mensaje> <Enter> . <Enter> cc: <direcciones a enviar copia> (La parte no negrita es generada por el programa, mientras que la parte negrita es lo que hay que teclear) 83 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) Si se quiere abortar un mensaje se pulsará <Ctrl-C> • Para consultar el buzón de correo, hay que invocar mail sin parámetros. Un sumario de los comandos de usuario que se pueden utilizar en este modo aparece a continuación (donde % indica el número de un mensaje (el anterior modo se puede conseguir con algunos de estos comandos). Comando h Parámetro % Descripción Muestra las cabeceras (headers) en la pantalla Muestra la cabecera actual sólo c Escribe mensaje(s) en la pantalla t % s <dirección> f % Reenvía (forward) un mensaje a % Responde mensaje(s) d % Borra mensaje(s) u % Deshace el borrado de mensaje(s) m % Mueve mensaje(s) a otro buzón k % Guarda (keep) menaje(s) después de salir r <buzón> Envía un mensaje Lee (read) un nuevo buzón n Va al próximo (next) mensaje y lo muestra b Realiza un backup al mensaje anterior y lo muestra g % Va a un mensaje específico, pero no lo muestra Sale del sistema de correo y actualiza el buzón e w % <fichero> Escribe el mensaje en el fichero especificado Ejercicio 3.1) Uso sencillo de la aplicación mail Recordamos que las cuentas de los alumnos tienen el siguiente formato: alumno_nro_maquina, donde nro_maquina es el nro. de máquina con la cual están trabajando. • • Enviarse a sí mismo un mail con Subject: Ejercicio 3.1 y con el siguiente mensaje: Este es un mensaje que tiene la finalidad de probar el programa de correo electrónico. Envíe este mismo mensaje 3 veces con los Subjects: Ejercicio 3.1.1, Ejercicio 3.1.2, Ejercicio 3.1.3. 84 Universidad Tecnológica Nacional – F.R.C Redes de Información (RIN) • • • • • Acceda con mail a su buzón. Borre el mensaje Ejercicio 3.1.2. Consulte el contenido del buzón. Y guarde los mensajes en su directorio de conexión correspondiente a la práctica y dentro de los archivos que se llamen Ej3.1.txt, Ej3.1.1.txt y Ej3.1.3.txt. Borre todos los mensajes, menos el primero. Salga del programa mail. Cuestionario 3.1: • • ¿Dónde deja el programa mail el buzón? ¿Por qué? ¿Qué comandos de usuario de mail ha necesitado para realizar los pasos de este ejercicio? Ejercicio 3.2) Visualizacion del protocolo smtp usando telnet Los comandos más significativos del protocolo smtp son los siguientes: Comando Parámetro Descripción MAIL FROM: <sender> Indica que queremos enviar un correo (especificar nuestra dirección de mail completa: con @) RCPT TO: <recipient> Indica el destinatario de nuestro mensaje (especificar la dirección de mail completa: con @) DATA <el mensaje> Mensaje que queremos enviar, terminado en una línea que sólo contenga un punto. QUIT <dirección> Salir de la conexión smtp Salvo la cabecera, todo se puede hacer utilizando estos comandos. Puesto que el puerto especificado para el smtp es el 25. Se puede acceder vía telnet de la siguiente forma: telnet bbs 25 A continuación se puede proseguir con los comandos que se han señalado en la tabla. Realizar los siguientes pasos: • • • Intente enviar un mensaje a algún compañero de la clase. Solicitar al docente una dirección de correo, si no obtiene ninguna, enviarle un mensaje a csanchez@bbs.frc.utn.edu.ar . Intente enviarse un mensaje a sí mismo. Compruebe lo que ha recibido con el programa mail. Cuestionario 3.2: ¿Qué comandos del protocolo smtp ha necesitado para este Ejercicio 3.2 ? Explique. 85