Presentacion FTP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 39

CAPA DE APLICACIÓN

La más cercana al usuario…


El usuario no interactúa directamente con el
Capa de aplicación nivel de aplicación. Suele interactuar con
programas que a su vez interactúan con el
nivel de aplicación pero ocultando la
complejidad subyacente.

La capa de aplicación ofrece servicios a las


aplicaciones. Una sola aplicación puede
utilizar varios servicios de la capa de
aplicación.
La capa de aplicación depende de las capas
subyacentes para comunicarse en red.

Los protocolos de la capa de aplicación


definen las reglas para la comunicación
entre las aplicaciones.

La capa de aplicación es responsable de


intercambiar información entre las
aplicaciones y los servicios de red
subyacentes.
Capa de aplicación Protocolos, servicios y Aplicaciones

Protocolos Aplicaciones

Proporcionan las reglas para


Son aquellos programas que
la comunicación entre
utiliza el usuario final para
programas.
comunicarse con la red.

Programas en segundo plano que


proporcionan: conexión entre las capa
Servicios de aplicación y las capas inferiores,
cuestiones sobre la representación de
datos, semántica del mensaje.
Transmitir datos usando capas de
Capa de aplicación. red TCP/IP.

La capa de aplicación genera un mensaje. Este mensaje se


envía a la capa de transporte.

La capa de transporte agrega el encabezado


TCP o UDP. Los segmentos/datagramas se
envía a la capa de red. (Id. de Puerto)

La capa de red agrega un encabezado


(dirección IP). Este paquete se envía a
la capa de enlace de datos.

Capa de enlace de datos agrega


un encabezado (dir. MAC).

La trama se
envía luego a
la capa física
para transmitir
los bits
Capa de aplicación. Interacción con SO
Relación con la capa de transporte
Los protocolos de la capa de aplicación se apoyan en la capa de transporte
para enviar y recibir datos. En la siguiente figura se muestran algunos de
los protocolos TCP/IP de la capa de aplicación más conocidos y el
protocolo de la capa de transporte sobre el que se apoyan.
Algunas aplicaciones comunes.
 FTP - Protocolo de transferencia de archivos) para
transferencia de archivos.
 DNS - Sistema de nombres de dominio.
 DHCP - Protocolo de configuración dinámica de anfitrión.
 HTTP - Protocolo para acceso a páginas web.
 POP - Protocolo para recuperación de [correo
electrónico].
 SMTP - Protocolo para envío de correo electrónico.
 TELNET- Protocolo para para acceder a equipos
remotos.
 XMPP- Protocolo estándar para mensajería instantánea.
FTP
PROTOCOLO DE TRANSFERENCIA DE ARCHIVOS
¿Qué es FTP?
FTP es un protocolo de la capa de aplicación en los modelos
OSI y TCP/IP.

FTP fue diseñado para ofrecer


servicio estándar de transferencia
de archivos entre sistemas
conectados a redes.
Objetivos del Protocolo FTP
 Promocionar el uso compartido de ficheros.
 Animar al uso indirecto o implícito (a través de programas)
de servidores remotos.  Modelo Cliente-servidor
 Transferencia de datos fiables (sin errores).
 TCP como protocolo de transporte.
¿Qué características tiene FTP?

 Arquitectura cliente/servidor.
 Confiable. (TCP como protocolo de transporte)
 Transferencia de ARCHIVOS de cualquier tipo y tamaño.
 Independiente del Sistema Operativo y del Hardware.
 Bidireccional. Permite cargar o descargar archivos.
 No es seguro.
Un poco de historia…y presente
En el mundo de la vida rápida de Internet, el protocolo FTP
no es antiguo, es súper antiguo!!!.
Los primeros borradores del protocolo FTP se remontan a 1971
(antes de la aparición de TCP/IP). Las especificaciones actuales son de
1985. RFC -959
FTP no ha cambiado y se mantiene vigente. De hecho, es
uno de los servicios para el intercambio de archivos y
alojamiento web más utilizado en el mundo, aunque no lo
veamos.
El concepto de cargar, transferir y descargar
¿Por qué será? archivos de manera remota se mantiene.
La llegada del boom de internet y de otras aplicaciones han hecho que el usuario
común no utilice FTP directamente. Pero para los desarrolladores de sitios web, se
tratará de una herramienta esencial.
Modelo FTP
Modelo FTP- Componentes
 Interfaz de usuario. Para la comunicación con el
