Vous êtes sur la page 1sur 13

EL PROTOCOLO FTP

1. Introduccin
2. Servidores FTP
3. Los Comandos Internos de FTP
3.1.rdenes de Control de Acceso
3.2.Parmetros de Transferencia
3.3.Comandos de Servicio
4. Modos de Operacin
4.1.Modo Activo
4.2.Modo Pasivo
5. Cdigos de Respuesta
6. Comandos FTP

1. INTRODUCCIN.
El Protocolo FTP (File Transfer Protocol) es uno de los primeros que se empez a explotar
en redes TCP/IP. Aporta la funcionalidad de conectarse de forma remota a un servidor
FTP y realizar con l intercambio de ficheros.
Al principio de la era Internet, era un protocolo muy utilizado, pero hoy en da, no es as,
pues existen otros protocolos ms jvenes (como el http), con los que se puede realizar la
funcin de la transferencia de ficheros, de forma sencilla y segura. An as, actualmente,
FTP es muy til en determinados escenarios de uso, como el de almacn pblico de
datos.
FTP est pensado para ser usado en Internet, utiliza TCP como protocolo de transporte,
lo que le aporta control de errores en las comunicaciones.
Existe otro protocolo similar, llamado TFTP (Trivial File Transfer Protocol), que est
pensado para su uso dentro de redes locales fiables. Este ltimo utiliza un sistema de
control ms sencillo y usa UDP como protocolo de transporte, que no implementa control
de errores.
FTP es un protocolo muy sencillo, que carece de seguridad. Es decir, los comandos de
control, los datos de login (usuarios y contraseas), y los datos viajan por la red en texto
plano, sin codificar. Esto hace que sea posible el sniffing de los mismos, provocando un
agujero de seguridad en el servidor.

2. SERVIDORES FTP.
Existe una gran diversidad de servidores FTP para UNIX/Linux:

WUFTPD:http://www.wuftpd.org/

ProFTPD: http://www.protftpd.org/

NcFTPD: http://www.ncftpd.com/

BSDFTPDSSL:http://bsdftpdssl.sc.ru/

MuddleFTPD: http://www.nongnu.org/muddleftpd/

TrollFTPD: http://www.troll.no/freebies/ftpd.html

SurgeFTP:http://www.netwinsite.com/surgeftp/

VSFTPD: http://vsftpd.beasts.org/

Evidentemente, no todos estos servicios FTP son iguales... si bien es cierto que todos
cumplen el protocolo FTP original, algunos de ellos incorporan funcionalidades aadidas,
como el cifrado de las comunicaciones, compatibilidad con IPv6, multihilos...
De la lista anterior, cabe destacar tres servicios:

WUFTPD:

Es el daemon FTP de la Universidad de Washington, es muy antiguo y tiene importantes


problemas de seguridad. Ha sido muy utilizado, pero no es recomendable hoy en da.

ProFTPD:

Es ms moderno que el anterior, es ms potente y ms seguro. Puede incorporar cifrado.


Es muy recomendable y est constantemente actualizado y revisado.

VSFTPD (Very Safe FTPD):

Compatible con IPv6, cifrado SSL, multihilo... Es muy moderno, hace especial hincapi en
la seguridad y es muy eficiente y muy rpido. Muy recomendable.

3. LOS COMANDOS INTERNOS DE FTP.


Las directivas (rdenes) de FTP se dividen en tres tipos:
3.1. rdenes de Control de Acceso.
3.2. Parmetros de Transferencia.
3.3 Comandos de Servicio.
3.1

RDENES DE CONTROL DE ACCESO

USER (nombre de usuario)


El argumento es una cadena de caracteres que identifica al usuario. Esta identificacin es
la que requiere el servidor para acceder a su sistema de ficheros.
Normalmente esta ser la primera orden a transmitir una vez establecida la conexin. El
servidor puede requerir informacin adicional como una contrasea o cuenta. Los
servidores pueden permitir una nueva orden USER durante la conexin para cambiar el
control de acceso o la informacin de la cuenta. Esto permite continuar una misma sesin
con otra identidad.

