martes, 22 de noviembre de 2011

Respuesta Servidor FTP ante las peticiones de un Cliente


        
Comunicación Cliente-Servidor


           El servicio FTP es un servicio TCP y utiliza dos puertos para realizar su trabajo
           El número de puerto para las conexiones de datos y la forma en la que las conexiones son inicializadas varía dependiendo de si el cliente solicita los datos en modo activo o en modo pasivo.


Modo Activo


El cliente arranca e intenta conectarse contra el servidor. Para ello crea un canal de control desde cualquier puerto del cliente (puerto X) no privilegiado, es decir, mayor de 1024 hacia el puerto 21 del servidor.

Una vez que está establecida la conexión, se envía el comando PORT al servidor, para especificar el número de puerto que debe utilizar el cliente para crear la conexión de datos (puerto Y o X+1).

Para ciertas operaciones, es necesario realizar el envío de un fichero, por lo que se crea el canal de datos. Para ello el servidor crea una conexión física desde su puerto 20 hasta un número de puerto del cliente. Este número de puerto fue el que indicó el cliente a través del comando PORT (puerto Y o X+1). De este modo, el servidor establece el canal de datos por el que se transmite la información.

Este esquema que hemos visto es el denominado modo activo, porque es el servidor el que activamente crea el canal de datos. Con el crecimiento de las redes inseguras, tales como Internet, es muy común el uso de cortafuegos para proteger las máquinas cliente. Debido a que estos cortafuegos en el lado del cliente normalmente rechazan las conexiones entrantes desde servidores FTP en modo activo, se creó el modo pasivo.





Ejemplo:



     



Modo Pasivo:
En el modo Pasivo el cliente se conecta al servidor usando un puerto no privilegiado (el primero que  esté  libre mayor de 1024, llamémoslo X) al puerto 21 del servidor. Entonces el cliente le indica “quiero trabajar   en Modo PASIVO” (comando pass o pasv), el cliente se conecta desde su puerto Y o X+1 a un puerto que el servidor tenga disponible (Z).




Para ciertas operaciones, es necesario realizar el envío de un fichero, por lo que se crea el canal de datos. Para ello el cliente crea una conexión física desde uno de sus puertos (puerto Y o X+1) hasta un número de puerto del servidor. Este número de puerto fue el que indicó el servidor como respuesta del comando PASV (puerto Z). De este modo, el cliente establece el canal de datos por el que se transmite la información.

Como habréis visto, la principal diferencia es que en el modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el firewall no tiene ninguna conexión entrante que filtrar, y por lo tanto no existen problemas de bloqueo de conexiones.


Ejemplo:


   

                Las respuestas del servidor FTP garantizan su sincronización con el cliente. Por lo tanto, por cada comando enviado por el cliente, el servidor eventualmente llevará a cabo una acción y  enviará una respuesta.

            Las respuestas están compuestas por un código de 3 dígitos que indica la manera en la que el comando enviado por el cliente ha sido procesado. Sin embargo, debido a que el código de 3 dígitos resulta difícil de leer para las personas, está acompañado de texto.

                    
            
Los códigos de respuesta están compuestos por 3 números, cuyos significados son los siguientes:        
  -El primer número indica el estado de la respuesta (exitosa o fallida)
  -El segundo número indica a qué se refiere la respuesta.
 -El tercer número brinda un significado más específico (relacionado con cada segundo dígito).





Primer número
DígitoSignificadoDescripción
1yzRespuesta positiva preliminarLa acción solicitada está en progreso. Se debe obtener una segunda respuesta antes de enviar un segundo comando.
2yzRespuesta de finalización positivaLa acción solicitada se ha completado y puede enviarse un nuevo comando.
3yzRespuesta intermedia positivaLa acción solicita está temporalmente suspendida. Se espera información adicional del cliente.
4yzRespuesta de finalización negativaLa acción solicitada no se ha realizado debido a que el comando no se ha aceptado temporalmente. Se le solicita al cliente que intente más tarde.
5yzRespuesta negativa permanenteLa acción solicitada no se ha realizado debido a que el comando no ha sido aceptado. Se le solicita al cliente que formule una solicitud diferente.


Segundo número
DígitoSignificadoDescripción
x0zSintaxisLa acción tiene un error de sintaxis o sino, es un comando que el servidor no comprende.
x1zInformaciónÉsta es una respuesta que envía información (por ejemplo, una respuesta a un comando STAT).
x2zConexionesLa respuesta se refiere al canal de datos.
x3zAutenticación y cuentasLa respuesta se refiere al inicio de sesión (USUARIO/CONTRASEÑA) o a la solicitud para cambiar la cuenta (CPT).
x4zNo utilizado por el protocolo FTP.
x5zSistema de archivosLa respuesta se relaciona con el sistema de archivos remoto.



Códigos de respuesta por número.

110
Respuesta al 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.
120
El servicio estará en funcionamiento en nnn minutos.
125
La conexión de datos ya está abierta; comenzando transferencia.
150
Conexion abierta.
200
OK (Orden correcta).
202
Orden no implementada, no necesaria en este sistema.
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.
215
identificación del tipo de sistema.
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.
230
Usuario conectado, continúe.
250
La acción sobre fichero solicitado finalizó correctamente.
257
"path" creado.
331
Usuario OK, necesita contraseña.
332
Necesita nombre de cuenta.
350
La acción requiere más información. Pendiente
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.
502
Orden no implementada.
503
Secuencia de órdenes incorrecta.
504
Parámetro incorrecto para esa orden.
530
No está conectado.
532
Necesita una cuenta para almacenar ficheros.
550
Acción no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se tiene acceso al mismo).
551
Acción interrumpida. Tipo de página desconocido.
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.




Ejemplo de una Conexión entre el Cliente y el Servidor FTP:


Aquí podemos ver las respuestas que un Servidor FTP realiza tras cada petición del cliente.

-Ejemplo de una Conexión FTP en Linux:



-Ejemplo de una Conexión FTP en Windows usando "Filezilla Client":



Modo Pasivo:

Como hemos visto en el modo pasivo (PASV) a diferencia del modo activo (PORT) el pc cliente es el que siempre abre las conexiones usando el mismo puerto para transferir datos como comandos.




Descarga ficheros:










Fuentes:


Imágenes:

-http://t0.gstatic.com/images?q=tbn:ANd9GcSkRzMsUYyAYAd6O4bVYkd_7Iu69jTLAIBw7MO9ABe6Qg2ej9SsO1P7PBzoRA

-http://descargartodo.com/wp-content/plugins/wp-o-matic/cache/3_fzp.jpg

No hay comentarios:

Publicar un comentario