usuario final. Puede ser bajo un entorno gráfico
o en línea de comando.
 Intérprete de Protocolo (PI). Es un proceso de
control. Parte del software de FTP en ambos
extremos encargado de la administración de la
conexión de control. Se encarga de interpretar
los comandos y respuestas. Actúa en función de
ellos.
 Función de transferencia de datos (DTP). Es un
proceso invocado por el PI cada vez que se
precisa trasferir datos.
Modelo FTP-Canales de conexión
FTP utiliza dos conexiones
TCP como canales lógicos de
conexión entre Servidor y
procesos de usuario (PI y
DTP). Le agrega complejidad
pero lo hace más flexible.

 La Conexión de Control: se crea al establecer la sesión FTP y se usa para


intercambio de información de control. Se intercambian comandos y respuestas.
Es bidireccional. Los PI se comunican sobre esta conexión y gestionan el
intercambio de datos, creación de archivos, autenticación. La conexión de control
debe permanecer abierta mientras la transferencia de datos se esté llevando a
cabo.
 La Conexión de Datos: se crea cada vez que se intercambian datos entre Cliente y
Servidor, finalizando al terminar el envío de un archivo. Es bidireccional. No está
activa todo el tiempo. Los DTP se comunican sobre esta conexión. Se establece a
demanda.
FTP-Funcionamiento
 Primero debe establecerse una conexión TCP  Conexión de Control.

El Usuario inicia la conexión mediante la apertura de una conexión TCP sobre


este puerto, desde un puerto efímero.
El Servidor asume un rol pasivo en este contexto, escuchando en un puerto
bien conocido: puerto 21.
 El usuario debe iniciar una sesión con el servidor para poder transferir
archivos. Proceso de autenticación (secuencia de login FTP), para obtener un
entorno de trabajo permitido (control de tipo de acceso) y usar los recursos
permitidos dentro del Servidor  El Usuario puede comenzar a enviar
comandos y recibir respuestas de autenticación.
 El Usuario puede comenzar a enviar comandos y recibir respuestas del servidor
por medio de este canal. El Usuario y el servidor de comunican para establecer
sobre que puerto se realizará la transferencia de archivos.
 Se abre el canal de transferencia de datos.  Conexión de datos
FTP-Proceso de autenticación
El proceso de autenticación original es bastante primitivo. Se trata del
intercambio de un nombre de usuario y una contraseña texto plano, sin
cifrar. Es un proceso de una sola vía. Sólo el cliente se autentifica.
El usuario se identifica con el comando USER y, si el servidor lo reconoce
envía un código 331, solicitando la contraseña.
El usuario envía su contraseña con el comando PASS. Si la respuesta es
positiva el servidor envía el código 230, con un mensaje de usuario
logueado, indicador de que se puede comenzar la sesión.
USER: xxxxxxxx
En la RFC 2228 se
331 ( solicitud de pass) publicó una serie
de extensiones
PASS: xxxxxx
que ofrecen
autenticación más
230 - Logueado segura y cifrado.
FTP-Permisos y facilidades
 Permisos personalizados. Durante la sesión, el usuario podrá ejecutar
los comandos que el servidor le autorice, de acuerdo al control de
acceso que se haya establecido por parte de un administrador.
El servidor puede manejar diferentes permisos por usuarios. Control
de acceso (definen los privilegios de acceso del usuario.)
Este intercambio se realiza sobre la conexión de control, entre los PI.
El servidor puede dar acceso a lectura, descarga, borrado, etc.
 Acceso interactivo, que permite al usuario, entre otras cosas, listar