PASS (contrasea)
El argumento es una cadena de caracteres contrasea del usuario. Esta orden debe
seguir inmediatamente a la orden USER y, completa la identificacin del usuario para el
control de acceso.

ACCT (account, cuenta)


El argumento es una cadena Telnet identificando la cuenta del usuario. Esta orden no
est necesariamente relacionada con la orden USER, ya que algunos ordenadores
pueden requerir una cuenta para acceder y otros slo para cierto tipo de acceso, como
almacenar ficheros. En este ltimo caso, la orden se puede enviar en cualquier momento.
Hay cdigos de respuesta para diferenciar automticamente estos casos: cuando se
requiere informacin de la cuenta, la respuesta a una orden PASS correcta es el cdigo
332. Por Otra parte, si NO se requiere esta informacin, la respuesta a una orden PASS
correcta es 230.

CWD (Cambio de directorio de trabajo)


Esta orden permite al usuario trabajar en un directorio o conjunto de datos diferente.

CDUP (Cambio al directorio padre)


Versin simplificada de CWD, para subir de directorio.

SMNT (Montar directorio)


Permite al usuario montar un sistema de ficheros diferente sin alterar la informacin de
entrada o de cuenta. Los parmetros de transferencia permanecen sin cambios. El
argumento es un nombre de ruta especificando un directorio o alguna otra agrupacin de
ficheros dependiente del sistema.

REIN (Reinicializar)
Termina una sesin de USER, descargando todos los datos del entrada/salida y la
informacin de cuenta, excepto que si hay alguna transferencia en proceso permite que
termine.
Todos los parmetros se inician con sus valores por defecto y la conexin de control se
deja abierta. El estado alcanzado es idntico al que se tiene inmediatamente despus de
abrir la conexin de control.

QUIT (Salir)
Termina una sesin de USER y si no hay en proceso ninguna transferencia, cierra la
conexin de control. Si hay una transferencia de fichero en proceso, la conexin
permanecer abierta hasta que el servidor enve una respuesta con el resultado de la
transferencia y luego se cierra.
3.2

PARMETROS DE TRANSFERENCIA (NO USUALES)

PORT (Puerto de datos)


Especificacin del ordenadorpuerto, para el puerto que ser usado en la conexin de
datos. Hay valores por defecto, y bajo circunstancias normales, esta orden y su respuesta
no son necesarias. Si se usa esta orden, el argumento es la unin de una direccin IP (32
bits) y un puerto TCP (16 bits).
PASV (Pasivo)
Solicita al servidor que escuche en un puerto de datos distinto del puerto por defecto, y
espere a recibir una conexin en lugar de iniciar una al recibir una orden de transferencia.
La respuesta a este comando incluye la direccin IP y el puerto donde este servidor est
esperando a recibir la conexin.

TYPE (tipo de representacin)


Especifica un tipo de representacin: A ASCII E EBCDIC I Imagen L tamao de byte
STRU (Estructura de fichero)
Un nico carcter Telnet especificando una estructura de fichero de las descritas en la
seccin Representacin de Datos y Almacenamiento: F (Fichero, sin estructurar en
registros); R (Estructurado en registros); P (Estructurado en pginas). La estructura por
defecto es Fichero.
MODE (Modo de transferencia)
Un nico carcter Telnet especificando un modo de transferencia: S (Flujo); B (Bloque); C
(Comprimido).
3.3

COMANDOS DE SERVICIO.

