Tp 1 - LABORATORIO DE FTP

Anuncio
LABORATORIO DE FTP
PRESENTADO POR:
Diana Maritza Aragón
Marta Moreno
Luis Miguel Pérez
PRESENTADO A:
Marcelo Utard
Javier Bozzuto
ESCUELA DE GRADUADOS DE ELECTRÓNICA Y
TELECOMUNICACIONES
LABORATORIO DE TCP/IP
TABLA DE CONTENIDO
INTRODUCCIÓN
OBJETIVOS
1. FTP (File Transfer Protocol)
1.1. El modelo FTP
1.2. Servidor FTP
1.3. Cliente FTP.
1.4. Tipos de Acceso
1.4.1. Acceso Anónimo
1.4.2. Acceso Usuario
1.4.3. Acceso de Invitado
1.5. Modos de conexión del cliente FTP
1.5.1. Modo Activo
1.5.2. Modo Pasivo
1.6. Guía de comandos FTP
1.7. PLANIFICACIÓN FTP
1.8. EJECUCIÓN
CONCLUSIONES
INTRODUCCIÓN
Las redes de ordenadores se crearon para el intercambio de información y la
compartición de recursos. Aunque, utilizando el correo electrónico es posible el
intercambio de información, hay ocasiones en las que necesitamos mover archivos por
la red. Los nuevos estándares de correo nos permiten realizar esta operación, pero
existe un servicio especial en Internet dedicado a la transferencia de archivos entre dos
equipos.
El protocolo FTP es un protocolo de aplicación que promociona el uso compartido de
archivos, a través del uso de servidores remotos y a través del proceso
cliente/servidor. Este protocolo realiza de forma transparente al usuario las
variaciones de almacenar los archivos en diferentes ordenadores y transferir de
manera confiable los datos. Con este protocolo se intenta satisfacer las necesidades de
las estaciones de trabajo. Este protocolo utiliza conocimientos del protocolo de
transporte TCP (Transmision Control Protocol) y del protocolo Telnet.
Este tipo de protocolo define controles de acceso para el usuario para el uso de un
sistema y de los archivos que se encuentran allí. Asimismo, evita el uso no autorizado
de archivos. La conexión de control que utiliza para el intercambio de solicitudes y
respuestas sigue el protocolo Telnet entre el usuario y el servidor. Toda la
comunicación se que realiza es bidireccional para la transferencia de datos en un modo
y tipo especificados.
|/--------\|
||
||
----
----||Interfaz|<->|Usuario|
|\----^---/|
----
-------------|
|
|
|/------\| Ordenes FTP
|/----V---\|
||Server|<---------------->|
User ||
|| PI || Respuestas FTP ||
PI ||
|\--^---/|
|\----^---/|
|
|
|
|
|
|
|/--V---\|
Conexión
|/----V---\|
-----------------|Sistema |<-->|Server|<---------------->| User |<->|Sistema|
| de
|
||
||
de datos
||
|| |
de
|
|ficheros|
|| DTP ||
||
DTP ||
|ficheros|
---------|\------/|
|\--------/| ----Server-FTP
User-FTP
El intérprete de protocolo de usuario es el que inicia la conexión de control siguiendo
el protocolo Telnet. Las solicitudes las envía al servidor y las respuestas a esas
solicitudes se realizan a través de la conexión de control. Las solicitudes especifican
parámetros para la conexión de datos (puerto de datos, modo de transferencia, tipo
de representación, entre otros). El servidor inicia la conexión al puerto de datos
especificados. Cabe destacar que la conexión de datos se puede usar simultáneamente
para enviar y para recibir.
El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de red TCP/IP
al usuario, utilizando el puerto de red 20 y el 21. Un problema básico de FTP es que
está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima
seguridad, ya que todo el intercambio de información, desde el login y password del
usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto
plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este
tráfico, acceder al servidor, o apropiarse de los archivos transferidos.
Para utilizar este servicio necesita un cliente FTP, que es el que establece la conexión
con el programa servidor FTP situado en la máquina remota. Este indica al cliente la
máquina remota a la que quiere conectarse. Cuando se conecte a este tipo de
máquinas necesitará permiso para poder acceder a sus ficheros. Es decir, el servidor
FTP le solicitará un nombre de usuario (login) y una contraseña (password).
OBJETIVOS
Analizar y realizar el procedimiento que realiza el protocolo FTP entre dos equipos con
el fin de determinar todas las solicitudes y respuestas para el establecimiento de
sesión y para la transferencia de archivos entre estos equipos.
1.1. El modelo FTP
En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control
en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al
proceso servidor a través de la conexión de control. Las respuestas estándar se envían
desde el PI del servidor al PI de usuario por la conexión de control como respuesta a
las órdenes.
Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos,
modo de transferencia, tipo de representación y estructura) y la naturaleza de la
operación sobre el sistema de archivos (almacenar, recuperar, añadir, borrar, etc.). El
proceso de transferencia de datos (DTP) de usuario u otro proceso en su lugar, debe
esperar a que el servidor inicie la conexión al puerto de datos especificado (puerto 20
en modo activo o estándar) y transferir los datos en función de los parámetros que se
hayan especificado.
La comunicación entre cliente y servidor es independiente del sistema de archivos
utilizado en cada ordenador, de manera que no importa que sus sistemas operativos
sean distintos, porque las entidades que se comunican entre sí son los PI y los DTP, que
usan el mismo protocolo estandarizado: el FTP.
También hay que destacar que la conexión de datos es bidireccional, es decir, se puede
usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el
tiempo que dura la conexión FTP.
Figura 1.1. Conexión FTP.
1.2. Servidor FTP
Un servidor FTP es un programa especial que se ejecuta en un equipo servidor
normalmente conectado a Internet. Su función es permitir el intercambio de datos
entre diferentes servidores/ordenadores.
Por lo general, los programas servidores FTP no suelen encontrarse en los ordenadores
personales, por lo que un usuario normalmente utilizará el FTP para conectarse
remotamente a uno y así intercambiar información con él.
Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web, en
el que sus clientes utilizan el servicio para subir sus páginas web y sus archivos
correspondientes; o como servidor de backup (copia de seguridad) de los archivos
importantes que pueda tener una empresa.
1.3. Cliente FTP
Cuando un navegador no está equipado con la función FTP, o si se quiere cargar
archivos en un ordenador remoto, se necesitará utilizar un programa cliente FTP. Un
cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el
protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para
descargarlos o para subirlos.
Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el ordenador en
que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere
transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la
que se encuentra.
Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas
operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo, hay disponibles
clientes con opciones añadidas e interfaz gráfica
1.4. Tipos de Acceso
1.4.1. Acceso anónimo
Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios,
permiten acceder a sus archivos sin necesidad de tener un 'USERID' o una cuenta de
usuario. Es la manera más cómoda fuera del servicio web de permitir que todo el
mundo tenga acceso a cierta información sin que para ello el administrador de un
sistema tenga que crear una cuenta para cada usuario.
1.4.2. Acceso de usuario
Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del
servidor FTP, de modificación de archivos existentes, y de posibilidad de subir nuestros
propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el
servidor se guarda la información de las distintas cuentas de usuario que pueden
acceder a él, de manera que para iniciar una sesión FTP debemos introducir un login y
un password que nos identifica unívocamente.
1.4.3. Acceso de invitado
El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica
problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP
denominado invitado (guest), que se puede contemplar como una mezcla de los dos
anteriores.
La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario
conecte a la máquina mediante su login y su password, pero evitando que tenga
acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de
esta forma accederá a un entorno restringido, algo muy similar a lo que sucede en los
accesos anónimos, pero con más privilegios.
1.5. Modos de conexión del cliente FTP
FTP admite dos modos de conexión del cliente. Estos modos se denominan Activo (o
Estándar, o PORT, debido a que el cliente envía comandos tipo PORT al servidor por el
canal de control al establecer la conexión) y Pasivo (o PASV, porque en este caso envía
comandos tipo PASV). Tanto en el modo Activo como en el modo Pasivo, el cliente
establece una conexión con el servidor mediante el puerto 21, que establece el canal
de control.
1.5.1. Modo Activo
En modo Activo, el servidor siempre crea el canal de datos en su puerto 20, mientras
que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que
el 1024. Para ello, el cliente manda un comando PORT al servidor por el canal de
control indicándole ese número de puerto, de manera que el servidor pueda abrirle
una conexión de datos por donde se transferirán los archivos y los listados, en el
puerto especificado.
1.5.2. Modo Pasivo
Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP
abre un puerto efímero (cualquiera entre el 1024 y el 5000) e informa de ello al cliente
FTP para que, de esta manera, sea el cliente quien conecte con ese puerto del servidor
y así no sea necesario aceptar conexiones aleatorias inseguras para realizar la
transferencia de datos.
Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el
cliente debe enviar otra vez un comando de control (PORT o PASV, según el modo en
el que haya conectado), y el servidor recibirá esa conexión de datos en un nuevo
puerto aleatorio (si está en modo pasivo) o por el puerto 20 (si está en modo activo).
1.6. Guía de comandos FTP
COMANDOS Y ARGUMENTOS
Open servidor
ACCIÓN QUE REALIZA
Inicia una conexión con un servidor FTP
Close o disconnect
Finaliza una conexión FTP sin cerrar el programa
cliente.
Bye o quit
Finaliza una conexión FTP y la sesión de trabajo con
el programa cliente.
Cd directorio
Cambia el directorio de trabajo en el servidor
Delete archivo
Borra un archivo en el servidor.
Mdelete patrón
Borra múltiples archivos basado en un patrón que se
aplica el nombre.
dir
Muestra el contenido del directorio en el que
estamos en el servidor.
Get archivo
Mget archivos
hash
Obtiene un archivo.
Obtiene múltiples archivos.
Activa la impresión de caracteres # a medida que se
transfieren archivos, a modo de barra de progreso.
Lcd directorio
ls
prompt
Put archivo
Mput archivos
pwd
Cambia el directorio de trabajo local.
Muestra el contenido del directorio en el servidor.
Activa/desactiva la confirmación por parte del
usuario de la ejecución de comandos.
Envía un archivo al directorio activo del servidor.
Envía múltiples archivos
Muestra el directorio activo en el servidor.
Rename archivo
Cambia el nombre a un archivo en el servidor.
Rmdir directorio
Elimina un directorio en el servidor si ese directorio
está vacío.
status
!
? o help
Muestra el estado actual de la conexión.
Permite salir a línea de comandos temporalmente
sin cortar la conexión.
Muestra una lista de los comandos disponibles.
mkdir
Crea el directorio indicado de forma remota.
user
Para cambiar el nombre de usuario y contraseña sin
necesidad de salir de la sesión FTP.
Tabla 1.1. Guía de comandos FTP
1.7. PLANIFICACIÓN FTP
00-1A-73-85-B0-95
192.168.0.118
Marta
00-1D-D9-35-2C-9C
192.168.0.114
Diana1
Figura 1.2. Esquema de práctica.
1. Definir cuáles de los equipos son cliente y cuál será el servidor. Las tablas ARP
ya se encuentran llenas con la información de cada uno de los equipos que se
encuentran en la red.
2. El equipo principal tendrá un servidor FTP llamado FILEZILLA
3. El equipo cliente enviará una solicitud de establecimiento de sesión a través de
un mensaje SYN hacia el servidor.
4. El servidor responderá a ese mensaje a través de un ACK confirmando el
establecimiento de la sesión con el equipo cliente.
5. El equipo cliente enviará una solicitud vía comando de conexión hacia el
servidor FTP para iniciar sesión y eso será a través del puerto 21 y la dirección
IP del servidor.
6. El servidor FTP enviará una autenticación con un usuario y contraseña definidos
al puerto del cliente que será un valor mayor a 1024.
7. El cliente accederá al servidor autenticándose en el puerto 21. El cliente
accederá a las carpetas que el servidor permite dejar entrar. En la configuración
del servidor se define que carpetas o discos se quieren dejar a la vista del
cliente.
8. Es importante que el servidor FTP tenga claro la dirección IP del cliente para
poder asignarle todos los permisos ya que por defecto el servidor bloquea
cualquier dirección IP tanto para tráfico entrante como saliente.
9. Para realizar transferencia de archivos existen dos categorías que son: GET y
PUT.
10. El cliente podrá obtener un archivo del servidor a través del comando o
mensaje GET y el archivo que desea adquirir. El archivo recibido será
transferido a la carpeta en la que inicialmente se inició sesión, desde el cliente.
11. El cliente podrá enviar archivos hacia el servidor por medio del comando PUT y
el archivo que desea transferir, y será guardado en la carpeta que se comparta
para que los clientes puedan acceder.
12. Para un segundo escenario, se tendrá una autenticación fallida debido al
ingreso incorrecto de la contraseña.
13. Se tratará de obtener un archivo que no se encuentra en el servidor con el fin
de verificar el código de error que el servidor enviará al cliente.
1.8. EJECUCIÓN
- Primer Escenario
1. En las siguientes gráficas se puede observar la información de los equipos tanto del
servidor como del cliente. El servidor tendrá la dirección 192.168.0.118 y el cliente
tendrá una dirección 192.168.0.114.
Figura 1.3. Información del servidor
Figura 1.4. Información del cliente.
2. En estas gráficas podemos observar cómo en el servidor se debe crear una cuenta
de usuario para acceder a éste.
Figura 1.5. Interfaz grafica File Zilla
Asimismo, se establece la o las carpetas a la cual el cliente diana va a tener acceso.
Figura 1.6. Carpetas de acceso al cliente
Se definen los diferentes permisos de escritura, lectura, borrado sobre archivos y
directorios.
Figura 1.7. Permisos
3. Paquetes con los mensajes SYN y ACK
Figura 1.8. Captura con el establecimiento TCP.
4. Luego de ser llevado a cabo el proceso de autenticación, se debe establecer la
conexión entre el cliente y el servidor, en esta captura se puede observar los flags de
SYN y ACK. El cliente envía un flag de SYN al servidor, el servidor responde con un ACK
y al tiempo envía su flag de SYN hacia el cliente, por último el cliente le confirma al
servidor el establecimiento de la conexión con otro ACK. Todo este establecimiento se
lleva a cabo haciendo uso de la conexión de control. El puerto utilizado para el
establecimiento de la conexión es el puerto 21 por parte del servidor y un puerto
mayor a 1024 para el cliente.
Figura 1.9. Establecimiento TCP.
5. En este gráfico se observa la solicitud por parte del usuario hacia el servidor FTP
para comenzar la conexión.
Figura 1.10. Autenticación del cliente.
Figura 1.11. Puerto de control de FTP.
Se puede observar que para el establecimiento de la sesión de FTP se utiliza el puerto
21 en el servidor.
6. El servidor envía una solicitud al cliente solicitándole una autenticación con el fin de
verificar si es el usuario es el verdadero.
Figura. 1.12. Autenticación.
7. Acá se observa el puerto del cliente que utilizará para realizar este servicio y
asimismo el puerto 21 del servidor que permitirá el establecimiento a nivel de FTP.
Figura 1.13. Vista de la autenticación desde el servidor.
Figura 1.14. Captura de la autenticación
8. Podemos ver que durante el proceso de autenticación el cliente utiliza el puerto 21
para comunicarse con el servidor.
9. El cliente puede obtener un archivo del servidor a través del comando.
Figura 1.15. Función del get.
Figura 1.16. Proceso de obtención del archivo por parte del cliente.
Figura. 1.17. Captura get.
Se observa el establecimiento de la conexión entre el cliente y el servidor, el cliente
esta obteniendo del servidor el archivo llamado Medellín.pps
11. Asimismo, el cliente puede colocar archivos en las carpetas asignadas y permitidas
por el servidor.
Figura 1.18. Envío de un archivo hacia el servidor.
Figura 1.19. Proceso put en el servidor
Figura 1.20. Captura put
Figura 1.21. Carpeta donde se localiza el archivo enviado por el cliente.
Establecimiento de la conexión entre el cliente y el servidor, el cliente esta enviado al
servidor el archivo llamado HUYCOLOMBIAAA.pps. Se puede observar el intercambio
de paquetes entre el cliente y el servidor, durante el envío de los datos.
- Segundo Escenario
Escenarios en los cuales se obtiene errores.
12. Login con un usuario y contraseña incorrecta.
Figura 1.22. Ingreso de contraseña inválidos.
Figura 1.23. No acceso por parte del servidor
Podemos observar que el usuario ingresado no es correcto, por tanto no se puede
iniciar la sesión. Y que el servidor enviará una respuesta con un código de error
reflejando la autenticación fallida.
Figura 1.24. Captura de la respuesta por parte del servidor a la contraseña incorrecta.
13. Login correcto pero obteniendo un archivo que no existe.
Figura 1.25. Solicitando obtener un archivo inexistente.
Figura. 1.26. Respuesta por parte del servidor.
El servidor enviará una respuesta que refleja el hecho de un rchivo no encontrado y se
lo dará a conocer al cliente como error de flie not found.
Figura 1.27. File not found
- Códigos de respuesta por grupos funcionales
200 Orden correcta.
500 Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea
de orden demasiado larga.
501 Error de sintaxis en parámetros o argumentos.
202 Orden no implementada, no necesaria en este sistema.
502 Orden no implementada.
503 Secuencia de órdenes incorrecta.
504 Orden no implementada para ese parámetro.
110 Respuesta de marcador de reinicio. En este caso, el texto debe ser:
MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos
en el proceso de usuario y mmmm es el equivalente en el servidor
(atención a los espacios entre los marcadores y el "=").
211 Estado del sistema o respuesta de ayuda del sistema.
212 Estado del directorio.
213 Estado del fichero.
214 Mensaje de ayuda. Sobre cómo usar el servidor o el significado de
una orden particular no estándar. Esta respuesta sólo es útil para
una persona.
215 NOMBRE system type. Donde NOMBRE es un nombre de sistema
oficial de la lista que hay en el documento Números Asignados.
120 El servicio estará en funcionamiento en nnn minutos.
220 Servicio preparado para nuevo usuario.
221 Cerrando la conexión de control. Desconectado si procede.
421 Servicio no disponible, cerrando la conexión de control. Esta puede
ser la respuesta a cualquier comando si el servidor sabe que debe
finalizar.
125 La conexión de datos ya está abierta; comenzando transferencia.
225 Conexión de datos abierta; no hay transferencia en proceso.
425 No se puede abrir la conexión de datos.
226 Cerrando la conexión de datos. La acción sobre fichero requerida
ha sido correcta (por ejemplo, una transferencia o interrupción).
426 Conexión cerrada; transferencia interrumpida.
227 Iniciando modo pasivo (h1, h2, h3, h4, p1, p2).
230 Usuario conectado, continúe.
530 No está conectado.
331 Usuario OK, necesita contraseña.
332 Necesita una cuenta para entrar en el sistema.
532 Necesita una cuenta para almacenar ficheros.
150 Estado del fichero correcto; va a abrirse la conexión de datos.
250 La acción sobre fichero solicitado finalizó correctamente.
257 "NOMBRERUTA" creada.
350 La acción requiere más información
450 Acción no realizada. Fichero no disponible (por ejemplo, fichero
bloqueado).
550 Acción no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se
tiene acceso al mismo).
451 Acción interrumpida. Error local.
551 Acción interrumpida. Tipo de página desconocido.
452 Acción no realizada. Falta de espacio en el sistema de ficheros.
552 Acción interrumpida. Se ha sobrepasado el espacio disponible de
Almacenamiento (para el directorio actual).
553 Acción no realizada. Nombre de fichero no permitido.
- Códigos de respuesta por número.
110 Respuesta de marcador de reinicio. En este caso, el texto debe ser:
MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos
en el proceso de usuario y mmmm es el equivalente en el servidor
(atención a los espacios entre los marcadores y el "=").
120 El servicio estará en funcionamiento en nnn minutos.
125 La conexión de datos ya está abierta; comenzando
transferencia.
150 Estado del fichero correcto; va a abrirse la conexión de datos.
200 Orden correcta.
211 Estado del sistema o respuesta de ayuda del sistema.
212 Estado del directorio.
213 Estado del fichero.
214 Mensaje de ayuda. Sobre como usar el servidor o el significado de
una orden particular no estándar. Esta respuesta sólo es útil para
una persona.
215 NOMBRE system type. Donde NOMBRE es un nombre de sistema
oficial de la lista que hay en el documento Números Asignados.
220 Servicio preparado para nuevo usuario.
221 Cerrando la conexión de control. Desconectado si procede.
225 Conexión de datos abierta; no hay transferencia en proceso.
226 Cerrando la conexión de datos. La acción sobre fichero requerida
ha sido correcta (por ejemplo, una transferencia o interrupción).
227 Iniciando modo pasivo (h1, h2, h3, h4, p1, p2).
230 Usuario conectado, continúe.
250 La acción sobre fichero solicitado finalizó correctamente.
257 "NOMBRERUTA" creada.
331 Usuario OK, necesita contraseña.
332 Necesita una cuenta para entrar en el sistema.
532 Necesita una cuenta para almacenar ficheros.
350 La acción requiere más información.
421 Servicio no disponible, cerrando la conexión de control. Esta puede
ser la respuesta a cualquier comando si el servidor sabe que debe
finalizar.
425 No se puede abrir la conexión de datos.
426 Conexión cerrada; transferencia interrumpida.
450 Acción no realizada. Fichero no disponible (por ejemplo, fichero
bloqueado).
451 Acción interrumpida. Error local.
452 Acción no realizada. Falta de espacio en el sistema de ficheros.
500 Error de sintaxis, comando no reconocido. Esto puede incluir errores
como línea de orden demasiado larga.
501 Error de sintaxis en parámetros o argumentos.
202 Orden no implementada, no necesaria en este sistema.
502 Orden no implementada.
503 Secuencia de órdenes incorrecta.
504 Orden no implementada para ese parámetro.
CONCLUSIONES
-
Una causa importante en la que el cliente en algunas ocasiones no se puede
conectar al servidor FTP es debido a que el equipo se encuentra segurizado y
filtrando su tráfico a través del firewall.
-
FTP es una opción de transferencia de archivos que permite de alguna manera
mantener comunicación por un tiempo determinado hacia la información que
contiene el servidor.
-
Hoy en día se presentan muchas aplicaciones gráficas que permite que este
servicio sea mucho más dinámico y tener en entorno más amigable para el
cliente dirigiéndose al servidor.
Descargar