archivos de un directorio o máquina. FTP provee un help para todos
los comandos disponibles al usuario.
 Especificación de Formatos, de tal manera que el usuario puede
trabajar especificando si un archivo es de texto o binario.
 La transferencia de archivos provista por FTP permite copiar archivos
completos entre sistemas.
FTP-Modos de conexión.
Modo activo: en el servidor se utilizan los
puertos 21 (control) y 20 (datos) , el cliente
utiliza dos puertos efímeros. El comando de
PORT
petición es PORT.
El servidor abre la conexión del canal del datos
sobre el puerto indicado por el cliente.

Modo pasivo: el servidor utiliza el puerto 21


(control) y un puerto efímero como puerto de
datos. El cliente utiliza dos efímeros. Comando PASV

de petición es PASV.
El cliente abre la conexión de datos sobre un
puerto que le indica el servidor.
Modos de conexión
El servidor abre la
conexión del canal del
datos desde el puerto
20 sobre el puerto
indicado por el cliente
puerto: 1501.

El cliente abre la
conexión de datos
desde un puerto
efímero (puerto 1501)
sobre un puerto que le
indica el servidor
(puerto 2325)
Modos de conexión- ACTIVO
Modo activo: se establecen dos conexiones
distintas.
 En primer lugar se establece una conexión
para la transmisión de comandos (desde
cualquier puerto efímero del cliente hacia el
puerto 21 del server) y por esa misma
conexión, mediante un comando PORT se
indica al server cuál es el puerto (distinto) de
nuestro ordenador que está a la escucha de
los datos.
 Entonces, si bajamos algún archivo, es el
servidor el que inicia la transmisión de datos,
desde su puerto 20 al puerto que le hemos
indicado.
 Se llama modo activo porque la transmisión
de datos es iniciada como proceso distinto
desde el servidor, hacia el puerto que le
hemos indicado.
Modos de conexión- ACTIVO. Problemas
Firewall bloqueante.

La presencia de un firewall en el cliente bloquea el intento de


comunicación entre servidor y cliente, ya que el servidor utiliza un
puerto diferente de la primera conexión.
El servidor desea abrir un puerto del cliente. El hecho que el
servidor inicie una conexión sobre el cliente tiene implicaciones de
seguridad en cuanto al filtrado de los puertos.
Modos de conexión- PASIVO
Modo pasivo. En este modo el cliente
inicia las dos conexiones sobre el
servidor.
Cuando inicia una conexión FTP, el
cliente abre dos puertos efímeros
localmente.
El primer puerto contacta el puerto
21 del servidor, pero en vez de editar
el comando PORT, se edita el
comando PASV.
Como resultado del mismo, el
servidor abre un puerto efímero
aleatorio y envía el comando PORT P
al cliente. De este modo, el cliente
inicia la conexión desde el port N+1 al
port P en el servidor para la
transferencia de datos
Modo de conexión- PASIVO. Problemas
Firewall no bloqueante.

El firewall no bloquea el intento de comunicación entre el servidor


y el cliente, ya que ha sido el cliente quien inició la conexión
ambas veces.
El problema de vulnerabilidad se traspasa al servidor.
FTP-Modos de transferencia de archivos.
FTP define tres modos de transferencia que especifican la manera en que los datos se
transmiten sobre el canal de datos:
 En el modo flujo (stream) se transmite un flujo de bytes sin estructura. Los datos no
tienen formato de mensaje, por lo que el final se indica directamente cerrando la
conexión. Se trata del modo default . Es sencillo y eficiente..
 En el caso de transmisión por bloques (block) , cada bloque lleva un encabezado de tres
bytes con información sobre el contenido y su longitud. Se trata de un caso de
transferencia, que precisa de algoritmos especiales para llevar el registro de los bloques
transmitidos, para poder re-comenzar en el caso de interrupciones.
 El modo comprimido (compressed) acorta la longitud del mensaje mediante un algoritmo