RETR (Recuperar)
Hace que el servidor FTP transfiera una copia del fichero especificado en el nombre de
ruta.
STOR (Almacenar)
Hace que el servidor lea los datos transferidos por la conexin de datos y los guarde en
un fichero en el servidor. Si el fichero especificado en el nombre de ruta existe en el
servidor, su contenido se debe reemplazar con los datos recibidos. Se crea un fichero
nuevo en el servidor si el indicado no exista ya.
STOU (Almacenamiento Unico)
Igual que STOR slo que el fichero resultante se crea en el directorio actual con un
nombre nico para ese directorio.
APPE (Aadir)
Si el fichero especificado en el nombre de ruta existe, los datos se aaden a ese fichero;
si no, se crea un fichero nuevo en el servidor.
ALLO (Solicitar espacio)
Reserva suficiente espacio de almacenamiento en el servidor para recibir el nuevo fichero.
A continuacin de esta orden se deber indicar una orden STOR o APPE.

REST (Recomenzar)
El argumento representa un marcador del servidor a partir del cual debe recomenzar la
transferencia. La orden no realiza la transferencia del fichero, pero hace que el puntero de
lectura o escritura del fichero se site a continuacin del punto indicado.
A continuacin de esta orden se debe enviar la orden de servicio FTP apropiada que
har que contine la transferencia del fichero.
RNFR (Renombrar desde)
Indica el fichero que queremos cambiar de nombre en el servidor.
RNTO (Renombrar a)
Especifica el nuevo nombre para el fichero indicado mediante el comando RNFR. Las dos
rdenes seguidas hacen que el fichero cambie de nombre.
ABOR (abortar)
Pide al servidor que interrumpa la orden de servicio FTP previa y cualquier transferencia
de datos asociada. Hay dos posibles casos para el servidor al recibir esta orden: (1) la
orden de servicio FTP est ya terminada, o (2) an est en ejecucin.
En el primer caso, el servidor cierra la conexin de datos (si est abierta) y devuelve una
respuesta 226 indicando que la orden de interrumpir se ha procesado correctamente.
En el segundo caso, el servidor interrumpe el servicio FTP en proceso y cierra la conexin
de datos, devolviendo una respuesta 426 para indicar que la solicitud de servicio termin
anormalmente. Luego, el servidor enva una respuesta 226 para indicar que la orden de
interrumpir se ha procesado correctamente.
DELE (Borrar)
Borra en el servidor el fichero indicado en el nombre de ruta.
RMD (Borrar directorio)
Borra en el servidor el directorio indicado.
MKD
Borra el directorio del servidor especificado.

PWD
Muestra el directorio de trabajo del servidor.
LIST
Enva una listado de los ficheros a travs del proceso de transferencia de datos
pasivo.
Si se especifica un nombre de ruta u otra agrupacin de ficheros, el servidor debe
transferir una lista de los ficheros en el directorio indicado.
Si se especifica un nombre de fichero, el servidor debera enviar informacin sobre el
fichero.
Si no se indica argumento alguno, implica que se quiere listar el directorio de trabajo
actual o directorio por defecto
NLST (Listar nombres)
Enva listado de directorio desde el servidor. Puede especificar un nombre de ruta. Si no
hay argumento, se asume el directorio actual.
SITE (Parmetros del sistema)
Proporciona servicios especficos propios del sistema del servidor que son fundamentales
para transferir ficheros pero no lo suficientemente universales como para ser incluidos
como rdenes en el protocolo.
SYST
Devuelve el tipo de sistema operativo del servidor.
STAT
El servidor devolver informacin general del estado del proceso servidor FTP.
HELP
El servidor enva informacin sobre la implementacin del FTP.
NOOP (No operacin)
No hace nada ms que provocar que el servidor enve una respuesta OK