y luego lo transmite por bloques con encabezados. Obsoleto.
En el caso de transmitir en el modo más usado, por flujo de bytes, FTP no entiende de la
estructura de los datos transmitidos y, en cierto tipo de archivos, esto puede generar
problemas, debido a diferencias de representación entre sistemas operativos. Por ejemplo,
un archivo de texto tiene marcados los finales de línea de manera diferente según el
Sistema Operativo: en Unix se usa el carácter de alimentación de línea LF (Line Feed) y
Windows la combinación de ambos CR+LF. El problema surge cuando se transfieren este
tipo de archivos entre distintos Sistemas Operativos
Comandos FTP
El cliente envía al usuario determinadas órdenes o comandos mediante los
cuales se especifican:
 Identificadores para el control de acceso: USER (nombre de usuario), PASS
(password ) , ACCT (cuenta), etc
 Parámetros de la transferencia de datos: MODE (modo) que especifica
cómo se transmiten los bits de datos, STRU (estructura) , TYPE, que se
usan para definir la forma de representación de los datos, PORT que
especifica el puerto de datos en el cliente, PASV que especifica el modo de
conexión, etc
 Interacción con el servidor: especifican acciones a ejecuta sobre los datos.
Ej: STOR (almacenar ), RETR (recuperar), LIST (listar), RNFR (Renombrar de),
RNTO (Renombrar a), ABOR (Interrumpir), etc
Se envían a través de la conexión de control en NVT ASCII . En algunos casos hay
una relación directa entre los comandos que escribe el usuario y los que se
transmiten por la conexión de control, pero en otras oportunidades un sólo
comando de usuario genera múltiples comandos FTP.
Comandos FTP
Los comandos más conocidos de C  S son:

Comando Descripción
ABOR Aborta comandos FTP y cualquier transferencia de datos
LIST filelist Lista archivos o directorios.
PASS password Password en el S.
PORT n1,n2,n3,n4,n5,n6 Dirección IP y port de C.
QUIT Logoff del S.
RETR file Get un archivo.
STOR file Put un archivo.
SYST S retorna tipo de sistema
TYPE type Especificar tipo de archivo: A o I.
USER username Nombre de Usuario en S
Comandos para transferencia
Respuestas FTP
Son números de tres dígitos en ASCII, seguidos de un mensaje opcional,
este último para interpretación entendible para el usuario ya que los
Clientes generalmente presentan al usuario tanto el número como su
interpretación.
Respuesta Descripción

1yz; 125 Data Connection already open; transfer starting Respuesta preliminar positiva. La acción se está comenzando pero se
espera otra respuesta antes de enviar otro comando.
2yz; 200 Command OK, 214 Help message, 221 Goodbye Respuesta de completitud positiva. Puede enviarse un nuevo comando

3yz; 331 Userneme OK, password required Respuesta intermedia positiva. El comando se ha aceptado pero debe
enviarse otro.
4yz; 425 Can’t open data connection, 452 Error writing file Respuesta de completitud negativa transitoria. La acción requerida no
tuvo lugar, pero la condición de error es temporaria tal que el comando
puede reeditarse más tarde.
5yz; 500 Syntax error (unrecognized commands), 501 Syntax Respuesta de completitud negativa permanente. El comando no se
error (invalid arguments), 502 Unimplemented MODE type. aceptó y no se debería reintentar.

X0z Errores de Sintaxis

X1z Información

X2z Conexiones. Las respuestas se refieren a las conexiones de control o de


datos.
X3z Autenticación y accounting. Respuestas para los comandos de login o
accounting.
X4z No especificado.

X5z Estado del Sistema de Archivos.


Cliente FTP. ¿Qué es un cliente FTP?
Un cliente FTP es un programa que emplea el protocolo FTP para
conectarse a un servidor FTP para transferir archivos.
Cliente FTP de consola, integrado al sistema
operativo. En este caso se interactúa mediante
comandos en consola.

Cliente FTP avanzados. Programas que se pueden descargar y que disponen de


mayores funcionalidades. Ej: FileZilaa, CuteFTP, WSS FTP, Coffe Cup, CoreFTP.

Cliente integrados al navegador web.

Clientes integrados al explorador de windows


Servidor FTP. ¿Qué es un servidor FTP?
Un servidor FTP es un programa especial que se ejecuta en un
servidor (máquina) conectado normalmente en Internet (aunque
puede estar conectado en otros tipos de redes, LAN, MAN, etc.).
Existen:
 Servidor FTP online. Son servidores externos que proporcionan
espacio de almacenamiento. Hay pagos y gratuitos. El
proveedor del servicio nos brindará un usuario y contraseña.
 Servidor FTP montado sobre una máquina. Se puede obtener
un servidor FTP gratuito y montarlo sobre cualquier PC.
Habitualmente son PC dedicadas sólo a esa función. Deben
permanecer siempre encendidas.
Aplicaciones reales.
Seguridad en FTP
El Protocolo de transferencia de archivos (FTP) definido en la RFC
959 (original) presenta distintas vulnerabilidades a nivel de
seguridad.
 Autenticación de usuarios. Utiliza nombres de usuario y
contraseñas pasados ​en texto sin cifrar. Esto representa un
riesgo de seguridad por el cual las contraseñas pueden ser
robadas a través del monitoreo de redes. Esto posibilita que
posibles atacantes accedan a los archivos.
 Autenticación y verificación de comandos y respuestas. No hay
medios para decidir si los comandos y respuestas son los
enviados por el cliente y servidor. Un atacante activo puede
iniciar transferencias de archivos espurios hacia y desde un sitio
de elección del atacante, y puede invocar otros comandos en el
servidor.
 Canal de datos sin protección.
Actualizaciones del protocolo.
• RFC 2428 (1996). Especificaciones para del protocolo FTP para
NAT e IPV6.
• RFC 2228 (1997) . Especificaciones para extensiones de
seguridad y cifrado. FTPS (FTP seguro) Conlleva el uso de un
protocolo de cifrado SSL/TLS debajo del protocolo estándar FTP
para cifrar los canales de control y/o datos.
(Provee seguridad a nivel de capa de transporte para que la
transferencia de datos sea encriptada).
FTP- Captura. Ejemplos de análisis
Captura capa
aplicación

Accediendo al servidor
desde el cliente FTP
del navegador
FTP- Captura. Ejemplos de análisis
Captura capa
Accediendo al servidor desde consola.( cliente aplicación
FTP integrado al S.O)

256*193+100 = 49508
(Puerto)

¿Qué diferencias aprecian?


FTP- Captura. Ejemplos de análisis
Captura a nivel TCP

¿Qué modo de conexión


se implementa?
Ventajas
FLEXIBLE
 No depende del sistema operativo y pueden ser distintos entre cliente y servidor.
 No está condicionada a contratos de terceros.
 No está condicionada a tipos de archivos y tamaños.
 Permite a los clientes especificar el formato de descarga de los archivos (binario,
ASCII).
 Las últimas versiones de FTP nos permiten además reanudar aquellas descargas que
nos hayan quedado a medias, pudiendo pausar y continuar la transferencia cuántas
veces necesitemos.
 Es de fácil acceso. Clientes FTP integrados al S.O, clientes sobre el navegador web,

CONFIABLE
 Utiliza TCP como soporte de transporte.

Desventajas
INSEGURO. Intercambio en texto plano.
Hay nuevas versiones de protocolo que agregan mayor seguridad. FTPS
Actividad Propuesta.
 Conectarse a un servidor FTP desde:
 Consola. ¿Tuvieron algún problema?
 Utilizando el cliente disponible en el navegador Web.
 Utilizando el navegador disponible en el explorador de
windows.
Datos del servidor FTP. 190.124.173.252
 Configurar un servidor FTP. Debe admitir modo pasivo y
activo. IP pública: _______ Puertos efímeros:_______
Puerto de escucha: ________
 Cargar un archivo .doc con las capturas de pantalla del
servidor configurado. Sobre el mismo archivo debe
aclarar las modificaciones que debe hacer en el router y
el firewall.

También podría gustarte