4. MODOS DE OPERACIN.
En toda transferencia ftp interviene un programa servidor y un programa cliente. El
programa servidor se ejecuta donde estn almacenados los ficheros que se quieren bajar
(o donde se almacenarn los que deseamos subir) y el programa cliente es el programa
ftp que usamos desde la maquina local, para subir o bajar los ficheros.
En este proceso de comunicacin entre cliente y servidor, el cliente puede actuar en modo
activo o en modo pasivo.
Una conexin ftp usa dos puertos: Uno ser el puerto de comandos, command port, o control
port (normalmente puerto 21) por donde se transfieren las rdenes. El otro es el puerto de
datos , o data port, que es por donde circulan los datos que integran los ficheros
(normalmente el puerto 20, pero puede ser cualquiera por debajo del 1024).
4.1 MODO ACTIVO
Cuando usamos ftp en modo activo (tambin considerado modo normal) se establecen
dos conexiones distintas. En primer lugar se establece una conexin para la transmisin
de comandos (desde cualquier puerto de nuestro ordenador inferior a 1024 hacia el puerto
21 del servidor) y por esa misma conexin, mediante un comando PORT se indica al
servidor cual es el puerto (distinto) de nuestro ordenador que est a la escucha de los
datos.
Entonces, si bajamos algn archivo, es el servidor el que inicia la transmisin de datos,
desde su puerto 20 al puerto que le hemos indicado. Se llama modo activo porque la
transmisin de datos es iniciada como proceso distinto desde el servidor, hacia el puerto
que le hemos indicado.
4.2 MODO PASIVO
En modo pasivo es siempre el programa cliente el que inicia la conexin con el servidor.
Al abrir una conexin ftp se abre primero una conexin de control (desde un puerto inferior
a 1024 de la maquina local al puerto 21 del servidor). Al pasar a modo pasivo (comando
PASV), el cliente pide un puerto abierto al servidor (ser otro puerto inferior al 1024 del
servidor) y recibida la contestacin, ser el cliente el que establezca la conexin de datos
al servidor a travs de ese puerto.

En modo pasivo las conexiones son siempre abiertas por el cliente, mientras que en modo activo se
abren por el que enva los datos (el server si se trata de bajar archivos, y el cliente si se trata de
subir archivos al server).
El posible problema del Modo Activo: En este modo se abre una conexin para datos desde
el servidor a la maquina cliente, esto es, una conexin de fuera a dentro... Si la maquina
cliente est protegida por un firewall, es posible que filtre o bloquee la conexin entrante,
al ser un proceso desconocido.
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 conexin entrante que filtrar.

5. CDIGOS DE RESPUESTA.
El servidor FTP responde al cliente con los siguientes cdigos:
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 conexin de datos ya est abierta; comenzando transferencia.
150 Conexin 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 estndar.
215 Identificacin del tipo de sistema.
220 Servicio preparado para nuevo usuario.
221 Cerrando la conexin de control. Desconectado si procede.
225 Conexin de datos abierta; no hay transferencia en proceso.
226 Cerrando la conexin de datos. La accin sobre fichero requerida ha sido correcta
(por ejemplo, una transferencia o interrupcin).
227 Iniciando modo pasivo.

230 Usuario conectado, contine.


250 La accin sobre fichero solicitado finaliz correctamente.
257 "path" creado.
331 Usuario OK, necesita contrasea.
332 Necesita nombre de cuenta.
350 La accin requiere ms informacin. Pendiente
421 Servicio no disponible, cerrando la conexin de control. Esta puede ser la respuesta
a cualquier comando si el servidor sabe que debe finalizar.
425 No se puede abrir la conexin de datos.
426 Conexin cerrada; transferencia interrumpida.
450 Accin no realizada. Fichero no disponible (por ejemplo, fichero bloqueado).
451 Accin interrumpida. Error local.
452 Accin no realizada. Falta de espacio en el sistema de ficheros.
500 Error de sintaxis, comando no reconocido. Esto puede incluir errores como lnea de
orden demasiado larga.
501 Error de sintaxis en parmetros o argumentos.
502 Orden no implementada.
503 Secuencia de rdenes incorrecta.
504 Parmetro incorrecto para esa orden.
530 No est conectado.
532 Necesita una cuenta para almacenar ficheros.
550 Accin no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se tiene
acceso al mismo).
551 Accin interrumpida. Tipo de pgina desconocido.
552 Accin interrumpida. Se ha sobrepasado el espacio disponible de almacenamiento
(para el directorio actual).
553 Accin no realizada. Nombre de fichero no permitido.

Vous aimerez peut-être aussi